From 2b88ef18a5e90c1a51e5de98b42759d96ece28d7 Mon Sep 17 00:00:00 2001 From: Lhcfl <Lhcfl@outlook.com> Date: Sat, 13 Apr 2024 15:37:23 +0800 Subject: [PATCH] fix type errors of components --- packages/client/src/components/MkNoteSub.vue | 2 +- packages/client/src/components/MkSignin.vue | 10 +++---- packages/client/src/components/MkSignup.vue | 27 ++++++++++--------- .../src/components/MkUserSelectDialog.vue | 14 +++++----- .../src/components/MkVisibilityPicker.vue | 10 +++---- 5 files changed, 32 insertions(+), 31 deletions(-) diff --git a/packages/client/src/components/MkNoteSub.vue b/packages/client/src/components/MkNoteSub.vue index ba91221b87..08c0bf6c38 100644 --- a/packages/client/src/components/MkNoteSub.vue +++ b/packages/client/src/components/MkNoteSub.vue @@ -414,7 +414,7 @@ function onContextmenu(ev: MouseEvent): void { os.pageWindow(notePage(appearNote.value)); }, }, - notePage(appearNote.value) != location.pathname + notePage(appearNote.value) !== location.pathname ? { icon: `${icon("ph-arrows-out-simple")}`, text: i18n.ts.showInPage, diff --git a/packages/client/src/components/MkSignin.vue b/packages/client/src/components/MkSignin.vue index f5c5f0ee4d..a49662d974 100644 --- a/packages/client/src/components/MkSignin.vue +++ b/packages/client/src/components/MkSignin.vue @@ -145,9 +145,10 @@ import * as os from "@/os"; import { signIn } from "@/account"; import { i18n } from "@/i18n"; import icon from "@/scripts/icon"; +import type { entities } from "firefish-js"; const signing = ref(false); -const user = ref(null); +const user = ref<entities.UserDetailed | null>(null); const username = ref(""); const password = ref(""); const token = ref(""); @@ -249,7 +250,7 @@ function queryKey() { function onSubmit() { signing.value = true; console.log("submit"); - if (window.PublicKeyCredential && user.value.securityKeys) { + if (window.PublicKeyCredential && user.value?.securityKeys) { os.api("signin", { username: username.value, password: password.value, @@ -263,7 +264,7 @@ function onSubmit() { return queryKey(); }) .catch(loginFailed); - } else if (!totpLogin.value && user.value && user.value.twoFactorEnabled) { + } else if (!totpLogin.value && user.value?.twoFactorEnabled) { totpLogin.value = true; signing.value = false; } else { @@ -272,8 +273,7 @@ function onSubmit() { password: password.value, "hcaptcha-response": hCaptchaResponse.value, "g-recaptcha-response": reCaptchaResponse.value, - token: - user.value && user.value.twoFactorEnabled ? token.value : undefined, + token: user.value?.twoFactorEnabled ? token.value : undefined, }) .then((res) => { emit("login", res); diff --git a/packages/client/src/components/MkSignup.vue b/packages/client/src/components/MkSignup.vue index 6de17b2d48..9870263b7a 100644 --- a/packages/client/src/components/MkSignup.vue +++ b/packages/client/src/components/MkSignup.vue @@ -305,12 +305,12 @@ const host = toUnicode(config.host); const hcaptcha = ref(); const recaptcha = ref(); -const username: string = ref(""); -const password: string = ref(""); -const retypedPassword: string = ref(""); -const invitationCode: string = ref(""); +const username = ref<string>(""); +const password = ref<string>(""); +const retypedPassword = ref<string>(""); +const invitationCode = ref<string>(""); const email = ref(""); -const usernameState: +const usernameState = ref< | null | "wait" | "ok" @@ -318,9 +318,10 @@ const usernameState: | "error" | "invalid-format" | "min-range" - | "max-range" = ref(null); -const invitationState: null | "entered" = ref(null); -const emailState: + | "max-range" + >(null); +const invitationState = ref<null | "entered">(null); +const emailState = ref< | null | "wait" | "ok" @@ -330,11 +331,11 @@ const emailState: | "unavailable:mx" | "unavailable:smtp" | "unavailable" - | "error" = ref(null); -const passwordStrength: "" | "low" | "medium" | "high" = ref(""); -const passwordRetypeState: null | "match" | "not-match" = ref(null); -const submitting: boolean = ref(false); -const ToSAgreement: boolean = ref(false); + | "error">(null); +const passwordStrength = ref<"" | "low" | "medium" | "high">(""); +const passwordRetypeState = ref<null | "match" | "not-match" >(null); +const submitting = ref(false); +const ToSAgreement = ref(false); const hCaptchaResponse = ref(null); const reCaptchaResponse = ref(null); diff --git a/packages/client/src/components/MkUserSelectDialog.vue b/packages/client/src/components/MkUserSelectDialog.vue index 3017e9bd6c..aa3a4c63c1 100644 --- a/packages/client/src/components/MkUserSelectDialog.vue +++ b/packages/client/src/components/MkUserSelectDialog.vue @@ -98,16 +98,16 @@ import { defaultStore } from "@/store"; import { i18n } from "@/i18n"; const emit = defineEmits<{ - (ev: "ok", selected: entities.UserDetailed): void; - (ev: "cancel"): void; - (ev: "closed"): void; + ok: [selected: entities.UserDetailed]; + cancel: []; + closed: []; }>(); const username = ref(""); const host = ref(""); -const users: entities.UserDetailed[] = ref([]); -const recentUsers: entities.UserDetailed[] = ref([]); -const selected: entities.UserDetailed | null = ref(null); +const users = ref<entities.UserDetailed[]>([]); +const recentUsers = ref<entities.UserDetailed[]>([]); +const selected = ref<entities.UserDetailed | null>(null); const dialogEl = ref(); const search = () => { @@ -132,7 +132,7 @@ const ok = () => { // 最近使ったユーザー更新 let recents = defaultStore.state.recentlyUsedUsers; - recents = recents.filter((x) => x !== selected.value.id); + recents = recents.filter((x) => x !== selected.value!.id); recents.unshift(selected.value.id); defaultStore.set("recentlyUsedUsers", recents.splice(0, 16)); }; diff --git a/packages/client/src/components/MkVisibilityPicker.vue b/packages/client/src/components/MkVisibilityPicker.vue index 0e6f8cb153..088da07eb0 100644 --- a/packages/client/src/components/MkVisibilityPicker.vue +++ b/packages/client/src/components/MkVisibilityPicker.vue @@ -3,7 +3,7 @@ ref="modal" :z-priority="'high'" :src="src" - @click="modal.close()" + @click="modal!.close()" @closed="emit('closed')" > <div class="_popup" :class="$style.root"> @@ -159,9 +159,9 @@ const props = withDefaults( ); const emit = defineEmits<{ - (ev: "changeVisibility", v: NoteVisibility): void; - (ev: "changeLocalOnly", v: boolean): void; - (ev: "closed"): void; + changeVisibility: [v: NoteVisibility]; + changeLocalOnly: [v: boolean]; + closed: []; }>(); const v = ref(props.currentVisibility); @@ -175,7 +175,7 @@ function choose(visibility: NoteVisibility): void { v.value = visibility; emit("changeVisibility", visibility); nextTick(() => { - modal.value.close(); + modal.value!.close(); }); } </script>