diff options
Diffstat (limited to 'packages/meshbay-hub/src/meshbay_hub/static/create-group-page.js')
| -rw-r--r-- | packages/meshbay-hub/src/meshbay_hub/static/create-group-page.js | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/packages/meshbay-hub/src/meshbay_hub/static/create-group-page.js b/packages/meshbay-hub/src/meshbay_hub/static/create-group-page.js index c3b542f..f81247d 100644 --- a/packages/meshbay-hub/src/meshbay_hub/static/create-group-page.js +++ b/packages/meshbay-hub/src/meshbay_hub/static/create-group-page.js @@ -8,7 +8,32 @@ import { Icon } from './icon.js'; import { SharedDirectoriesTable } from './group-settings.js'; export function CreateGroupPage(props) { - if (platform.node.available) return html`<${CreateGroupWizard} ...${props} />`; + // The wizard assumes a LOCAL node it can link right there (waiting_for_ + // account / waiting_for_node_key, below) -- exactly what a "Light" desktop + // build (electron-builder.light.yml, no bundled node-runtime) does not + // have. Without this check that polling loop hangs forever, the same + // "Detecting local node…" failure mode already found and fixed once for + // Full (see the Windows-port history around linkNodeKeyAndAwaitRunning). + // `bundled` starts null (unknown) and resolves once via IPC; a plain + // browser has no bridge at all and skips straight to false, the same + // outcome `platform.node.available` already gave it. Falling back to + // CreateGroupFormSimple is not a lesser feature for Light -- it is the + // exact form a browser-only member already uses to create a group with no + // node of their own; hosting it can be linked from a device that has one. + const [bundled, setBundled] = useState(null); + useEffect(() => { + if (!platform.node.available) { setBundled(false); return undefined; } + let cancelled = false; + platform.node.bundled().then((b) => { if (!cancelled) setBundled(b); }); + return () => { cancelled = true; }; + }, []); + + if (platform.node.available && bundled === null) { + return html`<div class="page-message"> + <span class="spinner"></span>${' '}${t('node.service_checking')} + </div>`; + } + if (platform.node.available && bundled) return html`<${CreateGroupWizard} ...${props} />`; return html`<${CreateGroupFormSimple} ...${props} />`; } |