mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-23 21:11:13 -05:00
feat: Implement photo selection for entity edit forms
This commit is contained in:
@@ -45,7 +45,11 @@ type DesignerFormData = z.infer<typeof designerSchema>;
|
||||
interface DesignerFormProps {
|
||||
onSubmit: (data: DesignerFormData) => void;
|
||||
onCancel: () => void;
|
||||
initialData?: Partial<DesignerFormData>;
|
||||
initialData?: Partial<DesignerFormData & {
|
||||
id?: string;
|
||||
banner_image_url?: string;
|
||||
card_image_url?: string;
|
||||
}>;
|
||||
}
|
||||
|
||||
export function DesignerForm({ onSubmit, onCancel, initialData }: DesignerFormProps) {
|
||||
@@ -193,6 +197,9 @@ export function DesignerForm({ onSubmit, onCancel, initialData }: DesignerFormPr
|
||||
value={watch('images') || { uploaded: [] }}
|
||||
onChange={(images) => setValue('images', images)}
|
||||
entityType="designer"
|
||||
entityId={initialData?.id}
|
||||
currentBannerUrl={initialData?.banner_image_url}
|
||||
currentCardUrl={initialData?.card_image_url}
|
||||
/>
|
||||
|
||||
{/* Actions */}
|
||||
|
||||
@@ -45,7 +45,11 @@ type ManufacturerFormData = z.infer<typeof manufacturerSchema>;
|
||||
interface ManufacturerFormProps {
|
||||
onSubmit: (data: ManufacturerFormData) => void;
|
||||
onCancel: () => void;
|
||||
initialData?: Partial<ManufacturerFormData>;
|
||||
initialData?: Partial<ManufacturerFormData & {
|
||||
id?: string;
|
||||
banner_image_url?: string;
|
||||
card_image_url?: string;
|
||||
}>;
|
||||
}
|
||||
|
||||
export function ManufacturerForm({ onSubmit, onCancel, initialData }: ManufacturerFormProps) {
|
||||
@@ -193,6 +197,9 @@ export function ManufacturerForm({ onSubmit, onCancel, initialData }: Manufactur
|
||||
value={watch('images') || { uploaded: [] }}
|
||||
onChange={(images) => setValue('images', images)}
|
||||
entityType="manufacturer"
|
||||
entityId={initialData?.id}
|
||||
currentBannerUrl={initialData?.banner_image_url}
|
||||
currentCardUrl={initialData?.card_image_url}
|
||||
/>
|
||||
|
||||
{/* Actions */}
|
||||
|
||||
@@ -45,7 +45,11 @@ type OperatorFormData = z.infer<typeof operatorSchema>;
|
||||
interface OperatorFormProps {
|
||||
onSubmit: (data: OperatorFormData) => void;
|
||||
onCancel: () => void;
|
||||
initialData?: Partial<OperatorFormData>;
|
||||
initialData?: Partial<OperatorFormData & {
|
||||
id?: string;
|
||||
banner_image_url?: string;
|
||||
card_image_url?: string;
|
||||
}>;
|
||||
}
|
||||
|
||||
export function OperatorForm({ onSubmit, onCancel, initialData }: OperatorFormProps) {
|
||||
@@ -193,6 +197,9 @@ export function OperatorForm({ onSubmit, onCancel, initialData }: OperatorFormPr
|
||||
value={watch('images') || { uploaded: [] }}
|
||||
onChange={(images) => setValue('images', images)}
|
||||
entityType="operator"
|
||||
entityId={initialData?.id}
|
||||
currentBannerUrl={initialData?.banner_image_url}
|
||||
currentCardUrl={initialData?.card_image_url}
|
||||
/>
|
||||
|
||||
{/* Actions */}
|
||||
|
||||
@@ -55,8 +55,11 @@ interface ParkFormProps {
|
||||
}) => Promise<void>;
|
||||
onCancel?: () => void;
|
||||
initialData?: Partial<ParkFormData & {
|
||||
id?: string;
|
||||
operator_id?: string;
|
||||
property_owner_id?: string;
|
||||
banner_image_url?: string;
|
||||
card_image_url?: string;
|
||||
}>;
|
||||
isEditing?: boolean;
|
||||
}
|
||||
@@ -421,6 +424,9 @@ export function ParkForm({ onSubmit, onCancel, initialData, isEditing = false }:
|
||||
value={watch('images')}
|
||||
onChange={(images: ImageAssignments) => setValue('images', images)}
|
||||
entityType="park"
|
||||
entityId={isEditing ? initialData?.id : undefined}
|
||||
currentBannerUrl={initialData?.banner_image_url}
|
||||
currentCardUrl={initialData?.card_image_url}
|
||||
/>
|
||||
|
||||
{/* Form Actions */}
|
||||
|
||||
@@ -45,7 +45,11 @@ type PropertyOwnerFormData = z.infer<typeof propertyOwnerSchema>;
|
||||
interface PropertyOwnerFormProps {
|
||||
onSubmit: (data: PropertyOwnerFormData) => void;
|
||||
onCancel: () => void;
|
||||
initialData?: Partial<PropertyOwnerFormData>;
|
||||
initialData?: Partial<PropertyOwnerFormData & {
|
||||
id?: string;
|
||||
banner_image_url?: string;
|
||||
card_image_url?: string;
|
||||
}>;
|
||||
}
|
||||
|
||||
export function PropertyOwnerForm({ onSubmit, onCancel, initialData }: PropertyOwnerFormProps) {
|
||||
@@ -193,6 +197,9 @@ export function PropertyOwnerForm({ onSubmit, onCancel, initialData }: PropertyO
|
||||
value={watch('images') || { uploaded: [] }}
|
||||
onChange={(images) => setValue('images', images)}
|
||||
entityType="property_owner"
|
||||
entityId={initialData?.id}
|
||||
currentBannerUrl={initialData?.banner_image_url}
|
||||
currentCardUrl={initialData?.card_image_url}
|
||||
/>
|
||||
|
||||
{/* Actions */}
|
||||
|
||||
@@ -84,7 +84,11 @@ type RideFormData = z.infer<typeof rideSchema>;
|
||||
interface RideFormProps {
|
||||
onSubmit: (data: RideFormData) => Promise<void>;
|
||||
onCancel?: () => void;
|
||||
initialData?: Partial<RideFormData>;
|
||||
initialData?: Partial<RideFormData & {
|
||||
id?: string;
|
||||
banner_image_url?: string;
|
||||
card_image_url?: string;
|
||||
}>;
|
||||
isEditing?: boolean;
|
||||
}
|
||||
|
||||
@@ -752,6 +756,9 @@ export function RideForm({ onSubmit, onCancel, initialData, isEditing = false }:
|
||||
value={watch('images') || { uploaded: [] }}
|
||||
onChange={(images: ImageAssignments) => setValue('images', images)}
|
||||
entityType="ride"
|
||||
entityId={isEditing ? initialData?.id : undefined}
|
||||
currentBannerUrl={initialData?.banner_image_url}
|
||||
currentCardUrl={initialData?.card_image_url}
|
||||
/>
|
||||
|
||||
{/* Form Actions */}
|
||||
|
||||
@@ -42,7 +42,11 @@ interface RideModelFormProps {
|
||||
manufacturerId?: string;
|
||||
onSubmit: (data: RideModelFormData) => void;
|
||||
onCancel: () => void;
|
||||
initialData?: Partial<RideModelFormData>;
|
||||
initialData?: Partial<RideModelFormData & {
|
||||
id?: string;
|
||||
banner_image_url?: string;
|
||||
card_image_url?: string;
|
||||
}>;
|
||||
}
|
||||
|
||||
const categories = [
|
||||
@@ -193,6 +197,9 @@ export function RideModelForm({
|
||||
value={watch('images') || { uploaded: [] }}
|
||||
onChange={(images) => setValue('images', images)}
|
||||
entityType="ride_model"
|
||||
entityId={initialData?.id}
|
||||
currentBannerUrl={initialData?.banner_image_url}
|
||||
currentCardUrl={initialData?.card_image_url}
|
||||
/>
|
||||
|
||||
{/* Actions */}
|
||||
|
||||
Reference in New Issue
Block a user