import { useCallback, useState } from 'react' import { SettingsLayout } from '../templates/SettingsLayout' import { Box, VStack, HStack, } from './LayoutPrimitives' import { StyledText } from './StyledText' import { Button } from './Button' import Router from 'next/router' import { Dropdown, DropdownOption, } from './DropdownElements' import { ChromeIcon } from './images/ChromeIcon' import { SafariIcon } from './images/SafariIcon' import { FirefoxIcon } from './images/FirefoxIcon' import { EdgeIcon } from './images/EdgeIcon' import { AngleDownIcon } from '../tokens/icons/AngleDownIcon' import { theme } from '../tokens/stitches.config' export default function ExtensionInstallHelp(): JSX.Element { return ( ) } const extensionDownloadLinks = { chrome: 'https://omnivore.app/install/chrome', safari: 'https://omnivore.app/install/mac', edge: 'https://omnivore.app/install/edge', firefox: 'https://omnivore.app/install/firefox', } export type Browser = 'chrome' | 'safari' | 'firefox' | 'edge' const browserInfo = (browser: Browser): { title: string, icon: JSX.Element } => { const fillColor = theme.colors.grayText.toString() switch (browser) { case 'chrome': return { title: 'Chrome', icon: } case 'safari': return { title: 'Safari', icon: } case 'firefox': return { title: 'FireFox', icon: } case 'edge': return { title: 'Edge', icon: } } } function ExtensionSelector(): JSX.Element { const [browser, setBrowser] = useState('chrome') const selectBrowser = useCallback(() => { window.location.href = extensionDownloadLinks[browser] }, [browser]) return ( Install Browser Extensions Installing the Omnivore browser extension is the best way to save pages to Omnivore from your computer. Learn more about the browser extensions here. Save articles Download for a different browser}> setBrowser('chrome')}> setBrowser('safari')}> setBrowser('firefox')}> setBrowser('edge')} hideSeparator> ) } type BrowserOptionProps = { browser: Browser } function BrowserOption(props: BrowserOptionProps): JSX.Element { const info = browserInfo(props.browser) return ( {info.icon} {info.title} ) }