import React, { useState, useEffect, useCallback } from 'react'; import { api } from '@/api'; import BankSyncSection from '@/components/data/BankSyncSection'; import ImportTransactionCsvSection from '@/components/data/ImportTransactionCsvSection'; import TransactionMatchingSection from '@/components/data/TransactionMatchingSection'; import ImportSpreadsheetSection from '@/components/data/ImportSpreadsheetSection'; import ImportMyDataSection from '@/components/data/ImportMyDataSection'; import SeedDemoDataSection from '@/components/data/SeedDemoDataSection'; import DownloadMyDataSection from '@/components/data/DownloadMyDataSection'; import ImportHistorySection from '@/components/data/ImportHistorySection'; export default function DataPage() { const [history, setHistory] = useState(null); const [historyLoading, setHistoryLoading] = useState(true); const [transactionRefreshKey, setTransactionRefreshKey] = useState(0); const [simplefinConn, setSimplefinConn] = useState(null); const loadHistory = async () => { setHistoryLoading(true); try { const { history } = await api.importHistory(); setHistory(history); } catch { setHistory([]); } finally { setHistoryLoading(false); } }; useEffect(() => { loadHistory(); }, []); const handleTransactionImportComplete = () => { loadHistory(); setTransactionRefreshKey(key => key + 1); }; // Called by BankSyncSection when connection state changes (connect/sync/disconnect) const handleConnectionChange = useCallback((conn) => { setSimplefinConn(conn || null); setTransactionRefreshKey(key => key + 1); }, []); return (
Import, export, and review your user-owned bill tracker records.