import { useState, useEffect, ChangeEvent } from 'react' import { Box, Label, Radio, Flex, Select } from 'theme-ui' import DebouncedInput from '../../Components/DebouncedInput' import userAgents from '../../../utils/userAgents' import detachDebugger from '../../../utils/detachDebugger' import Page from '../../Components/Page' import CheckBox from '../../Components/CheckBox' interface UserAgentPageProps { tab: string } const UserAgentPage = ({ tab }: UserAgentPageProps) => { const [userAgentType, setUserAgentType] = useState('default') const [operatingSystem, setOperatingSystem] = useState('Windows') const [browser, setBrowser] = useState('Chrome') const [userAgent, setUserAgent] = useState(navigator.userAgent) useEffect(() => { chrome.storage.local.get( ['userAgentType', 'operatingSystem', 'browser', 'userAgent'], (storage) => { storage.userAgentType && setUserAgentType(storage.userAgentType) storage.operatingSystem && setOperatingSystem(storage.operatingSystem) storage.browser && setBrowser(storage.browser) storage.userAgent && setUserAgent(storage.userAgent) } ) }, []) const changeType = (e: ChangeEvent) => { detachDebugger() setUserAgentType(e.target.value) chrome.storage.local.set({ userAgentType: e.target.value }) if (e.target.value === 'default') { setUserAgent(navigator.userAgent) chrome.storage.local.set({ userAgent: '', }) } else if (e.target.value === 'preloaded') { setUserAgent(userAgents[operatingSystem][browser]) chrome.storage.local.set({ userAgent: userAgents[operatingSystem][browser], }) } } const changeOperatingSystem = (e: ChangeEvent) => { detachDebugger() setOperatingSystem(e.target.value) setUserAgent(userAgents[e.target.value][browser]) chrome.storage.local.set({ userAgent: userAgents[e.target.value][browser], operatingSystem: e.target.value, }) } const changeBrowser = (e: ChangeEvent) => { detachDebugger() setBrowser(e.target.value) setUserAgent(userAgents[operatingSystem][e.target.value]) chrome.storage.local.set({ userAgent: userAgents[operatingSystem][e.target.value], browser: e.target.value, }) } const changeUserAgent = () => { if (userAgentType !== 'custom') { setUserAgentType('custom') chrome.storage.local.set({ userAgentType: 'custom', }) } } return ( {userAgentType === 'preloaded' && ( )} {userAgentType !== 'default' && ( )} ) } export default UserAgentPage