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.

at v4 62 lines 1.4 kB view raw
1import { defineElement, DiffuseElement, query } from "~/common/element.js"; 2 3/** 4 * @import {ProxiedActions} from "~/common/worker.d.ts" 5 * @import {Actions} from "~/components/artwork/types.d.ts" 6 */ 7 8//////////////////////////////////////////// 9// ELEMENT 10//////////////////////////////////////////// 11 12class ArtworkOrchestrator extends DiffuseElement { 13 static NAME = "diffuse/orchestrator/artwork"; 14 static WORKER_URL = "components/orchestrator/artwork/worker.js"; 15 16 constructor() { 17 super(); 18 19 /** @type {ProxiedActions<Actions>} */ 20 const p = this.workerProxy(); 21 22 this.get = p.get; 23 } 24 25 // LIFECYCLE 26 27 /** @override */ 28 async connectedCallback() { 29 super.connectedCallback(); 30 31 /** @type {import("~/components/configurator/artwork/element.js").CLASS} */ 32 this.artworkConfigurator = query(this, "artwork-selector"); 33 34 await customElements.whenDefined(this.artworkConfigurator.localName); 35 } 36 37 // WORKERS 38 39 /** 40 * @override 41 */ 42 dependencies() { 43 if (!this.artworkConfigurator) { 44 throw new Error("Artwork configurator element not defined yet"); 45 } 46 47 return { 48 artwork: this.artworkConfigurator, 49 }; 50 } 51} 52 53export default ArtworkOrchestrator; 54 55//////////////////////////////////////////// 56// REGISTER 57//////////////////////////////////////////// 58 59export const CLASS = ArtworkOrchestrator; 60export const NAME = "do-artwork"; 61 62defineElement(NAME, ArtworkOrchestrator);