diff --git a/CHANGELOG.md b/CHANGELOG.md index 50ba7c6..7212aa2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,25 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 Releases up to and including v0.9.2 are documented in the [GitHub releases](https://github.com/ralksta/immich-folio/releases). +## [0.18.1] — 2026-09-27 + +### Fixed + +- **The admin fits a phone** + ([#733](https://github.com/ralksta/immich-folio/pull/733), reported in + [#732](https://github.com/ralksta/immich-folio/issues/732) by + [@RichKidsDev](https://github.com/RichKidsDev)). Below 860px the sidebar + unfolded above the content — navigation, status and four actions — and + filled most of an iPhone screen. It is now a header row with the brand and + a menu button; the menu opens as one column of full-width rows and closes + again on navigation, and an unread message shows as a dot on the button. + Desktop is unchanged. + +- **The settings editor refuses prototype keys in a setting's path** + ([#731](https://github.com/ralksta/immich-folio/pull/731)). All paths are + written in the code, so this was not reachable; CodeQL flagged the setter + after the v0.18.0 release. + ## [0.18.0] — 2026-09-27 ### Security diff --git a/README.md b/README.md index e4c8ba5..528bfd3 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ A self-hosted portfolio powered by [Immich](https://immich.app). It acts as a **secure reverse proxy** between your visitors and your private Immich instance: your Immich server stays on your local network, completely invisible to the outside world, while your albums are published as a gallery you control. -**Latest: v0.18.0** — built-in contact form, privacy page and a reworked admin panel. → [What's New](#whats-new) +**Latest: v0.18.1** — built-in contact form, privacy page and a reworked admin panel. → [What's New](#whats-new) ## Contents diff --git a/app/admin/components/AdminDashboard.tsx b/app/admin/components/AdminDashboard.tsx index 1f51912..71a12e6 100644 --- a/app/admin/components/AdminDashboard.tsx +++ b/app/admin/components/AdminDashboard.tsx @@ -112,6 +112,11 @@ const SIDEBAR_KEY = 'folio_admin_sidebar'; export default function AdminDashboard({ onLogout, children }: Props) { const notify = useNotify(); const pathname = usePathname(); + // Phones: the sidebar folds into a header row, and the nav opens from a + // menu button (#732) — spread out above the content, it took most of an + // iPhone screen before anything could be edited. + const [menuOpen, setMenuOpen] = useState(false); + useEffect(() => setMenuOpen(false), [pathname]); const [saving, setSaving] = useState(false); // Diagnostics & Backup state @@ -267,7 +272,11 @@ export default function AdminDashboard({ onLogout, children }: Props) { const missingCredentials = status?.setup?.credentials === 'missing'; return ( -