diff --git a/locales/index.d.ts b/locales/index.d.ts index 1c97a3d944..11f6f2923f 100644 --- a/locales/index.d.ts +++ b/locales/index.d.ts @@ -5323,6 +5323,11 @@ export interface Locale extends ILocale { * チュートリアルを完了すると実績が解除されます。 */ "takesAbout": ParameterizedString<"min">; + /** + * このサーバーの管理者は新規ユーザーにチュートリアルを完了することを義務付けています。 + * チュートリアルを完了するまでMisskeyを使い始めることはできません。 + */ + "adminForcesToTakeTutorial": string; }; "_onboardingDone": { /** diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index dcd9e77aa6..4aeeabf2a0 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -1340,6 +1340,7 @@ _initialTutorial: welcomeToX: "ようこそ、{name}へ!" description: "「{name}に登録したは良いものの、どう使えばいいか分からない…💦」といったことを防ぐために、まずはMisskeyの基本的な使い方を学びましょう。" takesAbout: "このチュートリアルの所要時間は{min}分程度です。\nチュートリアルを完了すると実績が解除されます。" + adminForcesToTakeTutorial: "このサーバーの管理者は新規ユーザーにチュートリアルを完了することを義務付けています。\nチュートリアルを完了するまでMisskeyを使い始めることはできません。" _onboardingDone: description: "お疲れ様でした!次のステップに進んで、{name}をもっと楽しめるようにしましょう。" backToOriginalPath: "元のページに戻る" diff --git a/packages/frontend/assets/tutorial/reaction.png b/packages/frontend/assets/tutorial/reaction.png new file mode 100644 index 0000000000..c09fda3444 Binary files /dev/null and b/packages/frontend/assets/tutorial/reaction.png differ diff --git a/packages/frontend/src/boot/common.ts b/packages/frontend/src/boot/common.ts index 250f71120d..7a8011bb23 100644 --- a/packages/frontend/src/boot/common.ts +++ b/packages/frontend/src/boot/common.ts @@ -119,8 +119,8 @@ export async function common(createVue: () => App) { await defaultStore.ready; await deckStore.ready; - // 2024年3月1日JST以降に作成されたアカウントで、チュートリアルを完了していない通常ユーザーの場合、チュートリアルにリダイレクト - if (!instance.canSkipInitialTutorial && $i && !iAmModerator && new Date($i.createdAt).getTime() >= 1709218800000 && !claimedAchievements.includes('tutorialCompleted') && !location.pathname.startsWith('/onboarding') && !location.pathname.startsWith('/signup-complete')) { + // 2024年4月1日JST以降に作成されたアカウントで、チュートリアルを完了していない通常ユーザーの場合、チュートリアルにリダイレクト + if (!instance.canSkipInitialTutorial && $i && !iAmModerator && new Date($i.createdAt).getTime() >= 1711897200000 && !claimedAchievements.includes('tutorialCompleted') && !location.pathname.startsWith('/onboarding') && !location.pathname.startsWith('/signup-complete')) { const param = new URLSearchParams(); param.set('redirected_from', location.pathname + location.search + location.hash); location.replace('/onboarding?' + param.toString()); diff --git a/packages/frontend/src/components/MkPostForm.vue b/packages/frontend/src/components/MkPostForm.vue index e03faeaf55..04458d46a1 100644 --- a/packages/frontend/src/components/MkPostForm.vue +++ b/packages/frontend/src/components/MkPostForm.vue @@ -537,6 +537,8 @@ function pushVisibleUser(user: Misskey.entities.UserDetailed) { } function addVisibleUser() { + if (props.mock) return; + os.selectUser().then(user => { pushVisibleUser(user); @@ -861,6 +863,8 @@ function cancel() { } function insertMention() { + if (props.mock) return; + os.selectUser({ localOnly: localOnly.value, includeSelf: true }).then(user => { insertTextAtCursor(textareaEl.value, '@' + Misskey.acct.toString(user) + ' '); }); diff --git a/packages/frontend/src/components/MkTutorial.FollowUsers.vue b/packages/frontend/src/components/MkTutorial.FollowUsers.vue index df2a8150e1..4ded1e3f40 100644 --- a/packages/frontend/src/components/MkTutorial.FollowUsers.vue +++ b/packages/frontend/src/components/MkTutorial.FollowUsers.vue @@ -5,15 +5,14 @@ SPDX-License-Identifier: AGPL-3.0-only