signal-desktop/ts/state/selectors/globalModals.ts
2024-06-10 08:23:43 -07:00

78 lines
2.3 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 getCallLinkEditModalRoomId = createSelector(
getGlobalModalsState,
({ callLinkEditModalRoomId }) => callLinkEditModalRoomId
);
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
);