signal-desktop/ts/state/selectors/user.ts

111 lines
2.8 KiB
TypeScript
Raw Normal View History

2023-01-03 19:55:46 +00:00
// Copyright 2019 Signal Messenger, LLC
2020-10-30 20:34:04 +00:00
// SPDX-License-Identifier: AGPL-3.0-only
2019-01-14 21:49:58 +00:00
import { createSelector } from 'reselect';
import type { LocalizerType, ThemeType } from '../../types/Util';
2021-10-26 22:59:08 +00:00
import type { UUIDStringType } from '../../types/UUID';
import type { LocaleMessagesType } from '../../types/I18N';
import type { MenuOptionsType } from '../../types/menu';
2019-01-14 21:49:58 +00:00
import type { StateType } from '../reducer';
import type { UserStateType } from '../ducks/user';
2019-01-14 21:49:58 +00:00
2022-01-26 23:05:26 +00:00
import { isAlpha, isBeta } from '../../util/version';
2019-01-14 21:49:58 +00:00
export const getUser = (state: StateType): UserStateType => state.user;
export const getUserNumber = createSelector(
getUser,
(state: UserStateType): string | undefined => state.ourNumber
2019-01-14 21:49:58 +00:00
);
export const getUserDeviceId = createSelector(
getUser,
(state: UserStateType): number | undefined => state.ourDeviceId
);
2019-01-14 21:49:58 +00:00
export const getRegionCode = createSelector(
getUser,
(state: UserStateType): string | undefined => state.regionCode
2019-01-14 21:49:58 +00:00
);
export const getUserConversationId = createSelector(
getUser,
(state: UserStateType): string | undefined => state.ourConversationId
);
2022-07-08 20:46:25 +00:00
export const getUserACI = createSelector(
getUser,
2022-07-08 20:46:25 +00:00
(state: UserStateType): UUIDStringType | undefined => state.ourACI
);
export const getUserPNI = createSelector(
getUser,
(state: UserStateType): UUIDStringType | undefined => state.ourPNI
);
2019-01-14 21:49:58 +00:00
export const getIntl = createSelector(
getUser,
(state: UserStateType): LocalizerType => state.i18n
);
export const getLocaleMessages = createSelector(
getUser,
(state: UserStateType): LocaleMessagesType => state.localeMessages
);
export const getInteractionMode = createSelector(
getUser,
(state: UserStateType) => state.interactionMode
);
export const getAttachmentsPath = createSelector(
getUser,
(state: UserStateType): string => state.attachmentsPath
);
export const getStickersPath = createSelector(
getUser,
(state: UserStateType): string => state.stickersPath
);
2019-11-07 21:36:16 +00:00
export const getPlatform = createSelector(
getUser,
(state: UserStateType): string => state.platform
);
export const getTempPath = createSelector(
getUser,
(state: UserStateType): string => state.tempPath
);
export const getTheme = createSelector(
getUser,
(state: UserStateType): ThemeType => state.theme
);
2022-01-26 23:05:26 +00:00
const getVersion = createSelector(
getUser,
(state: UserStateType) => state.version
);
export const getIsAlpha = createSelector(getVersion, isAlpha);
export const getIsBeta = createSelector(getVersion, isBeta);
export const getIsMainWindowMaximized = createSelector(
getUser,
(state: UserStateType): boolean => state.isMainWindowMaximized
);
export const getIsMainWindowFullScreen = createSelector(
getUser,
(state: UserStateType): boolean => state.isMainWindowFullScreen
);
export const getMenuOptions = createSelector(
getUser,
(state: UserStateType): MenuOptionsType => state.menuOptions
);