summaryrefslogtreecommitdiff
path: root/client-web/source/resource/file.ts
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2022-10-03 11:28:16 +0200
committermetamuffin <metamuffin@disroot.org>2022-10-03 11:28:16 +0200
commit4e99a3325318c902cd78ea9f760f46d79acde5c0 (patch)
treecc2bc54f4a0eb27db2b5d38dfbb785c1e9b84bd6 /client-web/source/resource/file.ts
parentfa44b02da29a0bd1b60026d4f6ffd6c9748a09da (diff)
downloadkeks-meet-4e99a3325318c902cd78ea9f760f46d79acde5c0.tar
keks-meet-4e99a3325318c902cd78ea9f760f46d79acde5c0.tar.bz2
keks-meet-4e99a3325318c902cd78ea9f760f46d79acde5c0.tar.zst
riesencommit (part 1)
Diffstat (limited to 'client-web/source/resource/file.ts')
-rw-r--r--client-web/source/resource/file.ts44
1 files changed, 36 insertions, 8 deletions
diff --git a/client-web/source/resource/file.ts b/client-web/source/resource/file.ts
index 690c765..b6629bc 100644
--- a/client-web/source/resource/file.ts
+++ b/client-web/source/resource/file.ts
@@ -1,11 +1,39 @@
-import { TrackHandle } from "../track_handle.ts";
-import { Resource } from "./mod.ts";
-
-export class FileResource extends Resource {
-
- on_track(_track: TrackHandle): HTMLElement {
- throw new Error("Method not implemented.");
- }
+import { ediv } from "../helper.ts";
+import { LocalResource, ResourceHandlerDecl } from "./mod.ts";
+export const resource_file: ResourceHandlerDecl = {
+ kind: "file",
+ new_remote(info, _user, _enable) {
+ return {
+ info,
+ el: ediv(),
+ on_statechange(_s) { },
+ on_enable(_track, _disable) {
+ return {
+ on_disable() {
+ }
+ }
+ }
+ }
+ }
}
+
+export function create_file_res(): Promise<LocalResource> {
+ const picker = document.createElement("input")
+ picker.type = "file"
+ picker.click()
+ return new Promise((resolve, reject) => {
+ picker.addEventListener("change", () => {
+ if (!picker.files) return reject()
+ const f = picker.files.item(0)
+ if (!f) return reject()
+ resolve({
+ info: { kind: "file", id: Math.random().toString(), label: f.name, size: f.size },
+ destroy() { /* TODO */ },
+ el: ediv(),
+ on_request(_user, _create_channel) { return _create_channel("TODO") }
+ })
+ })
+ })
+} \ No newline at end of file