useDialog
Native open/save dialogs (dialog.showOpenDialog / showSaveDialog). Picked paths are just
strings — reading/writing them still goes through useFs's own security mode (fs.mode /
fs.allowedRoots), so this hook doesn't need a security mode of its own.
const { showOpenDialog, showSaveDialog } = useDialog()
| Member | Type | Notes |
|---|---|---|
showOpenDialog | (options?: NextopOpenDialogOptions) => Promise<string[] | null> | null if the user cancels. |
showSaveDialog | (options?: NextopSaveDialogOptions) => Promise<string | null> | null if user cancels. |
type NextopDialogFilter = { name: string; extensions: string[] }type NextopOpenDialogOptions = {title?: stringdefaultPath?: stringfilters?: NextopDialogFilter[]properties?: Array<'openFile' | 'openDirectory' | 'multiSelections' | 'showHiddenFiles'| 'createDirectory' | 'promptToCreate' | 'noResolveAliases'| 'treatPackageAsDirectory' | 'dontAddToRecent'>}type NextopSaveDialogOptions = { title?: string; defaultPath?: string; filters?: NextopDialogFilter[] }
import { useDialog, useFs } from 'nextop-app'const { showOpenDialog } = useDialog()const { writeFile } = useFs()const files = await showOpenDialog({ filters: [{ name: 'Images', extensions: ['png', 'jpg'] }] })if (files) await writeFile(files[0], '...')