import { getGetServerSideProps } from '@/api/ssrApollo' import { Form, ClientInput, ClientCheckbox, PasswordInput } from '@/components/form' import { CenterLayout } from '@/components/layout' import { WalletButtonBar } from '@/components/wallet-card' import { WalletSecurityBanner } from '@/components/banners' import { WalletLogs } from '@/components/wallet-logger' import { useToast } from '@/components/toast' import { useRouter } from 'next/router' import { useWallet, Status } from '@/components/wallet' export const getServerSideProps = getGetServerSideProps({ authRequired: true }) export default function WalletSettings () { const toaster = useToast() const router = useRouter() const { wallet: name } = router.query const wallet = useWallet(name) const initial = wallet.fields.reduce((acc, field) => { return { ...acc, [field.name]: wallet.config?.[field.name] || '' } }, {}) return (

{wallet.card.title}

{wallet.card.subtitle}
{ try { const newConfig = !wallet.isConfigured await wallet.validate(values) wallet.save(values) // enable wallet if checkbox was set or if wallet was just configured if (enabled || newConfig) wallet.enable() else wallet.disable() toaster.success('saved settings') router.push('/settings/wallets') } catch (err) { console.error(err) const message = 'failed to attach: ' + err.message || err.toString?.() toaster.danger(message) } }} > { try { wallet.delete() toaster.success('saved settings') router.push('/settings/wallets') } catch (err) { console.error(err) const message = 'failed to detach: ' + err.message || err.toString?.() toaster.danger(message) } }} />
) } function WalletFields ({ wallet: { config, fields } }) { return fields.map(({ name, label, type }, i) => { const props = { initialValue: config?.[name], label, name, required: true, autoFocus: i === 0 } if (type === 'text') { return } if (type === 'password') { return } return null }) }