"use client" /** * Edit UI delivery fields for one registry item (comment + Storybook URL). */ import * as React from "react" import { FloatingSheetPanel, FloatingSheetPanelBody, FloatingSheetPanelContent, FloatingSheetPanelFooter, FloatingSheetPanelHeader, FloatingSheetPanelToolbar, } from "@/lib/floating-sheet-panel" import { Button } from "@/components/ui/button" import { Field, FieldDescription, FieldGroup, FieldLabel } from "@/components/ui/field" import { Input } from "@/components/ui/input" import { Textarea } from "@/components/ui/textarea" import { Kbd, KbdGroup } from "@/components/ui/kbd" import { Shortcut } from "@/components/ui/dropdown-menu" import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@/components/ui/select" import { UI_DELIVERY_LABEL, type DeliveryTrackerRow, type UiDeliveryStatus, } from "@/lib/delivery-tracker" export interface DeliveryTrackerEditSheetProps { open: boolean onOpenChange: (open: boolean) => void row: DeliveryTrackerRow | null onSave: (values: { delivery: UiDeliveryStatus comment: string storybookUrl: string }) => void } export function DeliveryTrackerEditSheet({ open, onOpenChange, row, onSave, }: DeliveryTrackerEditSheetProps) { const [delivery, setDelivery] = React.useState("not_started") const [comment, setComment] = React.useState("") const [storybookUrl, setStorybookUrl] = React.useState("") React.useEffect(() => { if (!row || !open) return setDelivery(row.delivery) setComment(row.comment) setStorybookUrl(row.storybookUrl) }, [row, open]) const handleSave = React.useCallback(() => { onSave({ delivery, comment: comment.trim(), storybookUrl: storybookUrl.trim(), }) onOpenChange(false) }, [comment, delivery, onOpenChange, onSave, storybookUrl]) const title = row ? `Edit ${row.name}` : "Edit delivery" return ( {row ? ( UI delivery Storybook URL setStorybookUrl(e.target.value)} placeholder="https://storybook.example.com/?path=/docs/button" autoComplete="off" /> Full URL including https:// and the Storybook path. Comment