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:
@@ -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>
|
||||
|
||||
|
||||
18
src/ModManUi/src/native/DialogBinds.ts
Normal file
18
src/ModManUi/src/native/DialogBinds.ts
Normal 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;
|
||||
}
|
||||
@@ -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;
|
||||
Reference in New Issue
Block a user