diff options
| -rw-r--r-- | packages/meshbay-hub/src/meshbay_hub/static/group-page.js | 1 | ||||
| -rw-r--r-- | packages/meshbay-hub/src/meshbay_hub/static/group-settings.js | 13 |
2 files changed, 13 insertions, 1 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 727bfc2..ab9dcc5 100644 --- a/packages/meshbay-hub/src/meshbay_hub/static/group-page.js +++ b/packages/meshbay-hub/src/meshbay_hub/static/group-page.js @@ -598,6 +598,7 @@ function GroupPage({ groupId, group, token, username, userId, userPrefs, onVideoRoot=${(path) => setVideoRoot(path)} audioRoot=${audioRoot} onAudioRoot=${(path) => setAudioRoot(path)} + onRefreshIndex=${refreshIndex} onLeft=${onLeft} onPaired=${() => setOperatorPaired(true)} /> `} diff --git a/packages/meshbay-hub/src/meshbay_hub/static/group-settings.js b/packages/meshbay-hub/src/meshbay_hub/static/group-settings.js index 62665a8..858d672 100644 --- a/packages/meshbay-hub/src/meshbay_hub/static/group-settings.js +++ b/packages/meshbay-hub/src/meshbay_hub/static/group-settings.js @@ -119,7 +119,7 @@ function GroupSettingsPanel({ groupId, group, token, transportRef, gekRef, tmdbConfig, onTmdbConfig, onTmdbEnabled, musicbrainzConfig, onMusicbrainzConfig, onMusicbrainzEnabled, entries, nodeDirs, videoRoot, onVideoRoot, - audioRoot, onAudioRoot, + audioRoot, onAudioRoot, onRefreshIndex, onPaired, onLeft }) { const [members, setMembers] = useState([]); const [adminId, setAdminId] = useState(''); @@ -982,6 +982,12 @@ function GroupSettingsPanel({ groupId, group, token, transportRef, gekRef, await platform.node.call('POST', '/api/reload'); setNodeMsg(t('node.root_removed')); await loadNodeInfo(); + // Folders (unlike files) only ever arrive via a full + // index_sync, never index_delta (daemon.py's ongoing + // push has no `dirs` field) — without this, the + // Videos/Music root pickers kept offering a folder + // that no longer existed until the page was reloaded. + if (onRefreshIndex) await onRefreshIndex(); } catch (err) { setNodeMsg(platform.bridgeMessage(err)); } finally { setNodeBusy(false); } }}> @@ -1007,6 +1013,11 @@ function GroupSettingsPanel({ groupId, group, token, transportRef, gekRef, await platform.watchIndexProgress(groupId, setNodeIndexProgress); setNodeMsg(t('node.root_added')); await loadNodeInfo(); + // See the matching comment on root removal above — a new + // folder needs a full index_sync to show up anywhere that + // reads `nodeDirs` (the Videos/Music root pickers), not + // just in this section's own node-roots list. + if (onRefreshIndex) await onRefreshIndex(); } catch (err) { setNodeMsg(platform.bridgeMessage(err)); } finally { setNodeBusy(false); } }}> |