import { WebApplication } from '@/UIModels/Application' import { SNFile } from '@standardnotes/snjs' import { createContext, FunctionComponent } from 'preact' import { useContext, useState } from 'preact/hooks' import { FilePreviewModal } from './FilePreviewModal' type FilePreviewModalContextData = { activate: (file: SNFile) => void } const FilePreviewModalContext = createContext(null) export const useFilePreviewModal = (): FilePreviewModalContextData => { const value = useContext(FilePreviewModalContext) if (!value) { throw new Error('FilePreviewModalProvider not found.') } return value } export const FilePreviewModalProvider: FunctionComponent<{ application: WebApplication }> = ({ application, children }) => { const [isOpen, setIsOpen] = useState(false) const [file, setFile] = useState() const activate = (file: SNFile) => { setFile(file) setIsOpen(true) } const close = () => { setIsOpen(false) } return ( <> {isOpen && file && ( )} {children} ) }