2
0
mirror of https://github.com/Laupetin/OpenAssetTools.git synced 2025-11-17 18:52:06 +00:00

feat: add dialog handler for ModMan

This commit is contained in:
Jan Laupetin
2025-10-09 17:35:55 +01:00
parent f838ed1291
commit 5bbeaed3a3
22 changed files with 771 additions and 80 deletions

View File

@@ -4,6 +4,7 @@ import { webviewBinds, webviewAddEventListener, webviewRemoveEventListener } fro
const greetMsg = ref("");
const lastPersonGreeted = ref("");
const lastPath = ref("");
const name = ref("");
async function greet() {
@@ -14,6 +15,11 @@ function onPersonGreeted(person: string) {
lastPersonGreeted.value = person;
}
async function onOpenFastfileClick() {
lastPath.value =
(await webviewBinds.openFileDialog({ filters: [{ name: "Fastfiles", filter: "*.ff" }] })) ?? "";
}
webviewAddEventListener("greeting", onPersonGreeted);
onUnmounted(() => webviewRemoveEventListener("greeting", onPersonGreeted));
@@ -30,6 +36,10 @@ onUnmounted(() => webviewRemoveEventListener("greeting", onPersonGreeted));
</form>
<p>{{ greetMsg }}</p>
<p>The last person greeted is: {{ lastPersonGreeted }}</p>
<p>
<button @click="onOpenFastfileClick">Open fastfile</button>
<span>The last path: {{ lastPath }}</span>
</p>
</main>
</template>

View File

@@ -0,0 +1,18 @@
export interface FileDialogFilterDto {
name: string;
filter: string;
}
export interface OpenFileDialogDto {
filters?: FileDialogFilterDto[];
}
export interface SaveFileDialogDto {
filters?: FileDialogFilterDto[];
}
export interface DialogBinds {
openFileDialog(options?: OpenFileDialogDto): string | null;
saveFileDialog(options?: SaveFileDialogDto): string | null;
folderSelectDialog(): string | null;
}

View File

@@ -1,6 +1,9 @@
export interface NativeMethods {
greet: (name: string) => Promise<string>;
}
import type { DialogBinds } from "./DialogBinds";
export type NativeMethods = {
greet(name: string): Promise<string>;
} & DialogBinds;
interface NativeEventMap {
greeting: string;