Files
fluxer/fluxer_app/src/features/channel/components/MessageEmojiAnimationUtils.ts
T

23 lines
700 B
TypeScript

// SPDX-License-Identifier: AGPL-3.0-or-later
export interface MessageEmojiAnimationState {
animateEmojiSetting: boolean;
animatedMediaPlaybackAllowed?: boolean;
stayInteractiveWhenUnfocused?: boolean;
windowFocused?: boolean;
windowVisible?: boolean;
}
export function shouldAnimateMessageEmojiByDefault({
animateEmojiSetting,
animatedMediaPlaybackAllowed,
stayInteractiveWhenUnfocused,
windowFocused,
windowVisible,
}: MessageEmojiAnimationState): boolean {
if (!animateEmojiSetting) return false;
if (animatedMediaPlaybackAllowed !== undefined) return animatedMediaPlaybackAllowed;
if (!windowVisible) return false;
return Boolean(windowFocused || stayInteractiveWhenUnfocused);
}