diff --git a/components/admin/portfolio-categories-manager.tsx b/components/admin/portfolio-categories-manager.tsx index f0b6112..dc292ac 100644 --- a/components/admin/portfolio-categories-manager.tsx +++ b/components/admin/portfolio-categories-manager.tsx @@ -8,15 +8,14 @@ import { Hash, Layers3, Pencil, - Sparkles, + ShieldCheck, + ShieldOff, Text, Trash2, } from "lucide-react"; import type { deleteCategoryAction, upsertCategoryAction } from "@/app/_admin/portfolio/actions"; -import { StatsCard } from "@/components/dashboard/stats-card"; import { AppCard } from "@/components/ui/app-card"; -import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from "@/components/ui/accordion"; import { Badge } from "@/components/ui/badge"; import { Button } from "@/components/ui/button"; import { CardContent } from "@/components/ui/card"; @@ -57,6 +56,10 @@ const copy = { empty: "No categories yet.", deleteBlocked: "Delete becomes available only when no projects are assigned.", editCategory: "Edit Category", + visibilityActive: "Visible on public portfolio filters.", + visibilityInactive: "Hidden from public portfolio filters.", + statusSection: "Visibility & Status", + statusHint: "Control whether the category can be assigned and shown publicly.", }; type CategoryAction = typeof upsertCategoryAction; @@ -145,6 +148,56 @@ function CategoryLocaleFields({ ); } +function CategoryStatusFields({ + formId, + values, +}: { + formId: string; + values?: CategoryFormValues; +}) { + const isActive = values?.isActive ?? true; + + return ( +
{copy.statusSection}
+{copy.statusHint}
+{copy.active}
++ {isActive ? copy.visibilityActive : copy.visibilityInactive} +
+