"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é
>
)
}