From ea9aeef9d8790db51c59a99927cd47ea9423be88 Mon Sep 17 00:00:00 2001 From: syuilo Date: Thu, 18 Nov 2021 18:45:58 +0900 Subject: refactor(client): refactor dialog functions to improve type inference --- packages/client/src/scripts/aiscript/api.ts | 5 ++-- packages/client/src/scripts/get-user-menu.ts | 31 ++++++++-------------- packages/client/src/scripts/hpml/evaluator.ts | 3 +-- packages/client/src/scripts/lookup-user.ts | 5 ++-- packages/client/src/scripts/search.ts | 5 ++-- packages/client/src/scripts/select-file.ts | 11 ++++---- .../client/src/scripts/show-suspended-dialog.ts | 2 +- 7 files changed, 24 insertions(+), 38 deletions(-) (limited to 'packages/client/src/scripts') diff --git a/packages/client/src/scripts/aiscript/api.ts b/packages/client/src/scripts/aiscript/api.ts index 20c15d809e..01b8fd05fe 100644 --- a/packages/client/src/scripts/aiscript/api.ts +++ b/packages/client/src/scripts/aiscript/api.ts @@ -9,16 +9,15 @@ export function createAiScriptEnv(opts) { USER_NAME: $i ? values.STR($i.name) : values.NULL, USER_USERNAME: $i ? values.STR($i.username) : values.NULL, 'Mk:dialog': values.FN_NATIVE(async ([title, text, type]) => { - await os.dialog({ + await os.alert({ type: type ? type.value : 'info', title: title.value, text: text.value, }); }), 'Mk:confirm': values.FN_NATIVE(async ([title, text, type]) => { - const confirm = await os.dialog({ + const confirm = await os.confirm({ type: type ? type.value : 'question', - showCancelButton: true, title: title.value, text: text.value, }); diff --git a/packages/client/src/scripts/get-user-menu.ts b/packages/client/src/scripts/get-user-menu.ts index 8d767afa25..0c04547101 100644 --- a/packages/client/src/scripts/get-user-menu.ts +++ b/packages/client/src/scripts/get-user-menu.ts @@ -14,21 +14,17 @@ export function getUserMenu(user) { const t = i18n.locale.selectList; // なぜか後で参照すると null になるので最初にメモリに確保しておく const lists = await os.api('users/lists/list'); if (lists.length === 0) { - os.dialog({ + os.alert({ type: 'error', text: i18n.locale.youHaveNoLists }); return; } - const { canceled, result: listId } = await os.dialog({ - type: null, + const { canceled, result: listId } = await os.select({ title: t, - select: { - items: lists.map(list => ({ - value: list.id, text: list.name - })) - }, - showCancelButton: true + items: lists.map(list => ({ + value: list.id, text: list.name + })) }); if (canceled) return; os.apiWithDialog('users/lists/push', { @@ -40,21 +36,17 @@ export function getUserMenu(user) { async function inviteGroup() { const groups = await os.api('users/groups/owned'); if (groups.length === 0) { - os.dialog({ + os.alert({ type: 'error', text: i18n.locale.youHaveNoGroups }); return; } - const { canceled, result: groupId } = await os.dialog({ - type: null, + const { canceled, result: groupId } = await os.select({ title: i18n.locale.group, - select: { - items: groups.map(group => ({ - value: group.id, text: group.name - })) - }, - showCancelButton: true + items: groups.map(group => ({ + value: group.id, text: group.name + })) }); if (canceled) return; os.apiWithDialog('users/groups/invite', { @@ -108,9 +100,8 @@ export function getUserMenu(user) { } async function getConfirmed(text: string): Promise { - const confirm = await os.dialog({ + const confirm = await os.confirm({ type: 'warning', - showCancelButton: true, title: 'confirm', text, }); diff --git a/packages/client/src/scripts/hpml/evaluator.ts b/packages/client/src/scripts/hpml/evaluator.ts index 20261d333d..6329c0860e 100644 --- a/packages/client/src/scripts/hpml/evaluator.ts +++ b/packages/client/src/scripts/hpml/evaluator.ts @@ -39,9 +39,8 @@ export class Hpml { }), ...initAiLib(this)}, { in: (q) => { return new Promise(ok => { - os.dialog({ + os.inputText({ title: q, - input: {} }).then(({ canceled, result: a }) => { ok(a); }); diff --git a/packages/client/src/scripts/lookup-user.ts b/packages/client/src/scripts/lookup-user.ts index 174fa9f879..64874f86f6 100644 --- a/packages/client/src/scripts/lookup-user.ts +++ b/packages/client/src/scripts/lookup-user.ts @@ -3,9 +3,8 @@ import { i18n } from '@/i18n'; import * as os from '@/os'; export async function lookupUser() { - const { canceled, result } = await os.dialog({ + const { canceled, result } = await os.inputText({ title: i18n.locale.usernameOrUserId, - input: true }); if (canceled) return; @@ -18,7 +17,7 @@ export async function lookupUser() { let _notFound = false; const notFound = () => { if (_notFound) { - os.dialog({ + os.alert({ type: 'error', text: i18n.locale.noSuchUser }); diff --git a/packages/client/src/scripts/search.ts b/packages/client/src/scripts/search.ts index b28cccfab7..a070b1121c 100644 --- a/packages/client/src/scripts/search.ts +++ b/packages/client/src/scripts/search.ts @@ -3,9 +3,8 @@ import { i18n } from '@/i18n'; import { router } from '@/router'; export async function search() { - const { canceled, result: query } = await os.dialog({ + const { canceled, result: query } = await os.inputText({ title: i18n.locale.search, - input: true }); if (canceled || query == null || query === '') return; @@ -35,7 +34,7 @@ export async function search() { // TODO //v.$root.$emit('warp', date); - os.dialog({ + os.alert({ icon: 'fas fa-history', iconOnly: true, autoClose: true }); diff --git a/packages/client/src/scripts/select-file.ts b/packages/client/src/scripts/select-file.ts index 5fbc545b26..0c6bd7ccde 100644 --- a/packages/client/src/scripts/select-file.ts +++ b/packages/client/src/scripts/select-file.ts @@ -14,7 +14,7 @@ export function selectFile(src: any, label: string | null, multiple = false) { Promise.all(promises).then(driveFiles => { res(multiple ? driveFiles : driveFiles[0]); }).catch(e => { - os.dialog({ + os.alert({ type: 'error', text: e }); @@ -38,11 +38,10 @@ export function selectFile(src: any, label: string | null, multiple = false) { }; const chooseFileFromUrl = () => { - os.dialog({ + os.inputText({ title: i18n.locale.uploadFromUrl, - input: { - placeholder: i18n.locale.uploadFromUrlDescription - } + type: 'url', + placeholder: i18n.locale.uploadFromUrlDescription }).then(({ canceled, result: url }) => { if (canceled) return; @@ -62,7 +61,7 @@ export function selectFile(src: any, label: string | null, multiple = false) { marker }); - os.dialog({ + os.alert({ title: i18n.locale.uploadFromUrlRequested, text: i18n.locale.uploadFromUrlMayTakeTime }); diff --git a/packages/client/src/scripts/show-suspended-dialog.ts b/packages/client/src/scripts/show-suspended-dialog.ts index 3bc4800030..dcbb66933c 100644 --- a/packages/client/src/scripts/show-suspended-dialog.ts +++ b/packages/client/src/scripts/show-suspended-dialog.ts @@ -2,7 +2,7 @@ import * as os from '@/os'; import { i18n } from '@/i18n'; export function showSuspendedDialog() { - return os.dialog({ + return os.alert({ type: 'error', title: i18n.locale.yourAccountSuspendedTitle, text: i18n.locale.yourAccountSuspendedDescription -- cgit v1.2.3-freya