From 45417eadcef7a451a6737b64bbf365495449a37d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BAlia=20Jaeger=20Foresti?= <60678893+juliajforesti@users.noreply.github.com> Date: Fri, 20 May 2022 14:17:58 -0300 Subject: [PATCH] Chore: Convert apps/meteor/client/components/UserAutoComplete (#25554) Co-authored-by: Guilherme Gazzo --- .../CreateDiscussion/CreateDiscussion.tsx | 2 +- .../Omnichannel/modals/ForwardChatModal.tsx | 3 +- .../components/RoomAutoComplete/Avatar.js | 10 ------ .../components/RoomAutoComplete/Avatar.tsx | 16 ++++++++++ ...omAutoComplete.js => RoomAutoComplete.tsx} | 31 ++++++++++++------- ...erAutoComplete.js => UserAutoComplete.tsx} | 30 +++++++++++++----- .../UsersInRole/UsersInRolePage.tsx | 10 ++++-- .../views/omnichannel/managers/AddManager.tsx | 9 +++++- packages/core-typings/src/IUser.ts | 1 + packages/rest-typings/src/v1/users.ts | 4 ++- 10 files changed, 79 insertions(+), 37 deletions(-) delete mode 100644 apps/meteor/client/components/RoomAutoComplete/Avatar.js create mode 100644 apps/meteor/client/components/RoomAutoComplete/Avatar.tsx rename apps/meteor/client/components/RoomAutoComplete/{RoomAutoComplete.js => RoomAutoComplete.tsx} (56%) rename apps/meteor/client/components/UserAutoComplete/{UserAutoComplete.js => UserAutoComplete.tsx} (52%) diff --git a/apps/meteor/client/components/CreateDiscussion/CreateDiscussion.tsx b/apps/meteor/client/components/CreateDiscussion/CreateDiscussion.tsx index 0b684b4d1488..685b9f29fbf4 100644 --- a/apps/meteor/client/components/CreateDiscussion/CreateDiscussion.tsx +++ b/apps/meteor/client/components/CreateDiscussion/CreateDiscussion.tsx @@ -94,7 +94,7 @@ const CreateDiscussion = ({ onClose, defaultParentRoom, parentMessageId, nameSug value={parentRoom} onChange={handleParentRoom} placeholder={t('Discussion_target_channel_description')} - disabled={defaultParentRoom} + disabled={Boolean(defaultParentRoom)} /> )} diff --git a/apps/meteor/client/components/Omnichannel/modals/ForwardChatModal.tsx b/apps/meteor/client/components/Omnichannel/modals/ForwardChatModal.tsx index 616895ddc771..853dd7c7d293 100644 --- a/apps/meteor/client/components/Omnichannel/modals/ForwardChatModal.tsx +++ b/apps/meteor/client/components/Omnichannel/modals/ForwardChatModal.tsx @@ -109,9 +109,8 @@ const ForwardChatModal = ({ { + onChange={(value: any): void => { setValue('username', value); }} value={getValues().username} diff --git a/apps/meteor/client/components/RoomAutoComplete/Avatar.js b/apps/meteor/client/components/RoomAutoComplete/Avatar.js deleted file mode 100644 index 859cafdc8bd9..000000000000 --- a/apps/meteor/client/components/RoomAutoComplete/Avatar.js +++ /dev/null @@ -1,10 +0,0 @@ -import { Options } from '@rocket.chat/fuselage'; -import React from 'react'; - -import RoomAvatar from '../avatar/RoomAvatar'; - -const Avatar = ({ value, type, avatarETag, ...props }) => ( - -); - -export default Avatar; diff --git a/apps/meteor/client/components/RoomAutoComplete/Avatar.tsx b/apps/meteor/client/components/RoomAutoComplete/Avatar.tsx new file mode 100644 index 000000000000..d90fa71772b4 --- /dev/null +++ b/apps/meteor/client/components/RoomAutoComplete/Avatar.tsx @@ -0,0 +1,16 @@ +import { Options } from '@rocket.chat/fuselage'; +import React, { ReactElement } from 'react'; + +import RoomAvatar from '../avatar/RoomAvatar'; + +type AvatarProps = { + value: string; + type: string; + avatarETag?: string | undefined; +}; + +const Avatar = ({ value, type, avatarETag, ...props }: AvatarProps): ReactElement => ( + +); + +export default Avatar; diff --git a/apps/meteor/client/components/RoomAutoComplete/RoomAutoComplete.js b/apps/meteor/client/components/RoomAutoComplete/RoomAutoComplete.tsx similarity index 56% rename from apps/meteor/client/components/RoomAutoComplete/RoomAutoComplete.js rename to apps/meteor/client/components/RoomAutoComplete/RoomAutoComplete.tsx index 79c6ade0ff0a..762bd2cc7ed1 100644 --- a/apps/meteor/client/components/RoomAutoComplete/RoomAutoComplete.js +++ b/apps/meteor/client/components/RoomAutoComplete/RoomAutoComplete.tsx @@ -1,13 +1,22 @@ import { AutoComplete, Option, Box } from '@rocket.chat/fuselage'; -import React, { memo, useMemo, useState } from 'react'; +import React, { ComponentProps, memo, ReactElement, useMemo, useState } from 'react'; import { useEndpointData } from '../../hooks/useEndpointData'; import RoomAvatar from '../avatar/RoomAvatar'; import Avatar from './Avatar'; -const query = (term = '') => ({ selector: JSON.stringify({ name: term }) }); +const query = ( + term = '', +): { + selector: string; +} => ({ selector: JSON.stringify({ name: term }) }); -const RoomAutoComplete = (props) => { +type RoomAutoCompleteProps = Omit, 'value' | 'filter'> & { + value: any; +}; + +/* @deprecated */ +const RoomAutoComplete = (props: RoomAutoCompleteProps): ReactElement => { const [filter, setFilter] = useState(''); const { value: data } = useEndpointData( 'rooms.autocomplete.channelAndPrivate', @@ -15,21 +24,19 @@ const RoomAutoComplete = (props) => { ); const options = useMemo( () => - (data && - data.items.map(({ name, _id, avatarETag, t }) => ({ - value: _id, - label: { name, avatarETag, type: t }, - }))) || - [], + data?.items.map(({ name, _id, avatarETag, t }) => ({ + value: _id, + label: { name, avatarETag, type: t }, + })) || [], [data], - ); + ) as unknown as { value: string; label: string }[]; return ( ( + renderSelected={({ value, label }): ReactElement => ( <> {' '} @@ -39,7 +46,7 @@ const RoomAutoComplete = (props) => { )} - renderItem={({ value, label, ...props }) => ( + renderItem={({ value, label, ...props }): ReactElement => (