{deleteItem.name}
} diff --git a/frontend/athena/app/knowledge/documents/page.tsx b/frontend/athena/app/knowledge/documents/page.tsx index 3315f53..1e52485 100644 --- a/frontend/athena/app/knowledge/documents/page.tsx +++ b/frontend/athena/app/knowledge/documents/page.tsx @@ -6,14 +6,15 @@ import { Download, Edit, Eye, Plus, Trash2 } from "lucide-react"; import ConfirmDialog from "@/components/common/ConfirmDialog"; import DataTable, { type DataTableColumn } from "@/components/common/DataTable"; +import EmptyState from "@/components/common/EmptyState"; import SearchInput from "@/components/common/SearchInput"; import { useToast } from "@/components/common/ToastProvider"; import DocumentTypeBadge from "@/components/knowledge/DocumentTypeBadge"; -import { DocumentUploadDialog } from "@/components/knowledge/KnowledgeForms"; +import { DeviceFormDialog, DocumentUploadDialog, ManufacturerFormDialog } from "@/components/knowledge/KnowledgeForms"; import TagList from "@/components/knowledge/TagList"; import { Button, buttonVariants } from "@/components/ui/button"; import { api } from "@/lib/api"; -import type { DocumentPayload, DocumentType, KnowledgeDevice, KnowledgeDocument, KnowledgeManufacturer } from "@/types/knowledge"; +import type { DevicePayload, DocumentPayload, DocumentType, KnowledgeDevice, KnowledgeDocument, KnowledgeManufacturer, ManufacturerPayload } from "@/types/knowledge"; function errorMessage(error: unknown) { if (typeof error === "object" && error !== null && "response" in error) { @@ -43,6 +44,9 @@ export default function KnowledgeDocumentsPage() { const [sortKey, setSortKey] = useState("created_at"); const [sortDirection, setSortDirection] = useState<"asc" | "desc">("desc"); const [formOpen, setFormOpen] = useState(false); + const [manufacturerFormOpen, setManufacturerFormOpen] = useState(false); + const [deviceFormOpen, setDeviceFormOpen] = useState(false); + const [deviceInitialManufacturerId, setDeviceInitialManufacturerId] = useState{rows.length} Unterlagen
{deleteItem.title}
}{deleteItem.name}
} diff --git a/frontend/athena/app/knowledge/notes/page.tsx b/frontend/athena/app/knowledge/notes/page.tsx index 66f24fb..6e459e5 100644 --- a/frontend/athena/app/knowledge/notes/page.tsx +++ b/frontend/athena/app/knowledge/notes/page.tsx @@ -5,6 +5,7 @@ import { Edit, Plus, Trash2 } from "lucide-react"; import ConfirmDialog from "@/components/common/ConfirmDialog"; import DataTable, { type DataTableColumn } from "@/components/common/DataTable"; +import EmptyState from "@/components/common/EmptyState"; import SearchInput from "@/components/common/SearchInput"; import { useToast } from "@/components/common/ToastProvider"; import { KnowledgeNoteFormDialog } from "@/components/knowledge/KnowledgeForms"; @@ -142,7 +143,21 @@ export default function KnowledgeNotesPage() {{deleteItem.title}
} diff --git a/frontend/athena/components/common/EmptyState.tsx b/frontend/athena/components/common/EmptyState.tsx new file mode 100644 index 0000000..7dfe28f --- /dev/null +++ b/frontend/athena/components/common/EmptyState.tsx @@ -0,0 +1,19 @@ +"use client"; + +import type { ReactNode } from "react"; + +type Props = { + title: string; + description: string; + action?: ReactNode; +}; + +export default function EmptyState({ title, description, action }: Props) { + return ( +{description}
+ {action &&