"use client"; import { FileManagerBackgroundContextMenu, FileManagerContextMenu } from "@/modules/files/components/menus/file-manager-overlays"; import { CreateEntryDialog, EmptyTrashConfirmDialog, FileInfoDialogOverlay, PasteConflictDialog, RenameEntryDialog, UploadProgressDialog, } from "@/modules/files/components/dialogs/file-manager-dialogs"; import { NetworkStorageDialog } from "@/modules/files/components/dialogs/network-storage-dialog"; import { GoogleDriveDialog } from "@/modules/files/components/dialogs/google-drive-dialog"; import { UsbStorageDialog } from "@/modules/files/components/dialogs/usb-storage-dialog"; import type { FileInfoResponse } from "@/lib/shared/contracts/files"; import type { FileEntry } from "@/modules/files/components/file-manager-presenters"; import type { ClipboardState, CreateEntryDialogState, PasteConflictState, RenameDialogState, } from "@/modules/files/components/manager/file-manager-state"; type FileManagerDialogLayerProps = { clipboardState: ClipboardState | null; contextShare: | { id: string; } | undefined; createEntryDialog: CreateEntryDialogState | null; fileInfoDialog: FileInfoResponse | null; isTrashView: boolean; pasteConflict: PasteConflictState | null; pastePending: boolean; renameDialog: RenameDialogState | null; showBackgroundContextMenu: { x: number; y: number } | null; showContextMenu: { x: number; y: number; entry: FileEntry } | null; showEmptyTrashConfirm: boolean; showNetworkDialog: boolean; showGoogleDriveDialog: boolean; showUsbDialog: boolean; trashItemCount: number; uploadPending: boolean; uploadProgress: { loaded: number; total: number } | null; unzipPending: boolean; createPending: boolean; renamePending: boolean; onCloseContextMenu: () => void; onCloseBackgroundContextMenu: () => void; onOpenCreateEntryDialog: (kind: "file" | "folder") => void; onCloseCreateEntryDialog: () => void; onChangeCreateEntryDialog: (value: string) => void; onSubmitCreateEntryDialog: () => void; onCloseRenameDialog: () => void; onChangeRenameDialog: (value: string) => void; onSubmitRenameDialog: () => void; onCancelEmptyTrash: () => void; onCancelUpload: () => void; onConfirmEmptyTrash: () => void; onCloseFileInfoDialog: () => void; onConflictResolution: (choice: "replace" | "keep-both" | "skip" | "skip-all") => void; onCloseNetworkDialog: () => void; onCloseGoogleDriveDialog: () => void; onCloseUsbDialog: () => void; onNavigateToNetwork: () => void; onNavigateToUsb: (path: string[]) => void; onCopyContextEntry: () => void; onCopyContextPath: () => void; onCutContextEntry: () => void; onDeleteContextEntry: () => void; onDownloadContextEntry: () => void; onUnzipContextEntry: () => void; onGetInfoContextEntry: () => void; onMoveContextEntryToTrash: () => void; onOpenContextEntry: () => void; onPasteIntoContextEntry: () => void; onPasteIntoBackground: () => void; onRenameContextEntry: () => void; onRestoreContextEntry: () => void; onToggleContextShare: () => void; onToggleContextStar: () => void; }; export function FileManagerDialogLayer({ clipboardState, contextShare, createEntryDialog, createPending, fileInfoDialog, isTrashView, onCancelEmptyTrash, onCancelUpload, onChangeCreateEntryDialog, onChangeRenameDialog, onCloseBackgroundContextMenu, onCloseContextMenu, onCloseCreateEntryDialog, onCloseFileInfoDialog, onCloseNetworkDialog, onCloseGoogleDriveDialog, onCloseUsbDialog, onCloseRenameDialog, onConfirmEmptyTrash, onConflictResolution, onCopyContextEntry, onCopyContextPath, onCutContextEntry, onDeleteContextEntry, onDownloadContextEntry, onUnzipContextEntry, onGetInfoContextEntry, onMoveContextEntryToTrash, onNavigateToNetwork, onNavigateToUsb, onOpenContextEntry, onOpenCreateEntryDialog, onPasteIntoBackground, onPasteIntoContextEntry, onRenameContextEntry, onRestoreContextEntry, onSubmitCreateEntryDialog, onSubmitRenameDialog, onToggleContextShare, onToggleContextStar, pasteConflict, pastePending, renameDialog, renamePending, showBackgroundContextMenu, showContextMenu, showEmptyTrashConfirm, showNetworkDialog, showGoogleDriveDialog, showUsbDialog, trashItemCount, uploadPending, uploadProgress, unzipPending, }: FileManagerDialogLayerProps) { return ( <> {showContextMenu ? ( ) : null} {showBackgroundContextMenu ? ( onOpenCreateEntryDialog("folder")} onNewFile={() => onOpenCreateEntryDialog("file")} onPaste={onPasteIntoBackground} /> ) : null} {createEntryDialog ? ( ) : null} {renameDialog ? ( ) : null} {showEmptyTrashConfirm ? ( ) : null} {fileInfoDialog ? ( ) : null} {uploadPending || uploadProgress ? ( ) : unzipPending ? ( ) : null} {pasteConflict ? ( onConflictResolution("replace")} onKeepBoth={() => onConflictResolution("keep-both")} onSkip={() => onConflictResolution("skip")} onSkipAll={() => onConflictResolution("skip-all")} /> ) : null} { onNavigateToUsb(path); onCloseUsbDialog(); }} /> ); }