From eb04c321f307a012f1763f349f14f3bfcfcf17eb Mon Sep 17 00:00:00 2001 From: dougfabris Date: Tue, 2 Apr 2024 16:09:12 -0300 Subject: [PATCH] chore: remove duplicated code --- .../info/Delete/ChannelDeletionTable.tsx | 78 ------------------- .../info/Delete/ChannelDeletionTableRow.tsx | 35 --------- .../ChannelDeletionTable.tsx | 4 +- 3 files changed, 2 insertions(+), 115 deletions(-) delete mode 100644 apps/meteor/client/views/teams/contextualBar/info/Delete/ChannelDeletionTable.tsx delete mode 100644 apps/meteor/client/views/teams/contextualBar/info/Delete/ChannelDeletionTableRow.tsx diff --git a/apps/meteor/client/views/teams/contextualBar/info/Delete/ChannelDeletionTable.tsx b/apps/meteor/client/views/teams/contextualBar/info/Delete/ChannelDeletionTable.tsx deleted file mode 100644 index b04c0dbc7bf78..0000000000000 --- a/apps/meteor/client/views/teams/contextualBar/info/Delete/ChannelDeletionTable.tsx +++ /dev/null @@ -1,78 +0,0 @@ -import type { IRoom, Serialized } from '@rocket.chat/core-typings'; -import { Box, CheckBox } from '@rocket.chat/fuselage'; -import { useTranslation } from '@rocket.chat/ui-contexts'; -import React from 'react'; - -import { GenericTable, GenericTableHeaderCell, GenericTableBody, GenericTableHeader } from '../../../../../components/GenericTable'; -import { useSort } from '../../../../../components/GenericTable/hooks/useSort'; -import ChannelDeletionTableRow from './ChannelDeletionTableRow'; - -type ChannelDeletationTable = { - rooms: Serialized[]; - onToggleAllRooms: () => void; - onChangeRoomSelection: (room: Serialized) => void; - selectedRooms: { [key: string]: Serialized }; -}; - -const ChannelDeletionTable = ({ rooms, onChangeRoomSelection, selectedRooms, onToggleAllRooms }: ChannelDeletationTable) => { - const t = useTranslation(); - const { sortBy, sortDirection, setSort } = useSort<'name' | 'usersCount'>('name'); - - const selectedRoomsLength = Object.values(selectedRooms).filter(Boolean).length; - - const getSortedChannels = () => { - if (rooms) { - const sortedRooms = [...rooms]; - if (sortBy === 'name') { - sortedRooms.sort((a, b) => (a.name && b.name ? a.name.localeCompare(b.name) : 0)); - } - if (sortBy === 'usersCount') { - sortedRooms.sort((a, b) => a.usersCount - b.usersCount); - } - if (sortDirection === 'desc') { - return sortedRooms?.reverse(); - } - return sortedRooms; - } - }; - - const sortedRooms = getSortedChannels(); - - const checked = rooms.length === selectedRoomsLength; - const indeterminate = rooms.length > selectedRoomsLength && selectedRoomsLength > 0; - - const headers = ( - <> - - - {t('Channel_name')} - - - - {t('Members')} - - - - ); - - return ( - - - {headers} - - {sortedRooms?.map((room) => ( - - ))} - - - - ); -}; - -export default ChannelDeletionTable; diff --git a/apps/meteor/client/views/teams/contextualBar/info/Delete/ChannelDeletionTableRow.tsx b/apps/meteor/client/views/teams/contextualBar/info/Delete/ChannelDeletionTableRow.tsx deleted file mode 100644 index 7531d4c2b3f57..0000000000000 --- a/apps/meteor/client/views/teams/contextualBar/info/Delete/ChannelDeletionTableRow.tsx +++ /dev/null @@ -1,35 +0,0 @@ -import type { IRoom, Serialized } from '@rocket.chat/core-typings'; -import { CheckBox, Margins } from '@rocket.chat/fuselage'; -import { useMutableCallback } from '@rocket.chat/fuselage-hooks'; -import React from 'react'; - -import { GenericTableRow, GenericTableCell } from '../../../../../components/GenericTable'; -import { RoomIcon } from '../../../../../components/RoomIcon'; - -type ChannelDeletionTableRowProps = { - room: Serialized; - onChange: (room: Serialized) => void; - selected: boolean; -}; - -const ChannelDeletionTableRow = ({ room, onChange, selected }: ChannelDeletionTableRowProps) => { - const { name, fname, usersCount } = room; - const handleChange = useMutableCallback(() => onChange(room)); - - return ( - - - - - - {fname ?? name} - - - - {usersCount} - - - ); -}; - -export default ChannelDeletionTableRow; diff --git a/apps/meteor/client/views/teams/contextualBar/info/DeleteTeam/ChannelDeletionTable/ChannelDeletionTable.tsx b/apps/meteor/client/views/teams/contextualBar/info/DeleteTeam/ChannelDeletionTable/ChannelDeletionTable.tsx index fb5bf144372ba..4bd85aed663c9 100644 --- a/apps/meteor/client/views/teams/contextualBar/info/DeleteTeam/ChannelDeletionTable/ChannelDeletionTable.tsx +++ b/apps/meteor/client/views/teams/contextualBar/info/DeleteTeam/ChannelDeletionTable/ChannelDeletionTable.tsx @@ -7,14 +7,14 @@ import { GenericTable, GenericTableHeaderCell, GenericTableBody, GenericTableHea import { useSort } from '../../../../../../components/GenericTable/hooks/useSort'; import ChannelDeletionTableRow from './ChannelDeletionTableRow'; -type ChannelDeletationTable = { +type ChannelDeletionTableProps = { rooms: Serialized[]; onToggleAllRooms: () => void; onChangeRoomSelection: (room: Serialized) => void; selectedRooms: { [key: string]: Serialized }; }; -const ChannelDeletionTable = ({ rooms, onChangeRoomSelection, selectedRooms, onToggleAllRooms }: ChannelDeletationTable) => { +const ChannelDeletionTable = ({ rooms, onChangeRoomSelection, selectedRooms, onToggleAllRooms }: ChannelDeletionTableProps) => { const t = useTranslation(); const { sortBy, sortDirection, setSort } = useSort<'name' | 'usersCount'>('name');