diff --git a/client/src/App.jsx b/client/src/App.jsx index eb9cba9..edaca26 100644 --- a/client/src/App.jsx +++ b/client/src/App.jsx @@ -5,6 +5,7 @@ import Lightbox from './components/Lightbox.jsx'; import FilterSidebar from './components/FilterSidebar.jsx'; import IngestBadge from './components/IngestBadge.jsx'; import DuplicatesView from './components/DuplicatesView.jsx'; +import SettingsPanel from './components/SettingsPanel.jsx'; import { lazy, Suspense } from 'react'; const MapView = lazy(() => import('./components/MapView.jsx')); @@ -24,8 +25,9 @@ export default function App() { const [filters, setFilters] = useState(EMPTY_FILTERS); const [stats, setStats] = useState(null); - const [lbPhotos, setLbPhotos] = useState(null); - const [lbIndex, setLbIndex] = useState(null); + const [lbPhotos, setLbPhotos] = useState(null); + const [lbIndex, setLbIndex] = useState(null); + const [showSettings, setShowSettings] = useState(false); const loadingRef = useRef(false); const sentinelRef = useRef(null); @@ -138,9 +140,23 @@ export default function App() { - {/* Ingest progress — right side */} -
Loading…
+ ) : ( ++ Add absolute paths to scan. In Docker, the path must be mounted as a volume. +
+ + {folders.map(f => ( ++ Changes apply to newly ingested photos. Existing thumbnails are not regenerated. +
++ Hamming distance — lower = stricter (fewer, more exact matches). +
++ Resets all "Not duplicates" decisions so groups reappear in the review list. +
+