summaryrefslogtreecommitdiff
path: root/packages
diff options
context:
space:
mode:
authorsyuilo <4439005+syuilo@users.noreply.github.com>2025-09-06 12:41:27 +0900
committersyuilo <4439005+syuilo@users.noreply.github.com>2025-09-06 12:41:27 +0900
commit5b994b3e03345c4d701e1d70eab6c30afe669d0e (patch)
tree00810487caeeec1d1421cb368a8e1e821b767779 /packages
parentenhance(frontend): クリップ/リスト/アンテナ/ロール追加系メ... (diff)
downloadmisskey-5b994b3e03345c4d701e1d70eab6c30afe669d0e.tar.gz
misskey-5b994b3e03345c4d701e1d70eab6c30afe669d0e.tar.bz2
misskey-5b994b3e03345c4d701e1d70eab6c30afe669d0e.zip
fix(frontend): プロファイルを復元後アカウントの切り替えができない問題を修正
Fix #16508
Diffstat (limited to 'packages')
-rw-r--r--packages/frontend/src/accounts.ts21
-rw-r--r--packages/frontend/src/components/MkSignin.input.vue4
-rw-r--r--packages/frontend/src/components/MkSignin.vue3
-rw-r--r--packages/frontend/src/components/MkSigninDialog.vue4
4 files changed, 28 insertions, 4 deletions
diff --git a/packages/frontend/src/accounts.ts b/packages/frontend/src/accounts.ts
index afa2ecb911..60f7cd0b4b 100644
--- a/packages/frontend/src/accounts.ts
+++ b/packages/frontend/src/accounts.ts
@@ -251,13 +251,30 @@ export async function openAccountMenu(opts: {
}
},
};
- } else {
+ } else { // プロファイルを復元した場合などはアカウントのトークンや詳細情報はstoreにキャッシュされていない
return {
type: 'button' as const,
text: username,
active: opts.active != null ? opts.active === id : false,
action: async () => {
- // TODO
+ const { dispose } = popup(defineAsyncComponent(() => import('@/components/MkSigninDialog.vue')), {
+ initialUsername: username,
+ }, {
+ done: async (res: Misskey.entities.SigninFlowResponse & { finished: true }) => {
+ store.set('accountTokens', { ...store.s.accountTokens, [host + '/' + res.id]: res.i });
+
+ if (callback) {
+ fetchAccount(res.i, id).then(account => {
+ callback(account);
+ });
+ } else {
+ switchAccount(host, id);
+ }
+ },
+ closed: () => {
+ dispose();
+ },
+ });
},
};
}
diff --git a/packages/frontend/src/components/MkSignin.input.vue b/packages/frontend/src/components/MkSignin.input.vue
index aacd1eae2a..4c73eab3f5 100644
--- a/packages/frontend/src/components/MkSignin.input.vue
+++ b/packages/frontend/src/components/MkSignin.input.vue
@@ -69,9 +69,11 @@ import MkInfo from '@/components/MkInfo.vue';
const props = withDefaults(defineProps<{
message?: string,
openOnRemote?: OpenOnRemoteOptions,
+ initialUsername?: string;
}>(), {
message: '',
openOnRemote: undefined,
+ initialUsername: undefined,
});
const emit = defineEmits<{
@@ -81,7 +83,7 @@ const emit = defineEmits<{
const host = toUnicode(configHost);
-const username = ref('');
+const username = ref(props.initialUsername ?? '');
//#region Open on remote
function openRemote(options: OpenOnRemoteOptions, targetHost?: string): void {
diff --git a/packages/frontend/src/components/MkSignin.vue b/packages/frontend/src/components/MkSignin.vue
index b0fbe3c490..93a29b0b54 100644
--- a/packages/frontend/src/components/MkSignin.vue
+++ b/packages/frontend/src/components/MkSignin.vue
@@ -20,6 +20,7 @@ SPDX-License-Identifier: AGPL-3.0-only
key="input"
:message="message"
:openOnRemote="openOnRemote"
+ :initialUsername="initialUsername"
@usernameSubmitted="onUsernameSubmitted"
@passkeyClick="onPasskeyLogin"
@@ -89,10 +90,12 @@ const props = withDefaults(defineProps<{
autoSet?: boolean;
message?: string,
openOnRemote?: OpenOnRemoteOptions,
+ initialUsername?: string;
}>(), {
autoSet: false,
message: '',
openOnRemote: undefined,
+ initialUsername: undefined,
});
const page = ref<'input' | 'password' | 'totp' | 'passkey'>('input');
diff --git a/packages/frontend/src/components/MkSigninDialog.vue b/packages/frontend/src/components/MkSigninDialog.vue
index 60c99880cd..77141f1714 100644
--- a/packages/frontend/src/components/MkSigninDialog.vue
+++ b/packages/frontend/src/components/MkSigninDialog.vue
@@ -16,7 +16,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<button :class="$style.closeButton" class="_button" @click="onClose"><i class="ti ti-x"></i></button>
</div>
<div :class="$style.content">
- <MkSignin :autoSet="autoSet" :message="message" :openOnRemote="openOnRemote" @login="onLogin"/>
+ <MkSignin :autoSet="autoSet" :message="message" :openOnRemote="openOnRemote" :initialUsername="initialUsername" @login="onLogin"/>
</div>
</div>
</MkModal>
@@ -34,10 +34,12 @@ withDefaults(defineProps<{
autoSet?: boolean;
message?: string,
openOnRemote?: OpenOnRemoteOptions,
+ initialUsername?: string;
}>(), {
autoSet: false,
message: '',
openOnRemote: undefined,
+ initialUsername: undefined,
});
const emit = defineEmits<{