import type { UseLabels } from "@/hooks/useLabels"; type PassengerKeys = { type: number; key: string; age: number; }[]; type Params = { passengerKeys: PassengerKeys; employees?: { name: string; value: string; }[]; passengerGroups: { employee: { count: number; }; guest: { count: number; }; child: { count: number; }; }[]; }; export const getGroupPassengers = (params: Params, labels: UseLabels) => { const { passengerKeys, passengerGroups } = params; const adultPassengerKeys = passengerKeys.filter( (passengerKey) => passengerKey.type === 0, ); const childPassengerKeys = passengerKeys.filter( (passengerKey) => passengerKey.type === 1, ); let adultIndex = 0; let childIndex = 0; const employees = params.employees ?? []; let employeeIndex = 0; const newPassengerGroups: any[] = []; passengerGroups.forEach((group) => { const passengersOfGroup: any[] = []; Array(group.employee?.count) .fill(group.employee?.count) .forEach(() => { passengersOfGroup.push({ type: "employee", label: "Kurum Çalışanı", key: adultPassengerKeys[adultIndex]?.key, defaultValue: employees[employeeIndex]?.value, }); adultIndex += 1; employeeIndex += 1; }); Array(group.guest?.count) .fill(group.guest?.count) .forEach(() => { passengersOfGroup.push({ type: "guest", label: labels?.guest.label, key: adultPassengerKeys[adultIndex]?.key, }); adultIndex += 1; }); Array(group.child?.count) .fill(group.child?.count) .forEach(() => { passengersOfGroup.push({ type: "child", label: labels?.guest.label, key: childPassengerKeys[childIndex]?.key, }); childIndex += 1; }); newPassengerGroups.push(passengersOfGroup); }); return newPassengerGroups; };