"use client"; import { useState } from "react"; import { GERMAN_FEDERAL_STATES } from "@planarchy/shared"; import { trpc } from "~/lib/trpc/client.js"; export function PublicHolidayBatch() { const [year, setYear] = useState(new Date().getFullYear()); const [federalState, setFederalState] = useState("BY"); const [chapter, setChapter] = useState(""); const [replaceExisting, setReplaceExisting] = useState(false); const [result, setResult] = useState<{ created: number; holidays?: number; resources?: number } | null>(null); const { data: resources } = trpc.resource.list.useQuery( { isActive: true, limit: 500 }, { staleTime: 60_000 }, ); const resourceList = (resources?.resources ?? []) as Array<{ id: string; chapter?: string | null }>; const chapters = Array.from( new Set(resourceList.map((r) => r.chapter).filter(Boolean) as string[]) ).sort(); const mutation = trpc.vacation.batchCreatePublicHolidays.useMutation({ onSuccess: (data) => setResult(data), }); function handleSubmit(e: React.FormEvent) { e.preventDefault(); setResult(null); mutation.mutate({ year, federalState: federalState || undefined, chapter: chapter || undefined, replaceExisting, }); } return (
Creates public holidays as APPROVED vacation entries for all resources (or a chapter).