73 lines
2.1 KiB
TypeScript
73 lines
2.1 KiB
TypeScript
// Copyright 2023 Signal Messenger, LLC
|
|
// SPDX-License-Identifier: AGPL-3.0-only
|
|
|
|
import { createSelector } from 'reselect';
|
|
|
|
import type { StateType } from '../reducer';
|
|
import type { GlobalModalsStateType } from '../ducks/globalModals';
|
|
import { UsernameOnboardingState } from '../../types/globalModals';
|
|
|
|
export const getGlobalModalsState = (state: StateType): GlobalModalsStateType =>
|
|
state.globalModals;
|
|
|
|
export const isShowingAnyModal = createSelector(
|
|
getGlobalModalsState,
|
|
(globalModalsState): boolean =>
|
|
Object.entries(globalModalsState).some(([key, value]) => {
|
|
if (key === 'usernameOnboardingState') {
|
|
return value === UsernameOnboardingState.Open;
|
|
}
|
|
|
|
return Boolean(value);
|
|
})
|
|
);
|
|
|
|
export const getContactModalState = createSelector(
|
|
getGlobalModalsState,
|
|
({ contactModalState }) => contactModalState
|
|
);
|
|
|
|
export const getIsStoriesSettingsVisible = createSelector(
|
|
getGlobalModalsState,
|
|
({ isStoriesSettingsVisible }) => isStoriesSettingsVisible
|
|
);
|
|
|
|
export const getSafetyNumberChangedBlockingData = createSelector(
|
|
getGlobalModalsState,
|
|
({ safetyNumberChangedBlockingData }) => safetyNumberChangedBlockingData
|
|
);
|
|
|
|
export const getDeleteMessagesProps = createSelector(
|
|
getGlobalModalsState,
|
|
({ deleteMessagesProps }) => deleteMessagesProps
|
|
);
|
|
|
|
export const getEditHistoryMessages = createSelector(
|
|
getGlobalModalsState,
|
|
({ editHistoryMessages }) => editHistoryMessages
|
|
);
|
|
|
|
export const getForwardMessagesProps = createSelector(
|
|
getGlobalModalsState,
|
|
({ forwardMessagesProps }) => forwardMessagesProps
|
|
);
|
|
|
|
export const getProfileEditorHasError = createSelector(
|
|
getGlobalModalsState,
|
|
({ profileEditorHasError }) => profileEditorHasError
|
|
);
|
|
|
|
export const getProfileEditorInitialEditState = createSelector(
|
|
getGlobalModalsState,
|
|
({ profileEditorInitialEditState }) => profileEditorInitialEditState
|
|
);
|
|
|
|
export const getEditNicknameAndNoteModalProps = createSelector(
|
|
getGlobalModalsState,
|
|
({ editNicknameAndNoteModalProps }) => editNicknameAndNoteModalProps
|
|
);
|
|
|
|
export const getNotePreviewModalProps = createSelector(
|
|
getGlobalModalsState,
|
|
({ notePreviewModalProps }) => notePreviewModalProps
|
|
);
|