"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
Exporter (JSON)
{importing ? "Import..." : "Importer"}
Zone dangereuse
Actions irréversibles - procédez avec prudence
Réinitialiser toutes les données
Ê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.
)
}