import { useState, useEffect, ChangeEvent } from 'react' import { Box, Label, Radio, Flex, Input, Select } from 'theme-ui' import userAgents from '../../../utils/userAgents' import detachDebugger from '../../../utils/detachDebugger' interface UserAgentPageProps { tab: string } const UserAgentPage = ({ tab }: UserAgentPageProps) => { const [type, setType] = useState('none') const [operatingSystem, setOperatingSystem] = useState('Windows') const [browser, setBrowser] = useState('Chrome') const [userAgent, setUserAgent] = useState('') useEffect(() => { chrome.storage.sync.get( ['type', 'operatingSystem', 'browser', 'userAgent'], (storage) => { storage.type && setType(storage.type) storage.operatingSystem && setOperatingSystem(storage.operatingSystem) storage.browser && setBrowser(storage.browser) storage.userAgent && setUserAgent(storage.userAgent) } ) }, []) useEffect(() => { detachDebugger() chrome.storage.sync.set({ userAgent }) }, [userAgent]) useEffect(() => { type === 'preloaded' && setUserAgent(userAgents[operatingSystem][browser]) }, [operatingSystem, browser, type]) const changeType = (e: ChangeEvent) => { detachDebugger() e.target.value === 'none' && setUserAgent('') chrome.storage.sync.set({ type: e.target.value }) setType(e.target.value) } const changeOperatingSystem = (e: ChangeEvent) => { chrome.storage.sync.set({ operatingSystem: e.target.value }) setOperatingSystem(e.target.value) } const changeBrowser = (e: ChangeEvent) => { chrome.storage.sync.set({ browser: e.target.value }) setBrowser(e.target.value) } const changeUserAgent = (e: ChangeEvent) => { detachDebugger() chrome.storage.sync.set({ userAgent: e.target.value }) chrome.storage.sync.set({ type: 'custom' }) setUserAgent(e.target.value) setType('custom') } return ( User Agent {type === 'preloaded' && ( <> )} ) } export default UserAgentPage