From e29405f3f12333d95e7829c9e3899f8d254f80fe Mon Sep 17 00:00:00 2001 From: juliajforesti Date: Wed, 18 May 2022 09:53:12 -0300 Subject: [PATCH 1/7] Convert apps/meteor/client/components/RoomAutoComplete folder to ts --- .../components/RoomAutoComplete/Avatar.js | 10 ------- .../components/RoomAutoComplete/Avatar.tsx | 16 ++++++++++++ ...omAutoComplete.js => RoomAutoComplete.tsx} | 26 ++++++++++--------- 3 files changed, 30 insertions(+), 22 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} (58%) 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 58% rename from apps/meteor/client/components/RoomAutoComplete/RoomAutoComplete.js rename to apps/meteor/client/components/RoomAutoComplete/RoomAutoComplete.tsx index 79c6ade0ff0a..edd07629fc23 100644 --- a/apps/meteor/client/components/RoomAutoComplete/RoomAutoComplete.js +++ b/apps/meteor/client/components/RoomAutoComplete/RoomAutoComplete.tsx @@ -1,13 +1,17 @@ import { AutoComplete, Option, Box } from '@rocket.chat/fuselage'; -import React, { memo, useMemo, useState } from 'react'; +import React, { ComponentPropsWithRef, 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) => { +const RoomAutoComplete = (props: ComponentPropsWithRef): ReactElement => { const [filter, setFilter] = useState(''); const { value: data } = useEndpointData( 'rooms.autocomplete.channelAndPrivate', @@ -15,12 +19,10 @@ 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], ); @@ -29,7 +31,7 @@ const RoomAutoComplete = (props) => { {...props} filter={filter} setFilter={setFilter} - renderSelected={({ value, label }) => ( + renderSelected={({ value, label }): ReactElement => ( <> {' '} @@ -39,10 +41,10 @@ const RoomAutoComplete = (props) => { )} - renderItem={({ value, label, ...props }) => ( + renderItem={({ value, label, ...props }): ReactElement => (