|
|
|
import { createSelector } from '@reduxjs/toolkit';
|
|
|
|
|
|
|
|
import { LeftOverlayMode, SectionStateType, SectionType } from '../ducks/section';
|
|
|
|
import { StateType } from '../reducer';
|
|
|
|
import type { SessionSettingCategory } from '../../types/ReduxTypes';
|
|
|
|
|
|
|
|
export const getSection = (state: StateType): SectionStateType => state.section;
|
|
|
|
|
|
|
|
export const getFocusedSection = createSelector(
|
|
|
|
getSection,
|
|
|
|
(state: SectionStateType): SectionType => state.focusedSection
|
|
|
|
);
|
|
|
|
|
|
|
|
export const getIsMessageSection = (state: StateType) => {
|
|
|
|
return state.section.focusedSection === SectionType.Message;
|
|
|
|
};
|
|
|
|
|
|
|
|
export const getFocusedSettingsSection = createSelector(
|
|
|
|
getSection,
|
|
|
|
(state: SectionStateType): SessionSettingCategory | undefined => state.focusedSettingsSection
|
|
|
|
);
|
|
|
|
|
|
|
|
export const getIsAppFocused = createSelector(
|
|
|
|
getSection,
|
|
|
|
(state: SectionStateType): boolean => state.isAppFocused
|
|
|
|
);
|
|
|
|
|
|
|
|
export const getLeftOverlayMode = createSelector(
|
|
|
|
getSection,
|
|
|
|
(state: SectionStateType): LeftOverlayMode | undefined => state.leftOverlayMode
|
|
|
|
);
|
|
|
|
|
|
|
|
export const getRightOverlayMode = (state: StateType) => {
|
|
|
|
return state.section.rightOverlayMode;
|
|
|
|
};
|
|
|
|
|
|
|
|
export const getIsMessageRequestOverlayShown = (state: StateType) => {
|
|
|
|
const focusedSection = getFocusedSection(state);
|
|
|
|
const leftOverlayMode = getLeftOverlayMode(state);
|
|
|
|
|
|
|
|
return focusedSection === SectionType.Message && leftOverlayMode === 'message-requests';
|
|
|
|
};
|