import { Dropdown, Field, TextField, showModal } from '@decky/ui'; import { FunctionComponent } from 'react'; import { useTranslation } from 'react-i18next'; import { FaShapes } from 'react-icons/fa'; import Logger from '../../../../logger'; import { Store } from '../../../../store'; import { WarnThirdPartyType } from '../../../../utils/globalTypes'; import { useSetting } from '../../../../utils/hooks/useSetting'; import WarnThirdParty from '../../../modals/WarnThirdParty'; const logger = new Logger('StoreSelect'); const StoreSelect: FunctionComponent<{}> = () => { const [selectedStore, setSelectedStore] = useSetting('store', Store.Default); const [selectedStoreURL, setSelectedStoreURL] = useSetting('store-url', null); const [acceptedWarning, setAcceptedWarning] = useSetting('store_select.warn.third_party', false); const waitTime = acceptedWarning ? 0 : 5; const { t } = useTranslation(); const tStores = [ t('StoreSelect.store_channel.default'), t('StoreSelect.store_channel.testing'), t('StoreSelect.store_channel.custom'), ]; // Returns numerical values from 0 to 2 (with current branch setup as of 8/28/22) // 0 being Default, 1 being Testing and 2 being Custom return ( <> typeof store == 'number') .map((store) => ({ label: tStores[store as number], data: store, }))} selectedOption={selectedStore} onChange={async (newVal) => { await setSelectedStore(newVal.data); logger.log('switching stores!'); }} /> {selectedStore == Store.Custom && showModal( { setAcceptedWarning(true); }} onCancel={() => setSelectedStore(Store.Default)} />, ) && ( setSelectedStoreURL(e?.target.value || null)} /> } icon={} > )} ); }; export default StoreSelect;