summaryrefslogtreecommitdiff
path: root/packages/frontend/src/scripts/please-login.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/frontend/src/scripts/please-login.ts')
-rw-r--r--packages/frontend/src/scripts/please-login.ts12
1 files changed, 10 insertions, 2 deletions
diff --git a/packages/frontend/src/scripts/please-login.ts b/packages/frontend/src/scripts/please-login.ts
index 43dcf11936..a8a330eb6d 100644
--- a/packages/frontend/src/scripts/please-login.ts
+++ b/packages/frontend/src/scripts/please-login.ts
@@ -5,6 +5,7 @@
import { defineAsyncComponent } from 'vue';
import { $i } from '@/account.js';
+import { instance } from '@/instance.js';
import { i18n } from '@/i18n.js';
import { popup } from '@/os.js';
@@ -51,10 +52,17 @@ export function pleaseLogin(opts: {
} = {}) {
if ($i) return;
+ let _openOnRemote: OpenOnRemoteOptions | undefined = undefined;
+
+ // 連合できる場合と、(連合ができなくても)共有する場合は外部連携オプションを設定
+ if (opts.openOnRemote != null && (instance.federation !== 'none' || opts.openOnRemote.type === 'share')) {
+ _openOnRemote = opts.openOnRemote;
+ }
+
const { dispose } = popup(defineAsyncComponent(() => import('@/components/MkSigninDialog.vue')), {
autoSet: true,
- message: opts.message ?? (opts.openOnRemote ? i18n.ts.signinOrContinueOnRemote : i18n.ts.signinRequired),
- openOnRemote: opts.openOnRemote,
+ message: opts.message ?? (_openOnRemote ? i18n.ts.signinOrContinueOnRemote : i18n.ts.signinRequired),
+ openOnRemote: _openOnRemote,
}, {
cancelled: () => {
if (opts.path) {