import { FunctionComponent, useCallback, useEffect, useState } from 'react' import MenuItem from '../Menu/MenuItem' import { useApplication } from '../ApplicationProvider' import { FileBackupRecord, FileItem } from '@standardnotes/snjs' import { dateToStringStyle1 } from '@/Utils/DateUtils' import { MenuItemIconSize } from '@/Constants/TailwindClassNames' export const FileContextMenuBackupOption: FunctionComponent<{ file: FileItem }> = ({ file }) => { const application = useApplication() const [backupInfo, setBackupInfo] = useState(undefined) const [backupAbsolutePath, setBackupAbsolutePath] = useState(undefined) useEffect(() => { void application.fileBackups?.getFileBackupInfo(file).then(setBackupInfo) }, [application, file]) useEffect(() => { if (!backupInfo) { return } void application.fileBackups?.getFileBackupAbsolutePath(backupInfo).then(setBackupAbsolutePath) }, [backupInfo, application]) const openFileBackup = useCallback(() => { if (backupInfo) { void application.fileBackups?.openFileBackup(backupInfo) } }, [backupInfo, application]) const configureFileBackups = useCallback(() => { application.openPreferences('backups') }, [application]) return ( <> {backupInfo && (
Backed up on {dateToStringStyle1(backupInfo.backedUpOn)}
{backupAbsolutePath}
)} {!backupInfo && application.fileBackups && (
Configure file backups
File not backed up locally
)} ) }