A music player that connects to your cloud/distributed storage.
at v4 51 lines 1.1 kB view raw
1import { effect } from "~/common/signal.js"; 2import { insertPreludes } from "~/common/facets/prelude.js"; 3import foundation from "~/common/foundation.js"; 4 5const elements = document.createElement("div"); 6elements.id = "elements-container"; 7document.body.appendChild(elements); 8 9let preludeInserted = false; 10let preludeLoaded = false; 11 12effect(() => { 13 const out = foundation.signals.orchestrator.output(); 14 if (!out) return; 15 16 const col = out.facets.collection(); 17 if (col.state !== "loaded") return; 18 19 if (preludeInserted === false) { 20 preludeInserted = true; 21 insertPreludes(col.data, elements).then(() => { 22 preludeLoaded = true; 23 }); 24 } 25}); 26 27export async function output() { 28 const out = await foundation.orchestrator.output(); 29 30 if (out.hasSelected() && !out.selected() && !preludeLoaded) { 31 await new Promise((resolve) => { 32 let resolved = false; 33 34 const stop = effect(() => { 35 if (resolved) { 36 stop(); 37 return; 38 } 39 40 const s = out.selected(); 41 42 if (s) { 43 resolved = true; 44 resolve(null); 45 } 46 }); 47 }); 48 } 49 50 return out; 51}