summaryrefslogtreecommitdiff
path: root/src/apps/audio.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'src/apps/audio.tsx')
-rw-r--r--src/apps/audio.tsx27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/apps/audio.tsx b/src/apps/audio.tsx
new file mode 100644
index 0000000..45d8716
--- /dev/null
+++ b/src/apps/audio.tsx
@@ -0,0 +1,27 @@
+import { Signal, useSignalEffect } from "@preact/signals"
+import { Address } from "$/apps/source";
+import { memo, Ref, useEffect } from "preact/compat";
+
+const filenameRegex = /.*\/(.*)$/;
+
+export const Audio = memo(function Audio({ source, title, contentReady }: Image.Props) {
+ useEffect(() => {
+ contentReady.value = true
+ }, [])
+
+ useSignalEffect(() => {
+ const filename = decodeURIComponent(source.value.link.pathname.match(filenameRegex)?.[1] ?? source.value.link.toString());
+ title.value = `${filename} - tunez player`;
+ })
+
+
+ return <audio controls src={source.value.link.toString()}></audio>
+})
+
+namespace Image {
+ export type Props = {
+ source: Signal<Address>,
+ title: Signal<string | undefined>,
+ contentReady: Signal<boolean>,
+ }
+}