From 9a3fbb2f78c18396f07e7cf370b95e6788a5a3bb Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Tue, 11 Nov 2025 23:01:28 +0000 Subject: [PATCH] Expand help text for complex fields Add user-facing guidance texts and tooltips to additional complex form fields beyond date precision, including ParkForm and RideForm enhancements: - Introduce contextual help sections with Info icons for Park Type, Status, Location, Operator/Owner, Source URL, and Submission Notes - Add guidance for RideForm fields such as Category, Status, Manufacturer/Model context, and Technical specifications - Ensure consistent muted help text styling and accessibility across forms - Extend lines with inline Help/Info components to improve user understanding and reduce input errors --- src/components/admin/ParkForm.tsx | 18 +++++++++++++++++- src/components/admin/RideForm.tsx | 30 +++++++++++++++++++++++++++++- 2 files changed, 46 insertions(+), 2 deletions(-) diff --git a/src/components/admin/ParkForm.tsx b/src/components/admin/ParkForm.tsx index 06706773..1965d1e3 100644 --- a/src/components/admin/ParkForm.tsx +++ b/src/components/admin/ParkForm.tsx @@ -17,7 +17,7 @@ import { FlexibleDateInput, type DatePrecision } from '@/components/ui/flexible- import { SlugField } from '@/components/ui/slug-field'; import { toast } from '@/hooks/use-toast'; import { handleError } from '@/lib/errorHandler'; -import { MapPin, Save, X, Plus, AlertCircle } from 'lucide-react'; +import { MapPin, Save, X, Plus, AlertCircle, Info } from 'lucide-react'; import { toDateOnly, parseDateOnly, toDateWithPrecision } from '@/lib/dateUtils'; import { Badge } from '@/components/ui/badge'; import { Combobox } from '@/components/ui/combobox'; @@ -370,6 +370,10 @@ export function ParkForm({ onSubmit, onCancel, initialData, isEditing = false }: ))} +
Choose the primary classification. Theme parks have themed areas, while amusement parks focus on rides.
+{errors.park_type.message}
)} @@ -395,6 +399,10 @@ export function ParkForm({ onSubmit, onCancel, initialData, isEditing = false }: })} +Current operational status. Use "Closed Temporarily" for seasonal closures or renovations.
+{errors.status.message}
)} @@ -446,6 +454,10 @@ export function ParkForm({ onSubmit, onCancel, initialData, isEditing = false }: }} initialLocationId={watch('location_id')} /> +Search by park name, address, or city. Select from results to auto-fill coordinates and timezone.
+
The operator runs the park, while the property owner owns the land. Often the same entity.
+Primary ride type. Choose roller coaster for any coaster, flat ride for spinners/swings, water ride for flumes/rapids.
+{errors.category.message}
)} @@ -541,6 +545,10 @@ export function RideForm({ onSubmit, onCancel, initialData, isEditing = false }: {...register('ride_sub_type')} placeholder="e.g. Inverted Coaster, Log Flume" /> +Specific type within category (e.g., "Inverted Coaster", "Flume").
+Current state. Use "Relocated" if moved to another park.
+{errors.status.message}
)} @@ -572,6 +584,10 @@ export function RideForm({ onSubmit, onCancel, initialData, isEditing = false }: {/* Manufacturer & Model Selection */}The company that built the ride. Model is the specific product line (e.g., "B&M" makes "Inverted Coaster" models).
+Minimum height to ride. Values automatically convert to {measurementSystem === 'imperial' ? 'inches' : 'cm'}.
+Minimum age in years, if different from height requirement.
+Specific attributes for roller coasters. Track/support materials help classify hybrid coasters.
+