"use client"; import React from "react"; import * as DialogPrimitive from "@radix-ui/react-dialog"; import { X } from "lucide-react"; import { Dialog, DialogPortal, DialogOverlay, DialogClose, } from "@/components/ui/dialog"; import type { CustomPackageUnit } from "../types"; export const PACKAGE_UNITS = [ { value: "box", label: "박스", emoji: "📦" }, { value: "bag", label: "포대", emoji: "🛍️" }, { value: "pack", label: "팩", emoji: "📋" }, { value: "bundle", label: "묶음", emoji: "🔗" }, { value: "roll", label: "롤", emoji: "🧻" }, { value: "barrel", label: "통", emoji: "🪣" }, ] as const; export type PackageUnit = (typeof PACKAGE_UNITS)[number]["value"]; interface PackageUnitModalProps { open: boolean; onOpenChange: (open: boolean) => void; onSelect: (unit: string) => void; enabledUnits?: string[]; customUnits?: CustomPackageUnit[]; } export function PackageUnitModal({ open, onOpenChange, onSelect, enabledUnits, customUnits, }: PackageUnitModalProps) { const handleSelect = (unitValue: string) => { onSelect(unitValue); onOpenChange(false); }; // enabledUnits가 undefined면 전체 표시, 배열이면 필터링 const filteredDefaults = enabledUnits ? PACKAGE_UNITS.filter((u) => enabledUnits.includes(u.value)) : [...PACKAGE_UNITS]; const allUnits = [ ...filteredDefaults.map((u) => ({ value: u.value, label: u.label, emoji: u.emoji })), ...(customUnits || []).map((cu) => ({ value: cu.id, label: cu.label, emoji: "📦" })), ]; return (

📦 포장 단위 선택

{allUnits.map((unit) => ( ))}
{allUnits.length === 0 && (
사용 가능한 포장 단위가 없습니다
)} Close
); }