import { useForm, Controller, useWatch } from 'react-hook-form' import { zodResolver } from '@hookform/resolvers/zod' import { ErrorMessage } from '@hookform/error-message' import z from 'zod' import { ArrowRightIcon } from 'lucide-react' import { Button } from '@repo/ui/components/ui/button' import { Label } from '@repo/ui/components/ui/label' import { RadioGroup, RadioGroupItem } from '@repo/ui/components/ui/radio-group' import { Separator } from '@repo/ui/components/ui/separator' import { Checkbox } from '@repo/ui/components/ui/checkbox' import { Field, FieldDescription, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet } from '@repo/ui/components/ui/field' import { Input } from '@repo/ui/components/ui/input' import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@repo/ui/components/ui/select' import { Textarea } from '@repo/ui/components/ui/textarea' import { useWizard } from '@/components/wizard' import { Card, CardContent } from '@repo/ui/components/ui/card' const formSchema = z.object({ payment_method: z.enum(['PIX', 'BANK_SLIP', 'CREDIT_CARD'], { error: 'Escolha uma forma de pagamento' }) }) type Schema = z.infer type PaymentProps = { onSubmit: (value: any) => void | Promise defaultValues?: object } export function Payment({ onSubmit, defaultValues }: PaymentProps) { const wizard = useWizard() const { control, handleSubmit } = useForm({ defaultValues: { payment_method: '' as any, ...defaultValues }, resolver: zodResolver(formSchema) }) const paymentMethod = useWatch({ control, name: 'payment_method' }) const onSubmit_ = async (data: Schema) => { await onSubmit(data) wizard('review') } return (
(
(

{message}

)} />
)} /> {paymentMethod === 'CREDIT_CARD' ? : null}
) } export function CreditCard() { return (
Número do cartão Nome do titular
Mês Ano CVC
) }