From 8f37977c9e42f6035f1f3f89c9b89cbcf81a4f00 Mon Sep 17 00:00:00 2001 From: admin Date: Sat, 22 Aug 2026 23:10:17 +0000 Subject: [PATCH] Terminal --- src/routes/_authenticated/calendar.tsx | 109 ------------------------- 1 file changed, 109 deletions(-) delete mode 100644 src/routes/_authenticated/calendar.tsx diff --git a/src/routes/_authenticated/calendar.tsx b/src/routes/_authenticated/calendar.tsx deleted file mode 100644 index 1809c27..0000000 --- a/src/routes/_authenticated/calendar.tsx +++ /dev/null @@ -1,109 +0,0 @@ -import { createFileRoute } from "@tanstack/react-router"; -import { useQuery, useMutation, useQueryClient } from "@tanstack/react-query"; -import { supabase } from "@/integrations/supabase/client"; -import { useAuth } from "@/hooks/use-auth"; -import { Button } from "@/components/ui/button"; -import { Input } from "@/components/ui/input"; -import { Label } from "@/components/ui/label"; -import { Textarea } from "@/components/ui/textarea"; -import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogTrigger } from "@/components/ui/dialog"; -import { Plus, Trash2, CalendarDays } from "lucide-react"; -import { useState } from "react"; -import { toast } from "sonner"; - -export const Route = createFileRoute("/_authenticated/calendar")({ - head: () => ({ meta: [{ title: "Calendar — School Portal" }] }), - component: CalendarPage, -}); - -function CalendarPage() { - const { user, roles } = useAuth(); - const isAdmin = roles.includes("admin"); - const qc = useQueryClient(); - const [open, setOpen] = useState(false); - const [form, setForm] = useState({ title: "", date: "", end_date: "", description: "" }); - - const { data: events } = useQuery({ - queryKey: ["calendar"], - queryFn: async () => (await supabase.from("calendar_events").select("*").order("date")).data ?? [], - }); - - const add = useMutation({ - mutationFn: async () => { - const { error } = await supabase.from("calendar_events").insert({ - title: form.title, date: form.date, end_date: form.end_date || null, description: form.description || null, created_by: user!.id, - }); - if (error) throw error; - }, - onSuccess: () => { setOpen(false); setForm({ title: "", date: "", end_date: "", description: "" }); qc.invalidateQueries({ queryKey: ["calendar"] }); toast.success("Event added"); }, - onError: (e: Error) => toast.error(e.message), - }); - - const del = useMutation({ - mutationFn: async (id: string) => { const { error } = await supabase.from("calendar_events").delete().eq("id", id); if (error) throw error; }, - onSuccess: () => qc.invalidateQueries({ queryKey: ["calendar"] }), - }); - - const today = new Date().toISOString().slice(0, 10); - const upcoming = (events ?? []).filter((e) => e.date >= today); - const past = (events ?? []).filter((e) => e.date < today); - - return ( -
-
-
-

School calendar

-

Year at a glance.

-
- {isAdmin && ( - - - - New calendar event -
-
setForm({ ...form, title: e.target.value })} />
-
-
setForm({ ...form, date: e.target.value })} />
-
setForm({ ...form, end_date: e.target.value })} />
-
-