(feat): remove mtp loading screen
Some checks failed
/ build-web (push) Failing after 4m35s
/ build-desktop (linux) (push) Failing after 4m37s
/ build-mobile (push) Failing after 6m40s
/ release (push) Has been skipped

(fix): weird dedupe bugs
(qol): update todo
This commit is contained in:
Alois 2026-07-03 21:49:13 +02:00
commit 69149b73bd
6 changed files with 86 additions and 61 deletions

View file

@ -4,6 +4,7 @@
"version": "0.0.0",
"type": "module",
"exports": {
"./asyncQueue": "./src/asyncQueue.ts",
"./code": "./src/code.ts",
"./data": "./src/data.ts",
"./desktopMedia": "./src/desktopMedia.tsx",

View file

@ -0,0 +1,27 @@
export default function createAsyncQueue<T>() {
let resolve!: (value: T) => void;
const promise = new Promise<T>((r) => {
resolve = r;
});
return {
set: resolve,
get: () => promise,
};
}
// eslint-disable-next-line
type AnyFn = (...args: any[]) => any;
export function createQueuedFunc<F extends AnyFn>(
getFn: () => F | null | undefined,
) {
return (async (...args: Parameters<F>): Promise<Awaited<ReturnType<F>>> => {
while (!getFn()) {
await new Promise((r) => setTimeout(r, 50));
}
return await getFn()!(...args);
}) as F;
}