import React from 'react'; import { Trans, useTranslation } from 'react-i18next'; import { useParams } from 'react-router'; import { Button } from '@actual-app/components/button'; import { SpaceBetween } from '@actual-app/components/space-between'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; import { useUnlinkAccountMutation } from '@desktop-client/accounts'; import { BankSyncCheckboxOptions } from '@desktop-client/components/banksync/BankSyncCheckboxOptions'; import { FieldMapping } from '@desktop-client/components/banksync/FieldMapping'; import { useBankSyncAccountSettings } from '@desktop-client/components/banksync/useBankSyncAccountSettings'; import { MobileBackButton } from '@desktop-client/components/mobile/MobileBackButton'; import { MobilePageHeader, Page } from '@desktop-client/components/Page'; import { useAccount } from '@desktop-client/hooks/useAccount'; import { useNavigate } from '@desktop-client/hooks/useNavigate'; import { pushModal } from '@desktop-client/modals/modalsSlice'; import { useDispatch } from '@desktop-client/redux'; export function MobileBankSyncAccountEditPage() { const { t } = useTranslation(); const navigate = useNavigate(); const dispatch = useDispatch(); const { accountId } = useParams<{ accountId: string }>(); const account = useAccount(accountId!); const { transactionDirection, setTransactionDirection, importPending, setImportPending, importNotes, setImportNotes, reimportDeleted, setReimportDeleted, importTransactions, setImportTransactions, updateDates, setUpdateDates, mappings, setMapping, fields, saveSettings, } = useBankSyncAccountSettings(accountId!); const handleCancel = () => { void navigate('/bank-sync'); }; const handleSave = async () => { saveSettings(); void navigate('/bank-sync'); }; const unlinkAccount = useUnlinkAccountMutation(); const handleUnlink = () => { dispatch( pushModal({ modal: { name: 'confirm-unlink-account', options: { accountName: account?.name || '', isViewBankSyncSettings: true, onUnlink: () => { if (accountId) { unlinkAccount.mutate( { id: accountId }, { onSuccess: () => navigate('/bank-sync'), }, ); } }, }, }, }), ); }; if (!account) { return ( } /> } padding={0} > Account not found ); } const mapping = mappings.get(transactionDirection) ?? new Map(); return ( } /> } padding={0} > Field mapping Options ); }