diff options
author | metamuffin <metamuffin@disroot.org> | 2022-10-03 11:28:16 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2022-10-03 11:28:16 +0200 |
commit | 4e99a3325318c902cd78ea9f760f46d79acde5c0 (patch) | |
tree | cc2bc54f4a0eb27db2b5d38dfbb785c1e9b84bd6 /client-web/source/resource/file.ts | |
parent | fa44b02da29a0bd1b60026d4f6ffd6c9748a09da (diff) | |
download | keks-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.ts | 44 |
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 |