From 4ee1b2294a92db3db51c08cc300e4c848d533b26 Mon Sep 17 00:00:00 2001 From: Hampus Date: Mon, 24 Aug 2026 12:43:47 +0200 Subject: [PATCH] fix(app): show a still ban image under reduced motion or data saver (#1909) --- .../components/modals/BanMemberModal.tsx | 42 ++++++++++++------- 1 file changed, 28 insertions(+), 14 deletions(-) diff --git a/fluxer_app/src/features/moderation/components/modals/BanMemberModal.tsx b/fluxer_app/src/features/moderation/components/modals/BanMemberModal.tsx index 15c9e3285..9ad3cd0cf 100644 --- a/fluxer_app/src/features/moderation/components/modals/BanMemberModal.tsx +++ b/fluxer_app/src/features/moderation/components/modals/BanMemberModal.tsx @@ -1,7 +1,9 @@ // SPDX-License-Identifier: AGPL-3.0-or-later +import Accessibility from '@app/features/accessibility/state/Accessibility'; import * as Modal from '@app/features/app/components/dialogs/Modal'; import {useAnimatedMediaVideoPlayback} from '@app/features/app/hooks/useAnimatedMediaPlayback'; +import {useSaveData} from '@app/features/app/hooks/useSaveData'; import * as GuildCommands from '@app/features/guild/commands/GuildCommands'; import { CUSTOM_ELLIPSIS_DESCRIPTOR, @@ -124,7 +126,9 @@ interface ComboboxOption { export const BanMemberModal: React.FC<{guildId: string; targetUser: User}> = observer(({guildId, targetUser}) => { const {i18n} = useLingui(); const videoRef = useRef(null); - const videoPlaybackAllowed = useAnimatedMediaVideoPlayback(videoRef); + const dataSaverOn = useSaveData(); + const motionArtworkAllowed = !Accessibility.useReducedMotion && !dataSaverOn; + const videoPlaybackAllowed = useAnimatedMediaVideoPlayback(videoRef, {enabled: motionArtworkAllowed}); const [reason, setReason] = useState(''); const [deleteMessageDays, setDeleteMessageDays] = useState(1); const [banDuration, setBanDuration] = useState(0); @@ -175,19 +179,29 @@ export const BanMemberModal: React.FC<{guildId: string; targetUser: User}> = obs />
- + {motionArtworkAllowed ? ( + + ) : ( + + )}
label={i18n._(BAN_DURATION_DESCRIPTOR)}