import { useState, useMemo } from "react" import { useQuery, useMutation, useQueryClient } from "@tanstack/react-query" import { Plus, Trash2, Clock, FileText, Tag } from "lucide-react" import { api } from "../lib/api" export default function TimeEntryTemplates() { const queryClient = useQueryClient() const [name, setName] = useState("") const [description, setDescription] = useState("") const [projectId, setProjectId] = useState("") const [duration, setDuration] = useState("") const { data: templates, isLoading, isError } = useQuery({ queryKey: ["timeEntryTemplates"], queryFn: () => api.listTimeEntryTemplates() }) const { data: projects } = useQuery({ queryKey: ["projects"], queryFn: () => api.listProjects() }) const createMutation = useMutation({ mutationFn: (payload: { name: string; description: string; projectId: string | null; defaultDurationMinutes: number | null }) => api.createTimeEntryTemplate(payload), onSuccess: () => { queryClient.invalidateQueries({ queryKey: ["timeEntryTemplates"] }) setName("") setDescription("") setProjectId("") setDuration("") } }) const deleteMutation = useMutation({ mutationFn: (id: string) => api.deleteTimeEntryTemplate(id), onSuccess: () => { queryClient.invalidateQueries({ queryKey: ["timeEntryTemplates"] }) } }) const handleSubmit = (e: React.FormEvent) => { e.preventDefault() if (!name.trim()) return createMutation.mutate({ name, description, projectId: projectId || null, defaultDurationMinutes: duration ? parseInt(duration, 10) : null }) } if (isLoading) return