
import { UseFormReturn } from "react-hook-form";
import { z } from "zod";
import { Form } from "@/components/ui/form";
import { TripBasicInfoFields } from "../forms/TripBasicInfoFields";
import { TripDatesFields } from "../forms/TripDatesFields";
import { TravelerFields } from "../forms/TravelerFields";
import { CoverImageField } from "../forms/CoverImageField";
import { TripSubmitButton } from "./TripSubmitButton";
import { tripSchema } from "../forms/schemas/tripSchema";

interface CreateTripFormContainerProps {
  form: UseFormReturn<z.infer<typeof tripSchema>>;
  onSubmit: (values: z.infer<typeof tripSchema>) => Promise<void>;
  isSubmitting: boolean;
}

export function CreateTripFormContainer({
  form,
  onSubmit,
  isSubmitting
}: CreateTripFormContainerProps) {
  return (
    <Form {...form}>
      <form onSubmit={form.handleSubmit(onSubmit)} className="space-y-6">
        <TripBasicInfoFields form={form} />
        <TripDatesFields form={form} />
        <TravelerFields form={form} />
        <CoverImageField form={form} />
        <TripSubmitButton isSubmitting={isSubmitting} />
      </form>
    </Form>
  );
}
