"use client"; import { Pencil } from "lucide-react"; import { cn } from "@/lib/utils"; import type { PlacementPostStatus } from "@/lib/types/api"; import { PLACEMENT_POST_STATUSES, getPlacementPostStatusIcon, getPlacementPostStatusColor, canEditPostStatus, } from "@/lib/config/placement-columns"; import { Popover, PopoverContent, PopoverTrigger, } from "@/components/ui/popover"; import { Button } from "@/components/ui/button"; interface PlacementPostStatusSelectorProps { status: PlacementPostStatus | null; isEditing: boolean; canEdit: boolean; onEdit: () => void; onChange: (status: PlacementPostStatus) => void; onCloseEdit: () => void; } export function PlacementPostStatusSelector({ status, isEditing, canEdit, onEdit, onChange, onCloseEdit, }: PlacementPostStatusSelectorProps) { if (!status) { return ; } const canEditThisStatus = canEdit && canEditPostStatus(status); const StatusIcon = getPlacementPostStatusIcon(status); const statusColor = getPlacementPostStatusColor(status); if (isEditing && canEditThisStatus) { return ( !open && onCloseEdit()}>
{PLACEMENT_POST_STATUSES.map((s) => { const Icon = getPlacementPostStatusIcon(s); const color = getPlacementPostStatusColor(s); const isSelected = s === status; return ( ); })}
); } return ( ); }