Files
Desktop/ts/state/selectors/network.preload.ts
Fedor Indutny 44076ece79 Rename files
2025-10-16 23:45:44 -07:00

45 lines
1.1 KiB
TypeScript

// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { createSelector } from 'reselect';
import type { StateType } from '../reducer.preload.js';
import type { NetworkStateType } from '../ducks/network.dom.js';
import { isDone } from '../../util/registration.preload.js';
const getNetwork = (state: StateType): NetworkStateType => state.network;
export const getNetworkIsOnline = createSelector(
getNetwork,
({ isOnline }) => isOnline
);
export const getNetworkIsOutage = createSelector(
getNetwork,
({ isOutage }) => isOutage
);
export const getNetworkSocketStatus = createSelector(
getNetwork,
({ socketStatus }) => socketStatus
);
export const hasNetworkDialog = createSelector(
getNetwork,
isDone,
(
{ isOnline, isOutage }: NetworkStateType,
isRegistrationDone: boolean
): boolean => isRegistrationDone && (!isOnline || isOutage)
);
export const getChallengeStatus = createSelector(
getNetwork,
({ challengeStatus }) => challengeStatus
);
export const isChallengePending = createSelector(
getNetwork,
({ challengeStatus }) => challengeStatus === 'pending'
);