diff options
| author | Christophe Besson <cbesson@gmail.com> | 2026-10-10 12:35:15 +0200 |
|---|---|---|
| committer | Christophe Besson <cbesson@gmail.com> | 2026-10-10 12:35:15 +0200 |
| commit | 044c585f73cfd548e300859e89eaf5dcb40d3d3c (patch) | |
| tree | 89d90fa844c4a453c84a228f541b84040c9f782d /packages/meshbay-hub/src/meshbay_hub/static/app.js | |
| parent | 0ead6a321fbe3cf97e22f6fee348f68b09bd53a8 (diff) | |
| download | meshbay-044c585f73cfd548e300859e89eaf5dcb40d3d3c.tar.gz | |
feat(hub): photo backup moves to its own Android Sync page
A Phone section of the side menu leads to it, on the Android application
only; Settings no longer holds it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'packages/meshbay-hub/src/meshbay_hub/static/app.js')
| -rw-r--r-- | packages/meshbay-hub/src/meshbay_hub/static/app.js | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/packages/meshbay-hub/src/meshbay_hub/static/app.js b/packages/meshbay-hub/src/meshbay_hub/static/app.js index 41a608f..973729e 100644 --- a/packages/meshbay-hub/src/meshbay_hub/static/app.js +++ b/packages/meshbay-hub/src/meshbay_hub/static/app.js @@ -463,6 +463,13 @@ function Sidebar({ groups, presence, indexProgressPct, route, menuOpen, role, sh href="#/create-group"><${Icon} name="plus" /> ${t('sidebar.create_group')}</a> </div> `} + ${platform.photoSync.available && html` + <div class="sidebar-section"> + <div class="sidebar-heading">${t('sidebar.phone')}</div> + <a class="sidebar-item ${route === '/android-sync' ? 'active' : ''}" + href="#/android-sync"><${Icon} name="phone" /> ${t('androidsync.title')}</a> + </div> + `} <div class="sidebar-section"> <div class="sidebar-heading">${t('sidebar.my_groups')}</div> ${groups.length === 0 @@ -706,6 +713,13 @@ function SetupWelcome({ onDismiss }) { const SearchPage = lazy(() => import('./search-page.js'), 'SearchPage', html`<div class="page-content"><p class="page-message"><span class="spinner"></span></p></div>`); +// ── Lazy-loaded Android Sync page ──────────────────────────────────────────── +// +// The Android application's photo backup (docs/MESHBAY_DESIGN.md §9.12): no +// browser or desktop ever fetches it. +const AndroidSyncPage = lazy(() => import('./android-sync-page.js'), 'AndroidSyncPage', + html`<div class="page-content"><p class="page-message"><span class="spinner"></span></p></div>`); + // ── Lazy-loaded Create Group page ──────────────────────────────────────────── let _CreateGroupPage = null; @@ -1427,6 +1441,8 @@ function App() { allowPublicGroups=${allowPublicGroups} token=${user.token} onGroupsChanged=${reloadGroups} onMarkRead=${markRead} onPurge=${purgeNotifications} />`; + } else if (route === '/android-sync' && platform.photoSync.available) { + page = html`<${AndroidSyncPage} user=${user} groups=${groups} />`; } else if (route === '/settings') { page = html`<${SettingsPage} user=${user} theme=${theme} onThemeChange=${setTheme} groups=${groups} |