From 8f32fd58cafe677c07d9ed9fff84f6e255156d37 Mon Sep 17 00:00:00 2001 From: darkuss Date: Sat, 22 Aug 2026 01:58:37 +0200 Subject: holy shit i'm finally done --- src/apps/index.ts | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 src/apps/index.ts (limited to 'src/apps/index.ts') 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, + title: Signal, + contentReady: Signal, + sizingFinished: Signal +} + +// *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 +}); -- cgit v1.2.3