"use client" import { useFormContext } from "react-hook-form" import { useIntl } from "react-intl" import { useGuestsRoomsStore } from "@/stores/guests-rooms" import Caption from "@/components/TempDesignSystem/Text/Caption" import Counter from "../Counter" import ChildInfoSelector from "./ChildInfoSelector" import styles from "./child-selector.module.css" import { BookingWidgetSchema } from "@/types/components/bookingWidget" import { ChildSelectorProps } from "@/types/components/bookingWidget/guestsRoomsPicker" export default function ChildSelector({ roomIndex = 0 }: ChildSelectorProps) { const intl = useIntl() const childrenLabel = intl.formatMessage({ id: "Children" }) const { setValue, trigger } = useFormContext() const children = useGuestsRoomsStore((state) => state.rooms[roomIndex].child) const increaseChildren = useGuestsRoomsStore( (state) => state.increaseChildren ) const decreaseChildren = useGuestsRoomsStore( (state) => state.decreaseChildren ) function increaseChildrenCount(roomIndex: number) { if (children.length < 5) { increaseChildren(roomIndex) setValue( `rooms.${roomIndex}.child.${children.length}`, { age: -1, bed: -1, }, { shouldValidate: true } ) } } function decreaseChildrenCount(roomIndex: number) { if (children.length > 0) { const newChildrenList = decreaseChildren(roomIndex) setValue(`rooms.${roomIndex}.child`, newChildrenList, { shouldValidate: true, }) } } return ( <>
{childrenLabel} { decreaseChildrenCount(roomIndex) }} handleOnIncrease={() => { increaseChildrenCount(roomIndex) }} disableDecrease={children.length == 0} disableIncrease={children.length == 5} />
{children.map((child, index) => ( ))} ) }