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.
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}
)
}