diff options
| author | かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com> | 2025-10-27 18:41:03 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-10-27 18:41:03 +0900 |
| commit | 4e16e23acd6db761ac7490c7a4c0b84cee490389 (patch) | |
| tree | e109f0e1a60fbd01ab774ab3adcb25fb1d1fab0d /packages/frontend/src | |
| parent | [skip ci] Update CHANGELOG.md (prepend template) (diff) | |
| download | misskey-4e16e23acd6db761ac7490c7a4c0b84cee490389.tar.gz misskey-4e16e23acd6db761ac7490c7a4c0b84cee490389.tar.bz2 misskey-4e16e23acd6db761ac7490c7a4c0b84cee490389.zip | |
fix(frontend): confettiの実行がアニメーション設定を考慮していない問題を修正 (#16714)
* fix(frontend): confettiの実行がアニメーション設定を考慮していない問題を修正
* Update Changelog
---------
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
Diffstat (limited to 'packages/frontend/src')
| -rw-r--r-- | packages/frontend/src/preferences/def.ts | 7 | ||||
| -rw-r--r-- | packages/frontend/src/store.ts | 7 | ||||
| -rw-r--r-- | packages/frontend/src/utility/confetti.ts | 12 |
3 files changed, 18 insertions, 8 deletions
diff --git a/packages/frontend/src/preferences/def.ts b/packages/frontend/src/preferences/def.ts index ebd031b240..915b192605 100644 --- a/packages/frontend/src/preferences/def.ts +++ b/packages/frontend/src/preferences/def.ts @@ -5,6 +5,7 @@ import * as Misskey from 'misskey-js'; import { hemisphere } from '@@/js/intl-const.js'; +import { prefersReducedMotion } from '@@/js/config.js'; import { definePreferences } from './manager.js'; import type { Theme } from '@/theme.js'; import type { SoundType } from '@/utility/sound.js'; @@ -211,10 +212,10 @@ export const PREF_DEF = definePreferences({ default: false, }, animation: { - default: !window.matchMedia('(prefers-reduced-motion)').matches, + default: !prefersReducedMotion, }, animatedMfm: { - default: !window.matchMedia('(prefers-reduced-motion)').matches, + default: !prefersReducedMotion, }, advancedMfm: { default: true, @@ -232,7 +233,7 @@ export const PREF_DEF = definePreferences({ default: false, }, disableShowingAnimatedImages: { - default: window.matchMedia('(prefers-reduced-motion)').matches, + default: prefersReducedMotion, }, emojiStyle: { default: 'twemoji', // twemoji / fluentEmoji / native diff --git a/packages/frontend/src/store.ts b/packages/frontend/src/store.ts index 87b2637a64..073fbba0fb 100644 --- a/packages/frontend/src/store.ts +++ b/packages/frontend/src/store.ts @@ -7,6 +7,7 @@ import { markRaw, ref } from 'vue'; import * as Misskey from 'misskey-js'; import lightTheme from '@@/themes/l-light.json5'; import darkTheme from '@@/themes/d-green-lime.json5'; +import { prefersReducedMotion } from '@@/js/config.js'; import { hemisphere } from '@@/js/intl-const.js'; import type { DeviceKind } from '@/utility/device-kind.js'; import type { Plugin } from '@/plugin.js'; @@ -220,11 +221,11 @@ export const store = markRaw(new Pizzax('base', { }, animation: { where: 'device', - default: !window.matchMedia('(prefers-reduced-motion)').matches, + default: !prefersReducedMotion, }, animatedMfm: { where: 'device', - default: !window.matchMedia('(prefers-reduced-motion)').matches, + default: !prefersReducedMotion, }, advancedMfm: { where: 'device', @@ -248,7 +249,7 @@ export const store = markRaw(new Pizzax('base', { }, disableShowingAnimatedImages: { where: 'device', - default: window.matchMedia('(prefers-reduced-motion)').matches, + default: prefersReducedMotion, }, emojiStyle: { where: 'device', diff --git a/packages/frontend/src/utility/confetti.ts b/packages/frontend/src/utility/confetti.ts index c19149875f..b95c26345e 100644 --- a/packages/frontend/src/utility/confetti.ts +++ b/packages/frontend/src/utility/confetti.ts @@ -5,13 +5,21 @@ import _confetti from 'canvas-confetti'; import * as os from '@/os.js'; +import { prefer } from '@/preferences.js'; export function confetti(options: { duration?: number; } = {}) { + if (!prefer.s.animation) return; + const duration = options.duration ?? 1000 * 4; const animationEnd = Date.now() + duration; - const defaults = { startVelocity: 30, spread: 360, ticks: 60, zIndex: os.claimZIndex('high') }; + const defaults = { + startVelocity: 30, + spread: 360, + ticks: 60, + zIndex: os.claimZIndex('high'), + } satisfies _confetti.Options; - function randomInRange(min, max) { + function randomInRange(min: number, max: number) { return Math.random() * (max - min) + min; } |