Library workspace upgrades: darkroom viewer, mosaic, geotagging, file explorer
- darkroom-style fullscreen viewer: left info panel, rating/color-label toolbar, bottom filmstrip, keyboard nav (Esc / arrows), placeholder on load failure - thumbnail density slider (contact-sheet) + photo mosaic generator (target -> tiles) - lighttable-style hover info preview (no click needed) - map drag & drop geotagging (saved to index only; originals untouched) - file explorer: parallel drive scan + timeout, create/delete(trash)/move folders; index reparent on move and cleanup on delete (single source of truth) - library: photos-before-videos ordering; drag range select/deselect; native image drag disabled so sweep-select works - responsive sidebar font scaling; no-wrap filter labels; media protocol CORS + video Range Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+23
-15
@@ -12,6 +12,7 @@ import { LibraryView } from './components/LibraryView'
|
||||
import { SearchView } from './components/SearchView'
|
||||
import { GroupsView } from './components/GroupsView'
|
||||
import { MapView } from './components/MapView'
|
||||
import { FileExplorer } from './components/FileExplorer'
|
||||
import type { AppView } from './store'
|
||||
|
||||
export default function App(): JSX.Element {
|
||||
@@ -96,24 +97,31 @@ export default function App(): JSX.Element {
|
||||
)}
|
||||
|
||||
{view === 'organize' ? (
|
||||
<main className="flex-1 min-h-0 grid grid-cols-12 gap-3 p-4">
|
||||
{/* 좌측: 설정 패널 (자체 스크롤) */}
|
||||
<section className="col-span-5 min-h-0 flex flex-col gap-4 overflow-y-auto pr-2">
|
||||
<ProfileManager />
|
||||
<FolderPicker />
|
||||
<RunControl />
|
||||
</section>
|
||||
<main className="flex-1 min-h-0 flex">
|
||||
{/* 좌측: 파일 탐색기 사이드바 */}
|
||||
<aside className="w-56 shrink-0 bg-slate-100 dark:bg-slate-800 border-r border-slate-200 dark:border-slate-700">
|
||||
<FileExplorer />
|
||||
</aside>
|
||||
|
||||
{/* 우측: 진행/결과 — FileList만 내부 스크롤 */}
|
||||
<section className="col-span-7 min-h-0 flex flex-col gap-4">
|
||||
<div className="shrink-0">
|
||||
{phase === 'done' ? <ReportView /> : <ProgressView />}
|
||||
</div>
|
||||
<FileList />
|
||||
</section>
|
||||
<div className="flex-1 min-w-0 min-h-0 grid grid-cols-12 gap-3 p-4">
|
||||
{/* 설정 패널 (자체 스크롤) */}
|
||||
<section className="col-span-5 min-h-0 flex flex-col gap-4 overflow-y-auto pr-2">
|
||||
<ProfileManager />
|
||||
<FolderPicker />
|
||||
<RunControl />
|
||||
</section>
|
||||
|
||||
{/* 진행/결과 — FileList만 내부 스크롤 */}
|
||||
<section className="col-span-7 min-h-0 flex flex-col gap-4">
|
||||
<div className="shrink-0">
|
||||
{phase === 'done' ? <ReportView /> : <ProgressView />}
|
||||
</div>
|
||||
<FileList />
|
||||
</section>
|
||||
</div>
|
||||
</main>
|
||||
) : view === 'library' ? (
|
||||
<main className="flex-1 min-h-0 overflow-y-auto p-4">
|
||||
<main className="flex-1 min-h-0">
|
||||
<LibraryView />
|
||||
</main>
|
||||
) : view === 'search' ? (
|
||||
|
||||
Reference in New Issue
Block a user