diff --git a/AGENTS.md b/AGENTS.md index bf34d20..a34df19 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -31,7 +31,7 @@ src/ ToolsPage.tsx # Tools SearchOverlay.tsx WiFiScanOverlay.tsx - FileBrowser.tsx # WebDAV file browser (file click = select, kebab menu) + MediaBrowser.tsx # WebDAV file browser (file click = select, kebab menu) figma/ # Figma-generated components ui/ # shadcn/Radix UI wrappers vendor/ @@ -93,7 +93,7 @@ All individual app pages are currently stubs (`AppPage` component with "coming s 11. **WebDAV client** — replaced `webdav@5` npm package with vendored `webdav-component` (browser-native `fetch` + `DOMParser`, no external deps). All pages import from `webdav.ts` abstraction layer. 12. **WebDAV path fixes** — `webdav.ts`: always `decodeURIComponent` paths; use `entry.uri` (not broken `entry.path`) for servers returning relative hrefs 13. **`webdav3.py` server fixes** — `displayname` now returns leaf name only (not full path); PROPFIND depth-1 guard prevents crash when called on a file -14. **FileBrowser redesign** — file click = `onSelect` + close; folder click = navigate; per-row kebab (`MoreVert`) opens a Dialog with contextual actions; permanent "Select Folder" button in footer; no mode-toggle buttons +14. **MediaBrowser redesign** — file click = `onSelect` + close; folder click = navigate; per-row kebab (`MoreVert`) opens a Dialog with contextual actions; permanent "Select Folder" button in footer; no mode-toggle buttons 15. **Settings persistence** — `settings.ts` + `useSettings()` hook: loads `/.sys/config.json` via WebDAV on mount, auto-saves 3 s after last change, exposes `saveStatus` / `pendingCount` / `flushNow`; `beforeunload` flushes via `fetch keepalive` 16. **Save-status badge** — `SaveStatusBadge` in `App.tsx` header shows: idle (hidden), loading spinner, amber "N unsaved + Save button", saving spinner, saved checkmark, red error + retry diff --git a/src/app/App.tsx b/src/app/App.tsx index c168a7a..f6f1ebd 100644 --- a/src/app/App.tsx +++ b/src/app/App.tsx @@ -9,7 +9,7 @@ import IECPage from './components/IECPage'; import OtherPage from './components/OtherPage'; import ToolsPage from './components/ToolsPage'; import SearchOverlay from './components/SearchOverlay'; -import FileManager from './components/FileManager'; +import MediaManager from './components/MediaManager'; import logoSvg from '../imports/logo.svg'; import { useSettings } from './settings'; @@ -60,7 +60,7 @@ export default function App() {