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(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(""); +const password = ref(""); +const retypedPassword = ref(""); +const invitationCode = ref(""); 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); +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); +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([]); +const recentUsers = ref([]); +const selected = ref(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')" >
@@ -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(); }); }