import { Button, Drawer, DrawerBody, DrawerCloseButton, DrawerContent, DrawerFooter, DrawerHeader, DrawerOverlay, Icon, IconButton, Stack, Textarea, useDisclosure } from '@chakra-ui/react'; import { TbSettings } from 'react-icons/tb'; import React from 'react'; import { useForm } from 'react-hook-form'; import { useTranslation } from 'react-i18next'; import { SettingsItem } from './SettingsItem'; import RootContext from '../store'; import { parseIpfsGateways } from '../scripts/ipfs'; interface Config { ipfs_gateways: string; } const Settings: React.FC = () => { const { t } = useTranslation(); const { isOpen, onOpen, onClose } = useDisclosure(); const btnRef = React.useRef(null); const { register, handleSubmit, watch, setValue, formState: { errors } } = useForm(); const [submitting, setSubmitting] = React.useState(false); const rootContext = React.useContext(RootContext); React.useEffect(() => { if (isOpen) { const ipfsGateways: string[] = JSON.parse(localStorage.getItem('ipfs_gateways') || '[]'); setValue('ipfs_gateways', ipfsGateways.join('\n')); } }, [isOpen]); const onSubmit = async (newConfig: Config) => { setSubmitting(true); const ipfsGateways: string[] = parseIpfsGateways(newConfig.ipfs_gateways); localStorage.setItem('ipfs_gateways', JSON.stringify(ipfsGateways)); rootContext.ipfs_gateways = ipfsGateways; onClose(); setSubmitting(false); }; return ( <> } onClick={onOpen} variant="ghost" /> {t('settings.title')}
} />
); }; export default Settings;