import { useState } from "react"; import { useQuery } from "convex/react"; import { api } from "../../convex/_generated/api"; import type { Doc } from "../../convex/_generated/dataModel"; import { Button } from "@/components/ui/button"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { Badge } from "@/components/ui/badge"; import { CategoryFormDialog } from "@/components/categories/CategoryFormDialog"; function CategorySection({ title, categories, onEdit, }: { title: string; categories: Doc<"categories">[]; onEdit: (c: Doc<"categories">) => void; }) { return ( {title} {categories.length === 0 && ( Keine Kategorien )} {categories.map((cat) => ( {cat.name} onEdit(cat)}> Bearbeiten ))} ); } export function CategoriesPage() { const categories = useQuery(api.categories.list); const [edit, setEdit] = useState | null>(null); const [createOpen, setCreateOpen] = useState(false); const income = categories?.filter((c) => c.kind === "einnahme") ?? []; const fixed = categories?.filter((c) => c.kind === "ausgabe" && c.block === "wiederkehrend") ?? []; const variable = categories?.filter((c) => c.kind === "ausgabe" && c.block === "variabel") ?? []; return ( setCreateOpen(true)}>Neue Kategorie !o && setEdit(null)} category={edit ?? undefined} /> ); }
Keine Kategorien