From b21343601b747e2a232fa96baf6ad771c6bcf4ec Mon Sep 17 00:00:00 2001 From: Kyle Pope Date: Mon, 23 Feb 2026 11:58:55 +0800 Subject: [PATCH] Convert TemplateForm from Dialog to Sheet side panel MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Matches the EventForm UI pattern for consistency — same slide-in panel, same layout structure with scrollable content area and pinned footer. Co-Authored-By: Claude Opus 4.6 --- .../src/components/calendar/TemplateForm.tsx | 220 +++++++++--------- 1 file changed, 112 insertions(+), 108 deletions(-) diff --git a/frontend/src/components/calendar/TemplateForm.tsx b/frontend/src/components/calendar/TemplateForm.tsx index 0d23896..4c50aa9 100644 --- a/frontend/src/components/calendar/TemplateForm.tsx +++ b/frontend/src/components/calendar/TemplateForm.tsx @@ -5,13 +5,13 @@ import api, { getErrorMessage } from '@/lib/api'; import type { EventTemplate, Location } from '@/types'; import { useCalendars } from '@/hooks/useCalendars'; import { - Dialog, - DialogContent, - DialogHeader, - DialogTitle, - DialogFooter, - DialogClose, -} from '@/components/ui/dialog'; + Sheet, + SheetContent, + SheetHeader, + SheetTitle, + SheetFooter, + SheetClose, +} from '@/components/ui/sheet'; import { Input } from '@/components/ui/input'; import { Textarea } from '@/components/ui/textarea'; import { Select } from '@/components/ui/select'; @@ -87,119 +87,123 @@ export default function TemplateForm({ template, onClose }: TemplateFormProps) { }; return ( - - - - - {template ? 'Edit Template' : 'New Template'} - -
-
- - setFormData({ ...formData, name: e.target.value })} - placeholder="e.g., Weekly standup" - required - /> -
- -
- - setFormData({ ...formData, title: e.target.value })} - placeholder="Title for created events" - required - /> -
- -
- -