Usernames: Create/update/delete in profile editor

This commit is contained in:
Scott Nonnenberg 2021-11-01 12:13:35 -07:00 committed by GitHub
parent a9cb621eb6
commit 3190f95fac
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
38 changed files with 923 additions and 89 deletions

View file

@ -6,6 +6,7 @@ import { fromPairs, isNumber } from 'lodash';
import { createSelector } from 'reselect';
import type { StateType } from '../reducer';
import type {
ConversationLookupType,
ConversationMessageType,
@ -15,7 +16,8 @@ import type {
MessagesByConversationType,
PreJoinConversationType,
} from '../ducks/conversations';
import { ComposerStep, OneTimeModalState } from '../ducks/conversations';
import type { UsernameSaveState } from '../ducks/conversationsEnums';
import { ComposerStep, OneTimeModalState } from '../ducks/conversationsEnums';
import { getOwn } from '../../util/getOwn';
import { isNotNil } from '../../util/isNotNil';
import { deconstructLookup } from '../../util/deconstructLookup';
@ -161,6 +163,13 @@ export const getSelectedMessage = createSelector(
}
);
export const getUsernameSaveState = createSelector(
getConversations,
(state: ConversationsStateType): UsernameSaveState => {
return state.usernameSaveState;
}
);
export const getShowArchived = createSelector(
getConversations,
(state: ConversationsStateType): boolean => {

View file

@ -5,6 +5,7 @@ import { createSelector } from 'reselect';
import { isInteger } from 'lodash';
import { ITEM_NAME as UNIVERSAL_EXPIRE_TIMER_ITEM } from '../../util/universalExpireTimer';
import type { ConfigMapType } from '../../RemoteConfig';
import type { StateType } from '../reducer';
import type { ItemsStateType } from '../ducks/items';
@ -35,6 +36,17 @@ export const getUniversalExpireTimer = createSelector(
(state: ItemsStateType): number => state[UNIVERSAL_EXPIRE_TIMER_ITEM] || 0
);
const getRemoteConfig = createSelector(
getItems,
(state: ItemsStateType): ConfigMapType | undefined => state.remoteConfig
);
export const getUsernamesEnabled = createSelector(
getRemoteConfig,
(remoteConfig?: ConfigMapType): boolean =>
Boolean(remoteConfig?.['desktop.usernames']?.enabled)
);
export const getDefaultConversationColor = createSelector(
getItems,
(