A music player that connects to your cloud/distributed storage.
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}