import { useState } from "react"; import { formatWeight, formatPrice } from "../lib/formatters"; import { useUpdateCategory, useDeleteCategory } from "../hooks/useCategories"; import { LucideIcon } from "../lib/iconData"; import { IconPicker } from "./IconPicker"; interface CategoryHeaderProps { categoryId: number; name: string; icon: string; totalWeight: number; totalCost: number; itemCount: number; } export function CategoryHeader({ categoryId, name, icon, totalWeight, totalCost, itemCount, }: CategoryHeaderProps) { const [isEditing, setIsEditing] = useState(false); const [editName, setEditName] = useState(name); const [editIcon, setEditIcon] = useState(icon); const updateCategory = useUpdateCategory(); const deleteCategory = useDeleteCategory(); const isUncategorized = categoryId === 1; function handleSave() { if (!editName.trim()) return; updateCategory.mutate( { id: categoryId, name: editName.trim(), icon: editIcon }, { onSuccess: () => setIsEditing(false) }, ); } function handleDelete() { if ( confirm(`Delete category "${name}"? Items will be moved to Uncategorized.`) ) { deleteCategory.mutate(categoryId); } } if (isEditing) { return (