import * as React from "react" import { useTranslate } from "@workspace/i18n" import { Button } from "@workspace/ui/components/button" import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, } from "@workspace/ui/components/dialog" import { useMedia } from "./context" import { MediaLibrary } from "./media-library" import { mediaMessages } from "./messages" import type { MediaAsset, MediaKind } from "./types" import { defaultMediaReference } from "./utils" const EMPTY_SELECTION: readonly MediaAsset[] = [] export interface MediaPickerDialogProps { allowedKinds?: readonly MediaKind[] initialSelection?: readonly MediaAsset[] multiple?: boolean open: boolean onConfirm: (assets: readonly MediaAsset[]) => void onOpenChange: (open: boolean) => void } export function MediaPickerDialog({ allowedKinds, initialSelection = EMPTY_SELECTION, multiple = false, open, onConfirm, onOpenChange, }: MediaPickerDialogProps) { const { adapter } = useMedia() const t = useTranslate() const [selected, setSelected] = React.useState(initialSelection) React.useEffect(() => { if (open) setSelected(initialSelection) }, [initialSelection, open]) return ( {t(mediaMessages.selectMedia)} {t(mediaMessages.selectMediaDescription)} {t(mediaMessages.selectedCount, { count: selected.length })}
} />
) }