2020-10-30 15:34:04 -05:00
|
|
|
// Copyright 2020 Signal Messenger, LLC
|
|
|
|
// SPDX-License-Identifier: AGPL-3.0-only
|
|
|
|
|
2020-02-12 13:30:58 -08:00
|
|
|
import { createSelector } from 'reselect';
|
|
|
|
|
2021-10-26 14:15:33 -05:00
|
|
|
import type { StateType } from '../reducer';
|
|
|
|
import type { NetworkStateType } from '../ducks/network';
|
2020-02-21 15:08:21 -08:00
|
|
|
import { isDone } from '../../util/registration';
|
2020-02-12 13:30:58 -08:00
|
|
|
|
|
|
|
const getNetwork = (state: StateType): NetworkStateType => state.network;
|
|
|
|
|
2024-03-13 13:44:13 -07:00
|
|
|
export const getNetworkIsOnline = createSelector(
|
|
|
|
getNetwork,
|
|
|
|
({ isOnline }) => isOnline
|
|
|
|
);
|
|
|
|
|
|
|
|
export const getNetworkIsOutage = createSelector(
|
|
|
|
getNetwork,
|
|
|
|
({ isOutage }) => isOutage
|
|
|
|
);
|
|
|
|
|
|
|
|
export const getNetworkSocketStatus = createSelector(
|
|
|
|
getNetwork,
|
|
|
|
({ socketStatus }) => socketStatus
|
|
|
|
);
|
|
|
|
|
2020-02-12 13:30:58 -08:00
|
|
|
export const hasNetworkDialog = createSelector(
|
|
|
|
getNetwork,
|
|
|
|
isDone,
|
|
|
|
(
|
2024-03-18 14:48:00 -07:00
|
|
|
{ isOnline, isOutage }: NetworkStateType,
|
2020-02-12 13:30:58 -08:00
|
|
|
isRegistrationDone: boolean
|
2024-03-18 14:48:00 -07:00
|
|
|
): boolean => isRegistrationDone && (!isOnline || isOutage)
|
2020-02-12 13:30:58 -08:00
|
|
|
);
|
2021-05-05 17:09:29 -07:00
|
|
|
|
2024-03-13 13:44:13 -07:00
|
|
|
export const getChallengeStatus = createSelector(
|
|
|
|
getNetwork,
|
|
|
|
({ challengeStatus }) => challengeStatus
|
|
|
|
);
|
|
|
|
|
2021-05-05 17:09:29 -07:00
|
|
|
export const isChallengePending = createSelector(
|
|
|
|
getNetwork,
|
|
|
|
({ challengeStatus }) => challengeStatus === 'pending'
|
|
|
|
);
|