A music player that connects to your cloud/distributed storage.
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

chore: prelude loading for facet pages

+77 -53
+1 -1
src/_data/facets.json
··· 1 1 [ 2 2 { 3 - "url": "facets/playback/auto-queue/feature/index.html", 3 + "url": "facets/playback/auto-queue/prelude/index.html", 4 4 "title": "Automatic Queue", 5 5 "kind": "prelude", 6 6 "category": "Playback",
+8 -8
src/components/orchestrator/output/element.js
··· 80 80 // PROXY ADDITIONAL OUTPUT CONFIGURATOR ACTIONS 81 81 82 82 get activated() { 83 - return this.outputConfigurator.activated; 83 + return this.outputConfigurator.activated.bind(this.outputConfigurator); 84 84 } 85 85 86 86 get deselect() { 87 - return this.outputConfigurator.deselect; 87 + return this.outputConfigurator.deselect.bind(this.outputConfigurator); 88 88 } 89 89 90 90 get hasDefault() { 91 - return this.outputConfigurator.hasDefault; 91 + return this.outputConfigurator.hasDefault.bind(this.outputConfigurator); 92 92 } 93 93 94 94 get hasSelected() { 95 - return this.outputConfigurator.hasSelected; 95 + return this.outputConfigurator.hasSelected.bind(this.outputConfigurator); 96 96 } 97 97 98 98 get loadSelected() { 99 - return this.outputConfigurator.loadSelected; 99 + return this.outputConfigurator.loadSelected.bind(this.outputConfigurator); 100 100 } 101 101 102 102 get options() { 103 - return this.outputConfigurator.options; 103 + return this.outputConfigurator.options.bind(this.outputConfigurator); 104 104 } 105 105 106 106 get select() { 107 - return this.outputConfigurator.select; 107 + return this.outputConfigurator.select.bind(this.outputConfigurator); 108 108 } 109 109 110 110 get selected() { 111 - return this.outputConfigurator.selected; 111 + return this.outputConfigurator.selected.bind(this.outputConfigurator); 112 112 } 113 113 114 114 // RENDER
-3
src/components/transformer/output/bytes/dasl-sync/element.js
··· 131 131 132 132 return computed(() => { 133 133 if (!isReady.get()) isReady.value = true; 134 - if (kind === "facets") { 135 - console.log("🫠", container.get()); 136 - } 137 134 return container.get(); 138 135 }); 139 136 };
+3 -3
src/facets/common/build.js
··· 8 8 9 9 import * as CID from "~/common/cid.js"; 10 10 import * as Output from "~/common/output.js"; 11 - import foundation from "~/common/facets/foundation.js"; 12 11 import { facetFromURI } from "~/common/facets/utils.js"; 13 12 import { loadURI } from "~/common/loader.js"; 14 13 import { signal } from "~/common/signal.js"; 15 14 16 15 import { saveFacet } from "./crud.js"; 16 + import { output } from "./output.js"; 17 17 18 18 /** 19 19 * @import {Facet} from "~/definitions/types.d.ts" ··· 21 21 22 22 const $editor = signal(/** @type {EditorView | null} */ (null)); 23 23 const $editingFacet = signal(/** @type {Facet | null} */ (null)); 24 - const output = await foundation.orchestrator.output(); 25 24 26 25 //////////////////////////////////////////// 27 26 // EDITOR ··· 237 236 const idParam = new URLSearchParams(location.search).get("id"); 238 237 239 238 if (idParam) { 240 - const col = await Output.data(output.facets); 239 + const out = await output(); 240 + const col = await Output.data(out.facets); 241 241 const facet = col.find((f) => f.id === idParam); 242 242 if (facet) await editFacet(facet); 243 243 }
+7 -7
src/facets/common/crud.js
··· 1 1 import * as Output from "~/common/output.js"; 2 - import foundation from "~/common/facets/foundation.js"; 2 + import { output } from "./output.js"; 3 3 4 4 /** 5 5 * @import {Facet} from "~/definitions/types.d.ts" ··· 13 13 const c = confirm("Are you sure you want to delete this facet?"); 14 14 if (!c) return; 15 15 16 - const output = await foundation.orchestrator.output(); 17 - const col = await Output.data(output.facets); 16 + const out = await output(); 17 + const col = await Output.data(out.facets); 18 18 19 - output.facets.save(col.filter((c) => !(c.id === id))); 19 + out.facets.save(col.filter((c) => !(c.id === id))); 20 20 }; 21 21 } 22 22 ··· 24 24 * @param {Facet} facet 25 25 */ 26 26 export async function saveFacet(facet) { 27 - const output = await foundation.orchestrator.output(); 28 - const col = await Output.data(output.facets); 27 + const out = await output(); 28 + const col = await Output.data(out.facets); 29 29 const colWithoutId = col.filter((c) => c.id !== facet.id); 30 - await output.facets.save([...colWithoutId, { 30 + await out.facets.save([...colWithoutId, { 31 31 ...facet, 32 32 updatedAt: new Date().toISOString(), 33 33 }]);
+4 -3
src/facets/common/grid.js
··· 1 1 import * as Output from "~/common/output.js"; 2 - import foundation from "~/common/facets/foundation.js"; 3 2 import { facetFromURI } from "~/common/facets/utils.js"; 4 3 import { effect } from "~/common/signal.js"; 4 + 5 + import { output } from "./output.js"; 5 6 6 7 //////////////////////////////////////////// 7 8 // TOGGLE BUTTONS ··· 31 32 32 33 if (!uri || !name) return; 33 34 34 - const out = await foundation.orchestrator.output(); 35 + const out = await output(); 35 36 const collection = await Output.data(out.facets); 36 37 const isActive = collection.some((f) => 37 38 f.uri === uri && f.html === undefined ··· 60 61 61 62 export async function monitorToggleButtonStates() { 62 63 if (stopMonitor) stopMonitor(); 63 - const out = await foundation.orchestrator.output(); 64 + const out = await output(); 64 65 65 66 stopMonitor = effect(() => { 66 67 const gridItems = /** @type {NodeListOf<HTMLLIElement>} */ (
+51
src/facets/common/output.js
··· 1 + import { effect } from "~/common/signal.js"; 2 + import { insertPreludes } from "~/common/facets/prelude.js"; 3 + import foundation from "~/common/facets/foundation.js"; 4 + 5 + const elements = document.createElement("div"); 6 + elements.id = "elements-container"; 7 + document.body.appendChild(elements); 8 + 9 + let preludeInserted = false; 10 + let preludeLoaded = false; 11 + 12 + effect(() => { 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 + 27 + export 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 + }
+3 -3
src/facets/common/you.js
··· 4 4 import { unsafeHTML } from "lit-html/directives/unsafe-html.js"; 5 5 6 6 import * as FacetCategory from "~/common/facets/category.js"; 7 - import foundation from "~/common/facets/foundation.js"; 8 7 import { effect } from "~/common/signal.js"; 9 8 import { facetFromURI } from "~/common/facets/utils.js"; 10 9 import { nothing } from "~/common/element.js"; 11 10 12 11 import { deleteFacet, saveFacet } from "./crud.js"; 12 + import { output } from "./output.js"; 13 13 14 14 /** 15 15 * @import {OutputElement} from "~/components/output/types.d.ts"; ··· 189 189 listEl.removeAttribute("data-rendered"); 190 190 } 191 191 192 - const output = await foundation.orchestrator.output(); 192 + const out = await output(); 193 193 194 194 stopMonitor = effect(() => { 195 - _renderList(output, listEl); 195 + _renderList(out, listEl); 196 196 }); 197 197 } 198 198
src/facets/playback/auto-queue/feature/index.html src/facets/playback/auto-queue/prelude/index.html
src/facets/playback/auto-queue/feature/index.inline.js src/facets/playback/auto-queue/prelude/index.inline.js
-13
src/testing/output.js
··· 1 - import Output from "~/components/configurator/output/element.js"; 2 - import { effect } from "~/common/signal.js"; 3 - 4 - const output = new Output(); 5 - 6 - document.body.append(output); 7 - 8 - effect(() => { 9 - const col = output.tracks.collection(); 10 - if (col.state === "loaded") { 11 - console.log(col.data); 12 - } 13 - });
-12
src/testing/output.vto
··· 1 - --- 2 - layout: layouts/diffuse.vto 3 - 4 - base: "../../" 5 - 6 - styles: 7 - - styles/base.css 8 - - styles/diffuse/page.css 9 - 10 - scripts: 11 - - testing/output.js 12 - ---