// Copyright 2022 Signal Messenger, LLC // SPDX-License-Identifier: AGPL-3.0-only import React, { memo } from 'react'; import { useSelector } from 'react-redux'; import { EditUsernameModalBody } from '../../components/EditUsernameModalBody'; import { getMinNickname, getMaxNickname } from '../../util/Username'; import { getIntl } from '../selectors/user'; import { getUsernameReservationState, getUsernameReservationObject, getUsernameReservationError, getRecoveredUsername, } from '../selectors/username'; import { getUsernameCorrupted } from '../selectors/items'; import { getMe } from '../selectors/conversations'; import { useUsernameActions } from '../ducks/username'; import { useToastActions } from '../ducks/toast'; export type SmartEditUsernameModalBodyProps = Readonly<{ isRootModal: boolean; onClose(): void; }>; export const SmartEditUsernameModalBody = memo( function SmartEditUsernameModalBody({ isRootModal, onClose, }: SmartEditUsernameModalBodyProps) { const i18n = useSelector(getIntl); const { username } = useSelector(getMe); const usernameCorrupted = useSelector(getUsernameCorrupted); const currentUsername = usernameCorrupted ? undefined : username; const minNickname = getMinNickname(); const maxNickname = getMaxNickname(); const state = useSelector(getUsernameReservationState); const recoveredUsername = useSelector(getRecoveredUsername); const reservation = useSelector(getUsernameReservationObject); const error = useSelector(getUsernameReservationError); const { setUsernameReservationError, clearUsernameReservation, reserveUsername, confirmUsername, } = useUsernameActions(); const { showToast } = useToastActions(); return ( ); } );