"use client" import type { ComponentType, CSSProperties, ReactNode } from "react" import { Clock, FolderInput, Tag } from "lucide-react" import { Sheet, SheetContent, SheetHeader, SheetTitle, } from "@/components/ui/sheet" import { cn } from "@/lib/utils" import { EmailLabelPickerBlock } from "@/components/gmail/email-label-picker-block" import type { MoveTarget } from "@/components/gmail/move-to-menu-items" import type { LabelPickerVisual } from "@/lib/label-picker-visual" function SheetActionRow({ children, onClick, className, style, }: { children: ReactNode onClick: () => void className?: string style?: CSSProperties }) { return ( ) } const SheetLabelItem: ComponentType<{ children: ReactNode onSelect?: (event: Event) => void className?: string }> = ({ children, onSelect, className }) => (
onSelect?.(e as unknown as Event)} onKeyDown={(e) => { if (e.key === "Enter" || e.key === " ") { e.preventDefault() onSelect?.(e as unknown as Event) } }} > {children}
) type CatalogLabelPresence = "none" | "some" | "all" export type MobileXsBulkSheetsProps = { moveSheetOpen: boolean onMoveSheetOpenChange: (open: boolean) => void labelSheetOpen: boolean onLabelSheetOpenChange: (open: boolean) => void labelPickerQuery: string onLabelPickerQueryChange: (query: string) => void catalogLabels: string[] resolveLabelVisual: (label: string) => LabelPickerVisual moveTargets: { recents: MoveTarget[]; system: MoveTarget[]; folders: MoveTarget[] } onMoveTo: (targetId: string) => void getLabelPresence: (label: string) => CatalogLabelPresence onToggleCatalogLabel: (label: string) => void onCreateLabel: (label: string) => void } export function MobileXsBulkSheets({ moveSheetOpen, onMoveSheetOpenChange, labelSheetOpen, onLabelSheetOpenChange, labelPickerQuery, onLabelPickerQueryChange, catalogLabels, resolveLabelVisual, moveTargets, onMoveTo, getLabelPresence, onToggleCatalogLabel, onCreateLabel, }: MobileXsBulkSheetsProps) { return ( <> Déplacer vers
{moveTargets.recents.length > 0 && ( <>
Récents
{moveTargets.recents.map((t) => ( { onMoveTo(t.id) onMoveSheetOpenChange(false) }} > {t.icon ?? } {t.label} ))}
)} {moveTargets.system.map((t) => ( { onMoveTo(t.id) onMoveSheetOpenChange(false) }} > {t.icon ?? } {t.label} ))} {moveTargets.folders.length > 0 && ( <>
Dossiers
{moveTargets.folders.map((t) => ( { onMoveTo(t.id) onMoveSheetOpenChange(false) }} style={t.depth > 0 ? { paddingLeft: `${16 + t.depth * 16}px` } : undefined} > {t.icon ?? } {t.label} ))} )}
{ onLabelSheetOpenChange(open) if (!open) onLabelPickerQueryChange("") }} > e.preventDefault()} > Ajouter le libellé
) }