diff --git a/packages/client/src/components/MkSubNoteContent.vue b/packages/client/src/components/MkSubNoteContent.vue index 6a7a8fa427..1df2e72795 100644 --- a/packages/client/src/components/MkSubNoteContent.vue +++ b/packages/client/src/components/MkSubNoteContent.vue @@ -187,11 +187,15 @@ let disableMfm = $ref(hasMfm && defaultStore.state.animatedMfm); async function toggleMfm() { if (disableMfm) { - const { canceled } = await os.confirm({ - type: "warning", - text: i18n.ts._mfm.warn, - }); - if (canceled) return; + if (!defaultStore.state.animatedMfmWarnShown) { + const { canceled } = await os.confirm({ + type: "warning", + text: i18n.ts._mfm.warn, + }); + if (canceled) return; + + defaultStore.set("animatedMfmWarnShown", true); + } disableMfm = false; } else { diff --git a/packages/client/src/components/mfm.ts b/packages/client/src/components/mfm.ts index 67147cdb23..7e3c143357 100644 --- a/packages/client/src/components/mfm.ts +++ b/packages/client/src/components/mfm.ts @@ -151,7 +151,7 @@ export default defineComponent({ break; } case "sparkle": { - if (!(defaultStore.state.animatedMfm || reducedMotion())) { + if (reducedMotion()) { return genEl(token.children); } return h(MkSparkle, {}, genEl(token.children)); diff --git a/packages/client/src/store.ts b/packages/client/src/store.ts index b4e10d2750..adebb1c497 100644 --- a/packages/client/src/store.ts +++ b/packages/client/src/store.ts @@ -158,6 +158,10 @@ export const defaultStore = markRaw( where: "device", default: true, }, + animatedMfmWarnShown: { + where: "device", + default: false, + }, loadRawImages: { where: "device", default: false,