From 34f48e7a0211159bfd610a27ac48ea02ad348c0c Mon Sep 17 00:00:00 2001 From: Ferdinand Thiessen Date: Wed, 10 Dec 2025 15:55:28 +0100 Subject: [PATCH] fixup! refactor(federatedfilesharing): migrate to Typescript and Vue 3 --- .../src/components/RemoteShareDialog.vue | 13 ++++------ .../src/services/dialogService.spec.ts | 4 +-- .../src/services/dialogService.ts | 25 ++++++++++--------- tsconfig.json | 2 +- vitest.config.ts | 8 +++++- 5 files changed, 28 insertions(+), 24 deletions(-) diff --git a/apps/federatedfilesharing/src/components/RemoteShareDialog.vue b/apps/federatedfilesharing/src/components/RemoteShareDialog.vue index 5e9a2f8305b..0fce8db4609 100644 --- a/apps/federatedfilesharing/src/components/RemoteShareDialog.vue +++ b/apps/federatedfilesharing/src/components/RemoteShareDialog.vue @@ -20,7 +20,7 @@ const props = defineProps<{ }>() const emit = defineEmits<{ - (e: 'close', state: boolean, password?: string): void + close: [state: boolean, password?: string] }>() const password = ref('') @@ -56,16 +56,13 @@ const buttons = computed(() => [ - diff --git a/apps/federatedfilesharing/src/services/dialogService.spec.ts b/apps/federatedfilesharing/src/services/dialogService.spec.ts index 368dcd929f3..58dd44e37ca 100644 --- a/apps/federatedfilesharing/src/services/dialogService.spec.ts +++ b/apps/federatedfilesharing/src/services/dialogService.spec.ts @@ -47,7 +47,7 @@ describe('federatedfilesharing: dialog service', () => { } } - expect(await promise).toBe('') + await expect(promise).resolves.toBe('') }) it('rejects if cancelled', async () => { @@ -60,6 +60,6 @@ describe('federatedfilesharing: dialog service', () => { } } - expect(async () => await promise).rejects.toThrow() + await expect(promise).rejects.toThrow() }) }) diff --git a/apps/federatedfilesharing/src/services/dialogService.ts b/apps/federatedfilesharing/src/services/dialogService.ts index d02b2aaf310..807011583b6 100644 --- a/apps/federatedfilesharing/src/services/dialogService.ts +++ b/apps/federatedfilesharing/src/services/dialogService.ts @@ -14,23 +14,24 @@ import RemoteShareDialog from '../components/RemoteShareDialog.vue' * @param remote The remote address * @param passwordRequired True if the share is password protected */ -export function showRemoteShareDialog( +export async function showRemoteShareDialog( name: string, owner: string, remote: string, passwordRequired = false, ): Promise { - const { promise, reject, resolve } = Promise.withResolvers() - - spawnDialog(RemoteShareDialog, { name, owner, remote, passwordRequired }, (status, password) => { - if (passwordRequired && status) { - resolve(password as string) - } else if (status) { - resolve(undefined) - } else { - reject() - } + const [status, password] = await spawnDialog(RemoteShareDialog, { + name, + owner, + remote, + passwordRequired, }) - return promise + if (passwordRequired && status) { + return password as string + } else if (status) { + return + } else { + throw new Error('Dialog was cancelled') + } } diff --git a/tsconfig.json b/tsconfig.json index 86896bbbe36..4cda8f05a10 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -3,7 +3,7 @@ "include": ["./apps/**/*.ts", "./apps/**/*.vue", "./core/**/*.ts", "./core/**/*.vue", "./*.d.ts"], "exclude": ["./**/*.cy.ts"], "compilerOptions": { - "lib": ["DOM", "ESNext"], + "lib": ["DOM", "DOM.Iterable", "DOM.AsyncIterable", "ESNext"], "outDir": "./dist/", "target": "ESNext", "module": "ESNext", diff --git a/vitest.config.ts b/vitest.config.ts index 70fa4ea84ac..1ce29c6770d 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -3,5 +3,11 @@ * SPDX-License-Identifier: CC0-1.0 */ +import { defineConfig } from 'vitest/config' + // stub - for the moment see build/frontend/vitest.config.ts -export default {} +export default defineConfig({ + test: { + projects: ['build/frontend*'], + }, +})