From eb2573187d53d996fd6002f052d1430c2dbf4ff9 Mon Sep 17 00:00:00 2001 From: automated-signal <37887102+automated-signal@users.noreply.github.com> Date: Thu, 13 Jun 2024 11:56:19 -0500 Subject: [PATCH] Update getTheme for full screen calls Co-authored-by: ayumi-signal <143036029+ayumi-signal@users.noreply.github.com> --- ts/state/selectors/user.ts | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/ts/state/selectors/user.ts b/ts/state/selectors/user.ts index 3f12af7aee..b10ae99dd9 100644 --- a/ts/state/selectors/user.ts +++ b/ts/state/selectors/user.ts @@ -3,12 +3,13 @@ import { createSelector } from 'reselect'; -import type { LocalizerType, ThemeType } from '../../types/Util'; +import { type LocalizerType, ThemeType } from '../../types/Util'; import type { AciString, PniString } from '../../types/ServiceId'; import type { LocaleMessagesType } from '../../types/I18N'; import type { MenuOptionsType } from '../../types/menu'; import type { StateType } from '../reducer'; +import type { CallingStateType } from '../ducks/calling'; import type { UserStateType } from '../ducks/user'; import { isAlpha, isBeta } from '../../util/version'; @@ -80,11 +81,26 @@ export const getTempPath = createSelector( (state: UserStateType): string => state.tempPath ); -export const getTheme = createSelector( +export const getPreferredTheme = createSelector( getUser, (state: UserStateType): ThemeType => state.theme ); +// Also defined in calling selectors, redefined to avoid circular dependency +const getIsInFullScreenCall = createSelector( + (state: StateType): CallingStateType => state.calling, + (state: CallingStateType): boolean => + Boolean(state.activeCallState && !state.activeCallState.pip) +); + +export const getTheme = createSelector( + getPreferredTheme, + getIsInFullScreenCall, + (theme: ThemeType, isInCall: boolean): ThemeType => { + return isInCall ? ThemeType.dark : theme; + } +); + const getVersion = createSelector( getUser, (state: UserStateType) => state.version