import { html, useState, useEffect } from './vendor/htm-preact.js'; import { t } from './i18n.js'; import { useSaver } from './settings-ui.js'; import { FolderPickerField } from './folder-tree.js'; /** * The Photos app's operator settings: folders, and nothing else. * * Photos was always several folders (docs/MESHBAY_DESIGN.md §9.9) — a photo library * is routinely scattered, with no single natural root — so this pane is what * the other two grew into rather than the exception it used to be. No * third-party service: EXIF is read locally on the node, and nothing about a * photo leaves the machine to be identified. */ function PhotoSettings({ roots, dirs, settings, saveDirectories }) { const { busy, msg, run } = useSaver(); const [directories, setDirectories] = useState(settings.photoDirectories || []); useEffect(() => { setDirectories(settings.photoDirectories || []); }, [settings.photoDirectories]); const current = settings.photoDirectories || []; const dirty = directories.length !== current.length || directories.some((d, i) => d !== current[i]); return html`
${msg}
`}