import { FilesController } from '@/Controllers/FilesController' import { FileItem } from '@standardnotes/snjs' import { useState } from 'react' import { FileItemActionType } from '../AttachedFilesPopover/PopoverFileItemAction' import { FileContextMenuBackupOption } from '../FileContextMenu/FileContextMenuBackupOption' import Icon from '../Icon/Icon' import MenuItem from '../Menu/MenuItem' import MenuSwitchButtonItem from '../Menu/MenuSwitchButtonItem' import HorizontalSeparator from '../Shared/HorizontalSeparator' type Props = { file: FileItem closeMenu: () => void handleFileAction: FilesController['handleFileAction'] setIsRenamingFile: (set: boolean) => void } const LinkedFileMenuOptions = ({ file, closeMenu, handleFileAction, setIsRenamingFile }: Props) => { const [isFileProtected, setIsFileProtected] = useState(file.protected) return ( <> { void handleFileAction({ type: FileItemActionType.PreviewFile, payload: { file, otherFiles: [], }, }) closeMenu() }} > Preview file { handleFileAction({ type: FileItemActionType.ToggleFileProtection, payload: { file }, callback: (isProtected: boolean) => { setIsFileProtected(isProtected) }, }).catch(console.error) }} > Password protect { handleFileAction({ type: FileItemActionType.DownloadFile, payload: { file }, }).catch(console.error) closeMenu() }} > Download { setIsRenamingFile(true) closeMenu() }} > Rename { handleFileAction({ type: FileItemActionType.DeleteFile, payload: { file }, }).catch(console.error) closeMenu() }} > Delete permanently ) } export default LinkedFileMenuOptions