"use client"
import type { ReactNode } from "react"
import {
CheckCircle2,
Copy,
Download,
FileText,
FolderInput,
FolderOpen,
Globe2,
HardDrive,
History,
Info,
Mail,
Pencil,
Printer,
Share2,
Shield,
Trash2,
UserPlus,
} from "lucide-react"
import {
MenubarContent,
MenubarItem,
MenubarMenu,
MenubarSeparator,
MenubarSub,
MenubarSubContent,
MenubarSubTrigger,
MenubarTrigger,
} from "@/components/ui/menubar"
import { DOCS_MENUBAR_CONTENT_PROPS } from "@/components/drive/richtext/docs-menubar-props"
import { DocsLogoIcon } from "@/components/drive/richtext/docs-logo-icon"
import { DocsMenuShortcut } from "@/components/drive/richtext/docs-menu-shortcut"
import { DOCS_DOWNLOAD_FORMATS, type DocsDownloadFormat } from "@/lib/drive/docs-file-menu-export"
import { cn } from "@/lib/utils"
export type DocsFileMenuActions = {
onNewDocument: () => void
onNewFromTemplate: () => void
onOpen: () => void
onMakeCopy: () => void
onShareWithUsers: () => void
onPublishToWeb: () => void
onEmailFile: () => void
onEmailCollaborators: () => void
onEmailDraft: () => void
onDownload: (format: DocsDownloadFormat) => void
onRename: () => void
onMove: () => void
onAddShortcut: () => void
onMoveToTrash: () => void
onNameCurrentVersion: () => void
onShowVersionHistory: () => void
onToggleOffline: () => void
onDetails: () => void
onSecurityLimits: () => void
onPageSetup: () => void
onPrint: () => void
/** Dev-only: purge .ultidoc.json sidecar and force DOCX reimport. */
onPurgeSidecarAndReimport?: () => void
}
function MenuIcon({ children }: { children: ReactNode }) {
return {children}
}
export function DocsFileMenu({
actions,
disabled,
}: {
actions: DocsFileMenuActions
disabled?: boolean
}) {
return (
Fichier
Nouveau
Document
À partir de la galerie de modèles
Ouvrir
Créer une copie
Partager
Partager avec d'autres utilisateurs
Publier sur le Web
Envoyer par e-mail
Envoyer ce fichier par e-mail
Envoyer par e-mail aux collaborateurs
Brouillon d'e-mail
Télécharger
{DOCS_DOWNLOAD_FORMATS.map((format) => (
actions.onDownload(format.id)}
>
{format.label}
))}
Renommer
Déplacer
Ajouter un raccourci dans Drive
Placer dans la corbeille
Historique des versions
Nommer la version actuelle
Afficher l'historique des versions
Rendre disponible hors connexion
Détails
Limites de sécurité
Configuration de la page
{actions.onPurgeSidecarAndReimport ? (
<>
Purger sidecar et réimporter doc
>
) : null}
Imprimer
)
}