Discriminator in username

This commit is contained in:
Fedor Indutny 2022-10-18 10:12:02 -07:00 committed by GitHub
parent 58f0012f14
commit 00f82a6d39
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
54 changed files with 2706 additions and 892 deletions

View file

@ -0,0 +1,50 @@
// Copyright 2022 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { createSelector } from 'reselect';
import type { UsernameReservationType } from '../../types/Username';
import type { StateType } from '../reducer';
import type {
UsernameStateType,
UsernameReservationStateType,
} from '../ducks/username';
import type {
UsernameEditState,
UsernameReservationState,
UsernameReservationError,
} from '../ducks/usernameEnums';
export const getUsernameState = (state: StateType): UsernameStateType =>
state.username;
export const getUsernameEditState = createSelector(
getUsernameState,
(state: UsernameStateType): UsernameEditState => state.editState
);
export const getUsernameReservation = createSelector(
getUsernameState,
(state: UsernameStateType): UsernameReservationStateType =>
state.usernameReservation
);
export const getUsernameReservationState = createSelector(
getUsernameReservation,
(reservation: UsernameReservationStateType): UsernameReservationState =>
reservation.state
);
export const getUsernameReservationObject = createSelector(
getUsernameReservation,
(
reservation: UsernameReservationStateType
): UsernameReservationType | undefined => reservation.reservation
);
export const getUsernameReservationError = createSelector(
getUsernameReservation,
(
reservation: UsernameReservationStateType
): UsernameReservationError | undefined => reservation.error
);