"use client" import { useState } from "react" import { Sidebar } from "@/components/dashboard/sidebar" import { useBankingData } from "@/lib/hooks" import { Button } from "@/components/ui/button" import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card" import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, AlertDialogTrigger, } from "@/components/ui/alert-dialog" import { Download, Trash2, Upload, RefreshCw, Database, FileJson } from "lucide-react" import type { BankingData } from "@/lib/types" export default function SettingsPage() { const { data, isLoading, refresh, update } = useBankingData() const [importing, setImporting] = useState(false) if (isLoading || !data) { return (
) } const exportData = () => { const dataStr = JSON.stringify(data, null, 2) const blob = new Blob([dataStr], { type: "application/json" }) const url = URL.createObjectURL(blob) const a = document.createElement("a") a.href = url a.download = `fintrack-backup-${new Date().toISOString().split("T")[0]}.json` document.body.appendChild(a) a.click() document.body.removeChild(a) URL.revokeObjectURL(url) } const importData = () => { const input = document.createElement("input") input.type = "file" input.accept = ".json" input.onchange = async (e) => { const file = (e.target as HTMLInputElement).files?.[0] if (!file) return setImporting(true) try { const content = await file.text() const importedData = JSON.parse(content) as BankingData // Validate structure if (!importedData.accounts || !importedData.transactions || !importedData.categories || !importedData.folders) { alert("Format de fichier invalide") return } update(importedData) alert("Données importées avec succès") } catch (error) { alert("Erreur lors de l'import") } finally { setImporting(false) } } input.click() } const resetData = () => { localStorage.removeItem("banking-app-data") window.location.reload() } return (

Paramètres

Gérez vos données et préférences

Données Exportez ou importez vos données pour les sauvegarder ou les transférer

Statistiques

{data.accounts.length} comptes, {data.transactions.length} transactions, {data.categories.length}{" "} catégories

Zone dangereuse Actions irréversibles - procédez avec prudence Êtes-vous sûr ? Cette action supprimera définitivement tous vos comptes, transactions, catégories et dossiers. Cette action est irréversible. Annuler Supprimer tout Format OFX Informations sur l'import de fichiers

L'application accepte les fichiers au format OFX (Open Financial Exchange) ou QFX. Ces fichiers sont généralement disponibles depuis l'espace client de votre banque.

Lors de l'import, les transactions sont automatiquement catégorisées selon les mots-clés définis. Les doublons sont détectés et ignorés automatiquement.

) }