aboutsummaryrefslogtreecommitdiffstats
path: root/packages/meshbay-hub/src/meshbay_hub/static/group-page.js
diff options
context:
space:
mode:
Diffstat (limited to 'packages/meshbay-hub/src/meshbay_hub/static/group-page.js')
-rw-r--r--packages/meshbay-hub/src/meshbay_hub/static/group-page.js22
1 files changed, 7 insertions, 15 deletions
diff --git a/packages/meshbay-hub/src/meshbay_hub/static/group-page.js b/packages/meshbay-hub/src/meshbay_hub/static/group-page.js
index 205fce2..26519da 100644
--- a/packages/meshbay-hub/src/meshbay_hub/static/group-page.js
+++ b/packages/meshbay-hub/src/meshbay_hub/static/group-page.js
@@ -6,7 +6,7 @@ import { Icon } from './icon.js';
import { transfers } from './transfers.js';
import { downloadEntry } from './file-utils.js';
import {
- HUB, session, cacheGroupIndex, hubFetch, ensureFreshToken,
+ HUB, session, hubFetch, ensureFreshToken,
_loadBundleKey, _loadRecoveryKey, _storeBundleKey,
} from './hub-client.js';
import { APPS, visibleApps } from './apps.js';
@@ -154,10 +154,10 @@ function GroupPage({ groupId, group, token, username, userId, userPrefs,
// that). Null until the handshake ack arrives.
const [scanSettings, setScanSettings] = useState(null);
// TMDB on/off + whether a custom token is set, node-wide (not per-group) —
- // docs/mediacenter.md §5.5. Null until the handshake ack arrives.
+ // docs/MESHBAY_DESIGN.md §9.7. Null until the handshake ack arrives.
const [tmdbConfig, setTmdbConfig] = useState(null);
// Which folders each app works over. One shape for all of them — a list,
- // always, even where an app only wants one (docs/refactor-groups.md §1.6):
+ // always, even where an app only wants one (docs/MESHBAY_DESIGN.md §9.3):
// Videos and Music were single values, which meant a library spread over two
// drives could not be described at all. Empty means nothing configured yet,
// which every app reads as "show nothing", never "the whole group index".
@@ -171,7 +171,7 @@ function GroupPage({ groupId, group, token, username, userId, userPrefs,
// Whether members' cross-group Search lists this group. Not an app setting:
// it is about the group as a whole, and it hides nothing from this page.
const [searchListed, setSearchListed] = useState(true);
- // MusicBrainz on/off (per-group) — docs/musicbay.md §3.2.
+ // MusicBrainz on/off (per-group) — docs/MESHBAY_DESIGN.md §9.8.
const [musicbrainzConfig, setMusicbrainzConfig] = useState(null);
// `op` rides through to the shell — 'replace', 'next' or 'append'
// (docs/playlists.md §9.2). It has to be named here: a wrapper that takes
@@ -265,10 +265,6 @@ function GroupPage({ groupId, group, token, username, userId, userPrefs,
setEntries(fresh);
if (indexMsg.dirs) setNodeDirs(indexMsg.dirs);
if (indexMsg.roots) setNodeRoots(indexMsg.roots);
- cacheGroupIndex(groupId, group ? group.name : groupId,
- group ? group.owner_username : null, fresh,
- { video: appDirs('video'), music: appDirs('music'),
- photo: appDirs('photo') });
}, [groupId, group, appDirs]);
// additions/deletions/updates (daemon.py _broadcast_index_change, once
@@ -296,10 +292,6 @@ function GroupPage({ groupId, group, token, username, userId, userPrefs,
const keptIds = new Set(updated.map((e) => e.id));
const additions = (deltaMsg.additions || []).filter((e) => !keptIds.has(e.id));
const fresh = updated.concat(additions);
- cacheGroupIndex(groupId, group ? group.name : groupId,
- group ? group.owner_username : null, fresh,
- { video: appDirs('video'), music: appDirs('music'),
- photo: appDirs('photo') });
return fresh;
});
}, [groupId, group, appDirs]);
@@ -320,7 +312,7 @@ function GroupPage({ groupId, group, token, username, userId, userPrefs,
setDeviceReady(false);
gekRef.current = null;
if (!session.bundleKey) session.bundleKey = await _loadBundleKey();
- // Persisted (docs/auth-confirm.md §4.3) so a group joined in a later
+ // Persisted (docs/MESHBAY_DESIGN.md §3.6) so a group joined in a later
// session still leaves a recovery-wrapped identity copy on its node.
if (!session.recoveryKey) session.recoveryKey = await _loadRecoveryKey();
if (!session.bundleKey && window.MeshBayKeys) {
@@ -669,7 +661,7 @@ function GroupPage({ groupId, group, token, username, userId, userPrefs,
// the only unambiguous answer once a group can have several writable roots.
// Chat has no folder to browse, so it needs one picked for it, and this is
// the same rule the node applies when a client names no root at all. It
- // becomes an operator-chosen directory in phase 2 (refactor-groups.md §1.7).
+ // becomes an operator-chosen directory in phase 2 (docs/MESHBAY_DESIGN.md §9.6).
//
const writableRoots = useMemo(
() => nodeRoots.filter((r) => r.writable && r.available !== false),
@@ -735,7 +727,7 @@ function GroupPage({ groupId, group, token, username, userId, userPrefs,
// rather than written out. Naming them here would mean adding an app
// required editing this file, which is the one thing the plugin
// architecture is supposed to have removed — and the reference app
- // (docs/refactor-groups.md §4.1) is what made the difference visible.
+ // (docs/MESHBAY_DESIGN.md §9.4) is what made the difference visible.
const perAppDirectories = useMemo(() => {
const out = {};
for (const app of APPS) out[`${app.key}Directories`] = appDirs(app.key);