summaryrefslogtreecommitdiff
path: root/src/apps/index.ts
diff options
context:
space:
mode:
authordarkuss <darkussdelta@gmail.com>2026-08-22 01:58:37 +0200
committerdarkuss <darkussdelta@gmail.com>2026-08-22 01:58:37 +0200
commit8f32fd58cafe677c07d9ed9fff84f6e255156d37 (patch)
treea5de06ffb2c0a8b878c8a563ec8cee692efc98ac /src/apps/index.ts
parent5ac62cc1a4d9a5f50ea26d5bc1afb0fbf95da23c (diff)
holy shit i'm finally done
Diffstat (limited to 'src/apps/index.ts')
-rw-r--r--src/apps/index.ts34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/apps/index.ts b/src/apps/index.ts
new file mode 100644
index 0000000..ab9453e
--- /dev/null
+++ b/src/apps/index.ts
@@ -0,0 +1,34 @@
+import { Music } from "./music";
+import { Edit } from "./edit_rich";
+
+import { JSX } from "preact";
+import { Source, SourceTypes } from "$/apps/source";
+import { Signal } from "@preact/signals";
+import { Browser } from "./browser";
+import { Image } from "./image";
+import { Video } from "./video";
+import { Audio } from "./audio";
+
+type AppProps = {
+ source: Signal<Source>,
+ title: Signal<string | undefined>,
+ contentReady: Signal<boolean>,
+ sizingFinished: Signal<boolean>
+}
+
+// *sigh* i'd like to make props *required*, but ts doesn't let me
+// https://stackoverflow.com/questions/75481900/can-i-make-an-argument-required-in-a-typescript-function-type
+export type App = (props: AppProps) => JSX.Element;
+
+type AppRegistry = {
+ [SourceType in SourceTypes]: App
+}
+
+export const APP_REGISTRY: AppRegistry = Object.create({
+ listen: Music,
+ text: Edit,
+ link: Browser,
+ image: Image,
+ video: Video,
+ audio: Audio
+});