From 3933439456182a3e38ab6b8e78ed7a620fa088b9 Mon Sep 17 00:00:00 2001 From: Guilherme Gazzo Date: Wed, 20 May 2020 10:50:34 -0300 Subject: [PATCH 1/3] Fix ignoring password changes --- client/admin/users/EditUser.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/client/admin/users/EditUser.js b/client/admin/users/EditUser.js index 522f355928ae..71db28d1621d 100644 --- a/client/admin/users/EditUser.js +++ b/client/admin/users/EditUser.js @@ -36,11 +36,12 @@ export function EditUserWithData({ userId, ...props }) { const getInitialValue = (data) => ({ roles: data.roles, name: data.name ?? '', + password: '', username: data.username, status: data.status, bio: data.bio ?? '', email: (data.emails && data.emails[0].address) || '', - emailVerified: (data.emails && data.emails[0].verified) || false, + verified: (data.emails && data.emails[0].verified) || false, setRandomPassword: false, requirePasswordChange: data.setRandomPassword || false, customFields: data.customFields ?? {}, From 496e441dc41e5cb0d5b58108192997a0657f0c26 Mon Sep 17 00:00:00 2001 From: Guilherme Gazzo Date: Wed, 20 May 2020 11:12:49 -0300 Subject: [PATCH 2/3] Fix truncate user info --- client/admin/users/UserInfo.js | 14 +++++++------- client/components/basic/VerticalBar.js | 3 +++ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/client/admin/users/UserInfo.js b/client/admin/users/UserInfo.js index bc1dd867be2c..1832ad0a3777 100644 --- a/client/admin/users/UserInfo.js +++ b/client/admin/users/UserInfo.js @@ -65,17 +65,17 @@ export function UserInfo({ data, onChange, ...props }) { const avatarUrl = roomTypes.getConfig('d').getAvatarPath({ name: data.username || data.name, type: 'd', _id: data._id }); return e.preventDefault(), [])} {...props}> - - + + - {data.name || data.username} - {!!data.name && @{data.username}} - {data.status} + {data.name || data.username} + {!!data.name && @{data.username}} + {data.status} - + {data.bio && data.bio.trim().length > 0 && {data.bio}} {!!data.roles.length && <> @@ -89,7 +89,7 @@ export function UserInfo({ data, onChange, ...props }) { {data.emails && <> {t('Email')} - {data.emails[0].address} + {data.emails[0].address} {data.emails[0].verified && {t('Verified')}} {data.emails[0].verified || {t('Not_verified')}} diff --git a/client/components/basic/VerticalBar.js b/client/components/basic/VerticalBar.js index 52e0dae7677b..f9ce374bcd9a 100644 --- a/client/components/basic/VerticalBar.js +++ b/client/components/basic/VerticalBar.js @@ -10,6 +10,7 @@ function VerticalBar({ children, ...props }) { return {children} From f92d59246278185e3810cb1f2e0a7e55fc712202 Mon Sep 17 00:00:00 2001 From: Guilherme Gazzo Date: Wed, 20 May 2020 11:13:15 -0300 Subject: [PATCH 3/3] Improve code --- client/admin/users/EditUser.js | 16 +++++----------- client/admin/users/Skeleton.js | 11 +++++++++++ client/admin/users/UserInfo.js | 16 +++++----------- client/admin/users/UsersPage.js | 4 ++-- 4 files changed, 23 insertions(+), 24 deletions(-) create mode 100644 client/admin/users/Skeleton.js diff --git a/client/admin/users/EditUser.js b/client/admin/users/EditUser.js index 71db28d1621d..14e8e699d6ac 100644 --- a/client/admin/users/EditUser.js +++ b/client/admin/users/EditUser.js @@ -1,5 +1,5 @@ import React, { useMemo, useState, useCallback } from 'react'; -import { Box, Skeleton, Field, Margins, Button } from '@rocket.chat/fuselage'; +import { Box, Field, Margins, Button } from '@rocket.chat/fuselage'; import { useTranslation } from '../../contexts/TranslationContext'; import { useEndpointDataExperimental, ENDPOINT_STATES } from '../../hooks/useEndpointDataExperimental'; @@ -9,21 +9,15 @@ import { useRoute } from '../../contexts/RouterContext'; import UserAvatarEditor from '../../components/basic/avatar/UserAvatarEditor'; import { useForm } from '../../hooks/useForm'; import UserForm from './UserForm'; +import { FormSkeleton } from './Skeleton'; -export function EditUserWithData({ userId, ...props }) { +export function EditUserWithData({ uid, ...props }) { const t = useTranslation(); const { data: roleData, state: roleState, error: roleError } = useEndpointDataExperimental('roles.list', '') || {}; - const { data, state, error } = useEndpointDataExperimental('users.info', useMemo(() => ({ userId }), [userId])); + const { data, state, error } = useEndpointDataExperimental('users.info', useMemo(() => ({ userId: uid }), [uid])); if ([state, roleState].includes(ENDPOINT_STATES.LOADING)) { - return - - - - - - - ; + return ; } if (error || roleError) { diff --git a/client/admin/users/Skeleton.js b/client/admin/users/Skeleton.js new file mode 100644 index 000000000000..2fc5e9097c14 --- /dev/null +++ b/client/admin/users/Skeleton.js @@ -0,0 +1,11 @@ +import React from 'react'; +import { Box, Skeleton } from '@rocket.chat/fuselage'; + +export const FormSkeleton = (props) => + + + + + + +; diff --git a/client/admin/users/UserInfo.js b/client/admin/users/UserInfo.js index 1832ad0a3777..32d570b18634 100644 --- a/client/admin/users/UserInfo.js +++ b/client/admin/users/UserInfo.js @@ -1,5 +1,5 @@ import React, { useMemo, useState, useEffect, useCallback } from 'react'; -import { Box, Avatar, Margins, Skeleton, Chip, Tag } from '@rocket.chat/fuselage'; +import { Box, Avatar, Margins, Chip, Tag } from '@rocket.chat/fuselage'; import moment from 'moment'; import { useEndpointDataExperimental, ENDPOINT_STATES } from '../../hooks/useEndpointDataExperimental'; @@ -9,6 +9,7 @@ import { DateFormat } from '../../../app/lib'; import { UserInfoActions } from './UserInfoActions'; import MarkdownText from '../../components/basic/MarkdownText'; import VerticalBar from '../../components/basic/VerticalBar'; +import { FormSkeleton } from './Skeleton'; const useTimezoneClock = (utcOffset = 0, updateInterval) => { const [time, setTime] = useState(); @@ -28,23 +29,16 @@ const UTCClock = ({ utcOffset, ...props }) => { return {time} UTC {utcOffset}; }; -export function UserInfoWithData({ userId, ...props }) { +export function UserInfoWithData({ uid, ...props }) { const t = useTranslation(); const [cache, setCache] = useState(); const onChange = () => setCache(new Date()); - const { data, state, error } = useEndpointDataExperimental('users.info', useMemo(() => ({ userId }), [userId, cache])); + const { data, state, error } = useEndpointDataExperimental('users.info', useMemo(() => ({ userId: uid }), [uid, cache])); if (state === ENDPOINT_STATES.LOADING) { - return - - - - - - - ; + return ; } if (error) { diff --git a/client/admin/users/UsersPage.js b/client/admin/users/UsersPage.js index f9060964b630..02904be6dc2a 100644 --- a/client/admin/users/UsersPage.js +++ b/client/admin/users/UsersPage.js @@ -56,8 +56,8 @@ function UsersPage() { - {context === 'info' && } - {context === 'edit' && } + {context === 'info' && } + {context === 'edit' && } {context === 'new' && } {context === 'invite' && }