diff --git a/apps/meteor/client/components/GenericNoResults/GenericNoResults.stories.tsx b/apps/meteor/client/components/GenericNoResults/GenericNoResults.stories.tsx
new file mode 100644
index 0000000000000..e26a23cacf4b1
--- /dev/null
+++ b/apps/meteor/client/components/GenericNoResults/GenericNoResults.stories.tsx
@@ -0,0 +1,30 @@
+import { TextInput, Box, Icon } from '@rocket.chat/fuselage';
+import type { Meta, StoryFn } from '@storybook/react';
+
+import GenericNoResults from './GenericNoResults';
+
+export default {
+ component: GenericNoResults,
+ parameters: {
+ layout: 'padded',
+ actions: { argTypesRegex: '^on.*' },
+ },
+ decorators: [
+ (fn) =>
{fn()}
,
+ ],
+} satisfies Meta;
+
+const filter = (
+ <>
+
+ } />
+
+ >
+);
+
+export const NoResults: StoryFn = () => (
+ <>
+ {filter}
+
+ >
+);
diff --git a/apps/meteor/client/components/deviceManagement/DeviceManagementTable/DeviceManagementTable.tsx b/apps/meteor/client/components/deviceManagement/DeviceManagementTable/DeviceManagementTable.tsx
index b41e2dd9627ca..9041d9975b849 100644
--- a/apps/meteor/client/components/deviceManagement/DeviceManagementTable/DeviceManagementTable.tsx
+++ b/apps/meteor/client/components/deviceManagement/DeviceManagementTable/DeviceManagementTable.tsx
@@ -1,12 +1,12 @@
import type { DeviceManagementSession, DeviceManagementPopulatedSession, Serialized } from '@rocket.chat/core-typings';
import { Box, Pagination, States, StatesAction, StatesActions, StatesIcon, StatesSubtitle, StatesTitle } from '@rocket.chat/fuselage';
import type { PaginatedResult } from '@rocket.chat/rest-typings';
+import { GenericTable, GenericTableHeader, GenericTableBody, GenericTableLoadingTable } from '@rocket.chat/ui-client';
import type { UseQueryResult } from '@tanstack/react-query';
import type { ComponentProps, ReactElement } from 'react';
import { useTranslation } from 'react-i18next';
import GenericNoResults from '../../GenericNoResults/GenericNoResults';
-import { GenericTable, GenericTableHeader, GenericTableBody, GenericTableLoadingTable } from '../../GenericTable';
// FIXME: this tight coupling with the query result is not ideal; it indicates visual components should not be tightly
// coupled with data fetching logic.
diff --git a/apps/meteor/client/views/account/deviceManagement/DeviceManagementAccountTable/DeviceManagementAccountRow.tsx b/apps/meteor/client/views/account/deviceManagement/DeviceManagementAccountTable/DeviceManagementAccountRow.tsx
index 6902cbe2b3dda..72561423c9431 100644
--- a/apps/meteor/client/views/account/deviceManagement/DeviceManagementAccountTable/DeviceManagementAccountRow.tsx
+++ b/apps/meteor/client/views/account/deviceManagement/DeviceManagementAccountTable/DeviceManagementAccountRow.tsx
@@ -1,9 +1,9 @@
import { Box, Button } from '@rocket.chat/fuselage';
import { useMediaQuery } from '@rocket.chat/fuselage-hooks';
+import { GenericTableCell, GenericTableRow } from '@rocket.chat/ui-client';
import type { ReactElement } from 'react';
import { useTranslation } from 'react-i18next';
-import { GenericTableCell, GenericTableRow } from '../../../../components/GenericTable';
import DeviceIcon from '../../../../components/deviceManagement/DeviceIcon';
import { useDeviceLogout } from '../../../../hooks/useDeviceLogout';
import { useFormatDateAndTime } from '../../../../hooks/useFormatDateAndTime';
diff --git a/apps/meteor/client/views/account/deviceManagement/DeviceManagementAccountTable/DeviceManagementAccountTable.tsx b/apps/meteor/client/views/account/deviceManagement/DeviceManagementAccountTable/DeviceManagementAccountTable.tsx
index 6473b0101d528..a865e5511e686 100644
--- a/apps/meteor/client/views/account/deviceManagement/DeviceManagementAccountTable/DeviceManagementAccountTable.tsx
+++ b/apps/meteor/client/views/account/deviceManagement/DeviceManagementAccountTable/DeviceManagementAccountTable.tsx
@@ -1,4 +1,5 @@
import { useMediaQuery } from '@rocket.chat/fuselage-hooks';
+import { GenericTableHeaderCell, usePagination, useSort } from '@rocket.chat/ui-client';
import { useEndpoint } from '@rocket.chat/ui-contexts';
import { useQuery } from '@tanstack/react-query';
import type { ReactElement } from 'react';
@@ -6,9 +7,6 @@ import { useMemo } from 'react';
import { useTranslation } from 'react-i18next';
import DeviceManagementAccountRow from './DeviceManagementAccountRow';
-import { GenericTableHeaderCell } from '../../../../components/GenericTable';
-import { usePagination } from '../../../../components/GenericTable/hooks/usePagination';
-import { useSort } from '../../../../components/GenericTable/hooks/useSort';
import DeviceManagementTable from '../../../../components/deviceManagement/DeviceManagementTable';
import { deviceManagementQueryKeys } from '../../../../lib/queryKeys';
diff --git a/apps/meteor/client/views/account/tokens/AccountTokensTable/AccountTokensRow.tsx b/apps/meteor/client/views/account/tokens/AccountTokensTable/AccountTokensRow.tsx
index 7602333287101..c257506a5b223 100644
--- a/apps/meteor/client/views/account/tokens/AccountTokensTable/AccountTokensRow.tsx
+++ b/apps/meteor/client/views/account/tokens/AccountTokensTable/AccountTokensRow.tsx
@@ -1,9 +1,9 @@
import type { IPersonalAccessToken, Serialized } from '@rocket.chat/core-typings';
import { ButtonGroup, IconButton } from '@rocket.chat/fuselage';
+import { GenericTableRow, GenericTableCell } from '@rocket.chat/ui-client';
import { useCallback } from 'react';
import { useTranslation } from 'react-i18next';
-import { GenericTableRow, GenericTableCell } from '../../../../components/GenericTable';
import { useFormatDateAndTime } from '../../../../hooks/useFormatDateAndTime';
type AccountTokensRowProps = {
diff --git a/apps/meteor/client/views/account/tokens/AccountTokensTable/AccountTokensTable.tsx b/apps/meteor/client/views/account/tokens/AccountTokensTable/AccountTokensTable.tsx
index 5c32f5346d0ee..3aa325e6f6865 100644
--- a/apps/meteor/client/views/account/tokens/AccountTokensTable/AccountTokensTable.tsx
+++ b/apps/meteor/client/views/account/tokens/AccountTokensTable/AccountTokensTable.tsx
@@ -1,5 +1,13 @@
import { Box, Pagination, States, StatesAction, StatesActions, StatesIcon, StatesSubtitle, StatesTitle } from '@rocket.chat/fuselage';
-import { GenericModal } from '@rocket.chat/ui-client';
+import {
+ GenericModal,
+ GenericTable,
+ GenericTableHeader,
+ GenericTableBody,
+ GenericTableLoadingTable,
+ GenericTableHeaderCell,
+ usePagination,
+} from '@rocket.chat/ui-client';
import { useSetModal, useToastMessageDispatch, useUserId, useMethod, useEndpoint } from '@rocket.chat/ui-contexts';
import { useQuery, useQueryClient } from '@tanstack/react-query';
import DOMPurify from 'dompurify';
@@ -10,14 +18,6 @@ import { useTranslation } from 'react-i18next';
import AccountTokensRow from './AccountTokensRow';
import AddToken from './AddToken';
import GenericNoResults from '../../../../components/GenericNoResults';
-import {
- GenericTable,
- GenericTableHeader,
- GenericTableBody,
- GenericTableLoadingTable,
- GenericTableHeaderCell,
-} from '../../../../components/GenericTable';
-import { usePagination } from '../../../../components/GenericTable/hooks/usePagination';
import { useResizeInlineBreakpoint } from '../../../../hooks/useResizeInlineBreakpoint';
import { miscQueryKeys } from '../../../../lib/queryKeys';
diff --git a/apps/meteor/client/views/admin/customEmoji/CustomEmoji.tsx b/apps/meteor/client/views/admin/customEmoji/CustomEmoji.tsx
index e0476e26ff47d..b5a1273924588 100644
--- a/apps/meteor/client/views/admin/customEmoji/CustomEmoji.tsx
+++ b/apps/meteor/client/views/admin/customEmoji/CustomEmoji.tsx
@@ -1,12 +1,5 @@
import { Box, Pagination, States, StatesActions, StatesAction, StatesIcon, StatesTitle } from '@rocket.chat/fuselage';
import { useDebouncedValue } from '@rocket.chat/fuselage-hooks';
-import { useTranslation, useEndpoint } from '@rocket.chat/ui-contexts';
-import { useQuery } from '@tanstack/react-query';
-import type { MutableRefObject } from 'react';
-import { useEffect, useMemo, useState } from 'react';
-
-import FilterByText from '../../../components/FilterByText';
-import GenericNoResults from '../../../components/GenericNoResults';
import {
GenericTable,
GenericTableBody,
@@ -15,9 +8,16 @@ import {
GenericTableHeaderCell,
GenericTableLoadingTable,
GenericTableRow,
-} from '../../../components/GenericTable';
-import { usePagination } from '../../../components/GenericTable/hooks/usePagination';
-import { useSort } from '../../../components/GenericTable/hooks/useSort';
+ usePagination,
+ useSort,
+} from '@rocket.chat/ui-client';
+import { useTranslation, useEndpoint } from '@rocket.chat/ui-contexts';
+import { useQuery } from '@tanstack/react-query';
+import type { MutableRefObject } from 'react';
+import { useEffect, useMemo, useState } from 'react';
+
+import FilterByText from '../../../components/FilterByText';
+import GenericNoResults from '../../../components/GenericNoResults';
type CustomEmojiProps = {
reload: MutableRefObject<() => void>;
diff --git a/apps/meteor/client/views/admin/customSounds/CustomSoundsTable/CustomSoundRow.tsx b/apps/meteor/client/views/admin/customSounds/CustomSoundsTable/CustomSoundRow.tsx
index e7c9d0292b5b7..b8648b40935ac 100644
--- a/apps/meteor/client/views/admin/customSounds/CustomSoundsTable/CustomSoundRow.tsx
+++ b/apps/meteor/client/views/admin/customSounds/CustomSoundsTable/CustomSoundRow.tsx
@@ -1,12 +1,11 @@
import type { ICustomSound } from '@rocket.chat/core-typings';
import { Box, IconButton } from '@rocket.chat/fuselage';
+import { GenericTableCell, GenericTableRow } from '@rocket.chat/ui-client';
import { useCustomSound } from '@rocket.chat/ui-contexts';
import type { ReactElement } from 'react';
import { useCallback, useState } from 'react';
import { useTranslation } from 'react-i18next';
-import { GenericTableCell, GenericTableRow } from '../../../../components/GenericTable';
-
type CustomSoundRowProps = {
onClick: (soundId: ICustomSound['_id']) => () => void;
sound: {
diff --git a/apps/meteor/client/views/admin/customSounds/CustomSoundsTable/CustomSoundsTable.tsx b/apps/meteor/client/views/admin/customSounds/CustomSoundsTable/CustomSoundsTable.tsx
index 7a70ec984815c..e200a994d174b 100644
--- a/apps/meteor/client/views/admin/customSounds/CustomSoundsTable/CustomSoundsTable.tsx
+++ b/apps/meteor/client/views/admin/customSounds/CustomSoundsTable/CustomSoundsTable.tsx
@@ -1,5 +1,14 @@
import { Pagination, States, StatesIcon, StatesActions, StatesAction, StatesTitle } from '@rocket.chat/fuselage';
import { useDebouncedValue } from '@rocket.chat/fuselage-hooks';
+import {
+ GenericTable,
+ GenericTableBody,
+ GenericTableHeader,
+ GenericTableHeaderCell,
+ GenericTableLoadingTable,
+ usePagination,
+ useSort,
+} from '@rocket.chat/ui-client';
import { useTranslation, useEndpoint } from '@rocket.chat/ui-contexts';
import { useQuery } from '@tanstack/react-query';
import type { MutableRefObject } from 'react';
@@ -8,15 +17,6 @@ import { useState, useMemo, useEffect } from 'react';
import CustomSoundRow from './CustomSoundRow';
import FilterByText from '../../../../components/FilterByText';
import GenericNoResults from '../../../../components/GenericNoResults';
-import {
- GenericTable,
- GenericTableBody,
- GenericTableHeader,
- GenericTableHeaderCell,
- GenericTableLoadingTable,
-} from '../../../../components/GenericTable';
-import { usePagination } from '../../../../components/GenericTable/hooks/usePagination';
-import { useSort } from '../../../../components/GenericTable/hooks/useSort';
type CustomSoundsTableProps = {
onClick: (soundId: string) => () => void;
diff --git a/apps/meteor/client/views/admin/customUserStatus/CustomUserStatusTable/CustomUserStatusRow.tsx b/apps/meteor/client/views/admin/customUserStatus/CustomUserStatusTable/CustomUserStatusRow.tsx
index 667c7d815c4b7..de550a7c05424 100644
--- a/apps/meteor/client/views/admin/customUserStatus/CustomUserStatusTable/CustomUserStatusRow.tsx
+++ b/apps/meteor/client/views/admin/customUserStatus/CustomUserStatusTable/CustomUserStatusRow.tsx
@@ -1,8 +1,8 @@
import type { IUserStatus } from '@rocket.chat/core-typings';
+import { GenericTableRow, GenericTableCell } from '@rocket.chat/ui-client';
import type { CSSProperties, ReactElement } from 'react';
import { useTranslation } from 'react-i18next';
-import { GenericTableRow, GenericTableCell } from '../../../../components/GenericTable';
import MarkdownText from '../../../../components/MarkdownText';
const style: CSSProperties = { whiteSpace: 'nowrap', textOverflow: 'ellipsis', overflow: 'hidden' };
diff --git a/apps/meteor/client/views/admin/customUserStatus/CustomUserStatusTable/CustomUserStatusTable.tsx b/apps/meteor/client/views/admin/customUserStatus/CustomUserStatusTable/CustomUserStatusTable.tsx
index 0c7b3223902c2..d3791a6627cf2 100644
--- a/apps/meteor/client/views/admin/customUserStatus/CustomUserStatusTable/CustomUserStatusTable.tsx
+++ b/apps/meteor/client/views/admin/customUserStatus/CustomUserStatusTable/CustomUserStatusTable.tsx
@@ -1,6 +1,15 @@
import { Pagination } from '@rocket.chat/fuselage';
import { useDebouncedValue } from '@rocket.chat/fuselage-hooks';
import { escapeRegExp } from '@rocket.chat/string-helpers';
+import {
+ GenericTable,
+ GenericTableHeader,
+ GenericTableHeaderCell,
+ GenericTableBody,
+ GenericTableLoadingTable,
+ usePagination,
+ useSort,
+} from '@rocket.chat/ui-client';
import { useEndpoint } from '@rocket.chat/ui-contexts';
import { useQuery } from '@tanstack/react-query';
import type { ReactElement, MutableRefObject } from 'react';
@@ -10,15 +19,6 @@ import { useTranslation } from 'react-i18next';
import CustomUserStatusRow from './CustomUserStatusRow';
import FilterByText from '../../../../components/FilterByText';
import GenericNoResult from '../../../../components/GenericNoResults';
-import {
- GenericTable,
- GenericTableHeader,
- GenericTableHeaderCell,
- GenericTableBody,
- GenericTableLoadingTable,
-} from '../../../../components/GenericTable';
-import { usePagination } from '../../../../components/GenericTable/hooks/usePagination';
-import { useSort } from '../../../../components/GenericTable/hooks/useSort';
type CustomUserStatusProps = {
reload: MutableRefObject<() => void>;
diff --git a/apps/meteor/client/views/admin/deviceManagement/DeviceManagementAdminTable/DeviceManagementAdminRow.tsx b/apps/meteor/client/views/admin/deviceManagement/DeviceManagementAdminTable/DeviceManagementAdminRow.tsx
index a7593cd6706e6..53d5a8d93950b 100644
--- a/apps/meteor/client/views/admin/deviceManagement/DeviceManagementAdminTable/DeviceManagementAdminRow.tsx
+++ b/apps/meteor/client/views/admin/deviceManagement/DeviceManagementAdminTable/DeviceManagementAdminRow.tsx
@@ -1,13 +1,12 @@
import { Box } from '@rocket.chat/fuselage';
import { useMediaQuery, useEffectEvent } from '@rocket.chat/fuselage-hooks';
import type { GenericMenuItemProps } from '@rocket.chat/ui-client';
-import { GenericMenu } from '@rocket.chat/ui-client';
+import { GenericMenu, GenericTableRow, GenericTableCell } from '@rocket.chat/ui-client';
import { useRoute } from '@rocket.chat/ui-contexts';
import type { KeyboardEvent } from 'react';
import { useCallback } from 'react';
import { useTranslation } from 'react-i18next';
-import { GenericTableRow, GenericTableCell } from '../../../../components/GenericTable';
import DeviceIcon from '../../../../components/deviceManagement/DeviceIcon';
import { useDeviceLogout } from '../../../../hooks/useDeviceLogout';
import { useFormatDateAndTime } from '../../../../hooks/useFormatDateAndTime';
diff --git a/apps/meteor/client/views/admin/deviceManagement/DeviceManagementAdminTable/DeviceManagementAdminTable.tsx b/apps/meteor/client/views/admin/deviceManagement/DeviceManagementAdminTable/DeviceManagementAdminTable.tsx
index 6861114b2f081..3037c63ce4395 100644
--- a/apps/meteor/client/views/admin/deviceManagement/DeviceManagementAdminTable/DeviceManagementAdminTable.tsx
+++ b/apps/meteor/client/views/admin/deviceManagement/DeviceManagementAdminTable/DeviceManagementAdminTable.tsx
@@ -1,5 +1,6 @@
import type { DeviceManagementPopulatedSession, DeviceManagementSession, Serialized } from '@rocket.chat/core-typings';
import { useDebouncedValue, useMediaQuery } from '@rocket.chat/fuselage-hooks';
+import { GenericTableHeaderCell, usePagination, useSort } from '@rocket.chat/ui-client';
import { useEndpoint } from '@rocket.chat/ui-contexts';
import { useQuery } from '@tanstack/react-query';
import { useState, useMemo } from 'react';
@@ -7,9 +8,6 @@ import { useTranslation } from 'react-i18next';
import DeviceManagementAdminRow from './DeviceManagementAdminRow';
import FilterByText from '../../../../components/FilterByText';
-import { GenericTableHeaderCell } from '../../../../components/GenericTable';
-import { usePagination } from '../../../../components/GenericTable/hooks/usePagination';
-import { useSort } from '../../../../components/GenericTable/hooks/useSort';
import DeviceManagementTable from '../../../../components/deviceManagement/DeviceManagementTable';
import { deviceManagementQueryKeys } from '../../../../lib/queryKeys';
diff --git a/apps/meteor/client/views/admin/emailInbox/EmailInboxTable.tsx b/apps/meteor/client/views/admin/emailInbox/EmailInboxTable.tsx
index 29cf66557e316..12aa90ecfb3e8 100644
--- a/apps/meteor/client/views/admin/emailInbox/EmailInboxTable.tsx
+++ b/apps/meteor/client/views/admin/emailInbox/EmailInboxTable.tsx
@@ -1,11 +1,4 @@
import { Pagination, States, StatesAction, StatesActions, StatesIcon, StatesTitle } from '@rocket.chat/fuselage';
-import { useRoute, useTranslation, useEndpoint } from '@rocket.chat/ui-contexts';
-import { useQuery } from '@tanstack/react-query';
-import type { ReactElement } from 'react';
-import { useMemo, useCallback } from 'react';
-
-import SendTestButton from './SendTestButton';
-import GenericNoResults from '../../../components/GenericNoResults';
import {
GenericTable,
GenericTableBody,
@@ -14,9 +7,16 @@ import {
GenericTableHeaderCell,
GenericTableLoadingTable,
GenericTableRow,
-} from '../../../components/GenericTable';
-import { usePagination } from '../../../components/GenericTable/hooks/usePagination';
-import { useSort } from '../../../components/GenericTable/hooks/useSort';
+ usePagination,
+ useSort,
+} from '@rocket.chat/ui-client';
+import { useRoute, useTranslation, useEndpoint } from '@rocket.chat/ui-contexts';
+import { useQuery } from '@tanstack/react-query';
+import type { ReactElement } from 'react';
+import { useMemo, useCallback } from 'react';
+
+import SendTestButton from './SendTestButton';
+import GenericNoResults from '../../../components/GenericNoResults';
const EmailInboxTable = (): ReactElement => {
const t = useTranslation();
diff --git a/apps/meteor/client/views/admin/emailInbox/SendTestButton.tsx b/apps/meteor/client/views/admin/emailInbox/SendTestButton.tsx
index fa4fa2bb1bdc3..4a99a461d4b7f 100644
--- a/apps/meteor/client/views/admin/emailInbox/SendTestButton.tsx
+++ b/apps/meteor/client/views/admin/emailInbox/SendTestButton.tsx
@@ -1,11 +1,10 @@
import type { IEmailInboxPayload } from '@rocket.chat/core-typings';
import { Button } from '@rocket.chat/fuselage';
+import { GenericTableCell } from '@rocket.chat/ui-client';
import { useToastMessageDispatch, useEndpoint } from '@rocket.chat/ui-contexts';
import type { MouseEvent, ReactElement } from 'react';
import { useTranslation } from 'react-i18next';
-import { GenericTableCell } from '../../../components/GenericTable';
-
const SendTestButton = ({ id }: { id: IEmailInboxPayload['_id'] }): ReactElement => {
const { t } = useTranslation();
const dispatchToastMessage = useToastMessageDispatch();
diff --git a/apps/meteor/client/views/admin/import/PrepareContacts.tsx b/apps/meteor/client/views/admin/import/PrepareContacts.tsx
index 54a6df2d4e0c3..6582ab76fef65 100644
--- a/apps/meteor/client/views/admin/import/PrepareContacts.tsx
+++ b/apps/meteor/client/views/admin/import/PrepareContacts.tsx
@@ -1,10 +1,9 @@
import type { IImporterSelectionContact } from '@rocket.chat/core-typings';
import { CheckBox, Table, Pagination, TableHead, TableRow, TableCell, TableBody } from '@rocket.chat/fuselage';
+import { usePagination } from '@rocket.chat/ui-client';
import type { Dispatch, SetStateAction, ChangeEvent } from 'react';
import { useTranslation } from 'react-i18next';
-import { usePagination } from '../../../components/GenericTable/hooks/usePagination';
-
type PrepareContactsProps = {
contactsCount: number;
contacts: IImporterSelectionContact[];
diff --git a/apps/meteor/client/views/admin/integrations/IntegrationRow.tsx b/apps/meteor/client/views/admin/integrations/IntegrationRow.tsx
index 2b63f9caceeb4..51f6097b523df 100644
--- a/apps/meteor/client/views/admin/integrations/IntegrationRow.tsx
+++ b/apps/meteor/client/views/admin/integrations/IntegrationRow.tsx
@@ -1,7 +1,7 @@
import type { IIntegration, Serialized } from '@rocket.chat/core-typings';
import { Box } from '@rocket.chat/fuselage';
+import { GenericTableCell, GenericTableRow } from '@rocket.chat/ui-client';
-import { GenericTableCell, GenericTableRow } from '../../../components/GenericTable';
import { useFormatDateAndTime } from '../../../hooks/useFormatDateAndTime';
type IntegrationRowProps = {
diff --git a/apps/meteor/client/views/admin/integrations/IntegrationsTable.tsx b/apps/meteor/client/views/admin/integrations/IntegrationsTable.tsx
index db932f488dab1..f80ec353cc056 100644
--- a/apps/meteor/client/views/admin/integrations/IntegrationsTable.tsx
+++ b/apps/meteor/client/views/admin/integrations/IntegrationsTable.tsx
@@ -1,6 +1,15 @@
import { Pagination, States, StatesActions, StatesAction, StatesIcon, StatesTitle } from '@rocket.chat/fuselage';
import { useDebouncedValue } from '@rocket.chat/fuselage-hooks';
import { escapeRegExp } from '@rocket.chat/string-helpers';
+import {
+ GenericTable,
+ GenericTableBody,
+ GenericTableHeader,
+ GenericTableHeaderCell,
+ GenericTableLoadingTable,
+ usePagination,
+ useSort,
+} from '@rocket.chat/ui-client';
import { useEndpoint, useRoute, useTranslation, useLayout } from '@rocket.chat/ui-contexts';
import { useQuery } from '@tanstack/react-query';
import { useMemo, useCallback, useState } from 'react';
@@ -8,15 +17,6 @@ import { useMemo, useCallback, useState } from 'react';
import IntegrationRow from './IntegrationRow';
import FilterByText from '../../../components/FilterByText';
import GenericNoResults from '../../../components/GenericNoResults';
-import {
- GenericTable,
- GenericTableBody,
- GenericTableHeader,
- GenericTableHeaderCell,
- GenericTableLoadingTable,
-} from '../../../components/GenericTable';
-import { usePagination } from '../../../components/GenericTable/hooks/usePagination';
-import { useSort } from '../../../components/GenericTable/hooks/useSort';
const IntegrationsTable = ({ type }: { type?: string }) => {
const t = useTranslation();
diff --git a/apps/meteor/client/views/admin/integrations/outgoing/history/OutgoingWebhookHistoryPage.tsx b/apps/meteor/client/views/admin/integrations/outgoing/history/OutgoingWebhookHistoryPage.tsx
index 06e1de7b64c15..8f8ea6ec1f543 100644
--- a/apps/meteor/client/views/admin/integrations/outgoing/history/OutgoingWebhookHistoryPage.tsx
+++ b/apps/meteor/client/views/admin/integrations/outgoing/history/OutgoingWebhookHistoryPage.tsx
@@ -1,5 +1,5 @@
import { Button, ButtonGroup, Pagination } from '@rocket.chat/fuselage';
-import { CustomScrollbars } from '@rocket.chat/ui-client';
+import { CustomScrollbars, usePagination } from '@rocket.chat/ui-client';
import { useToastMessageDispatch, useRouteParameter, useMethod, useTranslation, useEndpoint, useRouter } from '@rocket.chat/ui-contexts';
import { useQuery, useQueryClient } from '@tanstack/react-query';
import type { ComponentProps } from 'react';
@@ -7,7 +7,6 @@ import { useMemo, useState, useEffect } from 'react';
import HistoryContent from './HistoryContent';
import { sdk } from '../../../../../../app/utils/client/lib/SDKClient';
-import { usePagination } from '../../../../../components/GenericTable/hooks/usePagination';
import { Page, PageHeader, PageContent } from '../../../../../components/Page';
const OutgoingWebhookHistoryPage = (props: ComponentProps) => {
diff --git a/apps/meteor/client/views/admin/invites/InviteRow.tsx b/apps/meteor/client/views/admin/invites/InviteRow.tsx
index b585cac8a92f9..31fe9f1f0166f 100644
--- a/apps/meteor/client/views/admin/invites/InviteRow.tsx
+++ b/apps/meteor/client/views/admin/invites/InviteRow.tsx
@@ -1,11 +1,11 @@
import type { IInvite } from '@rocket.chat/core-typings';
import { Box, IconButton } from '@rocket.chat/fuselage';
import { useMediaQuery } from '@rocket.chat/fuselage-hooks';
+import { GenericTableCell, GenericTableRow } from '@rocket.chat/ui-client';
import { useEndpoint } from '@rocket.chat/ui-contexts';
import type { ReactElement, MouseEvent } from 'react';
import { useTranslation } from 'react-i18next';
-import { GenericTableCell, GenericTableRow } from '../../../components/GenericTable';
import { useFormatDateAndTime } from '../../../hooks/useFormatDateAndTime';
import { useTimeFromNow } from '../../../hooks/useTimeFromNow';
diff --git a/apps/meteor/client/views/admin/invites/InvitesPage.tsx b/apps/meteor/client/views/admin/invites/InvitesPage.tsx
index ab5f0076589e0..db708c2d1c06f 100644
--- a/apps/meteor/client/views/admin/invites/InvitesPage.tsx
+++ b/apps/meteor/client/views/admin/invites/InvitesPage.tsx
@@ -1,6 +1,13 @@
import { States, StatesIcon, StatesTitle, StatesActions, StatesAction } from '@rocket.chat/fuselage';
import { useMediaQuery } from '@rocket.chat/fuselage-hooks';
-import { GenericModal } from '@rocket.chat/ui-client';
+import {
+ GenericModal,
+ GenericTable,
+ GenericTableBody,
+ GenericTableHeader,
+ GenericTableHeaderCell,
+ GenericTableLoadingTable,
+} from '@rocket.chat/ui-client';
import { useSetModal, useToastMessageDispatch, useTranslation, useEndpoint } from '@rocket.chat/ui-contexts';
import { useQuery } from '@tanstack/react-query';
import type { ReactElement } from 'react';
@@ -8,13 +15,6 @@ import { useMemo } from 'react';
import InviteRow from './InviteRow';
import GenericNoResults from '../../../components/GenericNoResults';
-import {
- GenericTable,
- GenericTableBody,
- GenericTableHeader,
- GenericTableHeaderCell,
- GenericTableLoadingTable,
-} from '../../../components/GenericTable';
import { Page, PageHeader, PageContent } from '../../../components/Page';
const InvitesPage = (): ReactElement => {
diff --git a/apps/meteor/client/views/admin/moderation/ModerationConsoleTable.tsx b/apps/meteor/client/views/admin/moderation/ModerationConsoleTable.tsx
index 816bec605bcea..61e2af1211690 100644
--- a/apps/meteor/client/views/admin/moderation/ModerationConsoleTable.tsx
+++ b/apps/meteor/client/views/admin/moderation/ModerationConsoleTable.tsx
@@ -1,6 +1,15 @@
import type { IUser } from '@rocket.chat/core-typings';
import { Pagination } from '@rocket.chat/fuselage';
import { useDebouncedValue, useMediaQuery, useEffectEvent } from '@rocket.chat/fuselage-hooks';
+import {
+ GenericTable,
+ GenericTableLoadingTable,
+ GenericTableHeaderCell,
+ GenericTableBody,
+ GenericTableHeader,
+ usePagination,
+ useSort,
+} from '@rocket.chat/ui-client';
import { useEndpoint, useRouter } from '@rocket.chat/ui-contexts';
import { keepPreviousData, useQuery } from '@tanstack/react-query';
import { useMemo, useState } from 'react';
@@ -9,15 +18,6 @@ import { useTranslation } from 'react-i18next';
import ModerationConsoleTableRow from './ModerationConsoleTableRow';
import ModerationFilter from './helpers/ModerationFilter';
import GenericNoResults from '../../../components/GenericNoResults';
-import {
- GenericTable,
- GenericTableLoadingTable,
- GenericTableHeaderCell,
- GenericTableBody,
- GenericTableHeader,
-} from '../../../components/GenericTable';
-import { usePagination } from '../../../components/GenericTable/hooks/usePagination';
-import { useSort } from '../../../components/GenericTable/hooks/useSort';
// TODO: Missing error state
const ModerationConsoleTable = () => {
diff --git a/apps/meteor/client/views/admin/moderation/ModerationConsoleTableRow.tsx b/apps/meteor/client/views/admin/moderation/ModerationConsoleTableRow.tsx
index 46e25da4c7abc..5b3d6484306f8 100644
--- a/apps/meteor/client/views/admin/moderation/ModerationConsoleTableRow.tsx
+++ b/apps/meteor/client/views/admin/moderation/ModerationConsoleTableRow.tsx
@@ -1,8 +1,8 @@
import type { IModerationAudit, IUser } from '@rocket.chat/core-typings';
+import { GenericTableCell, GenericTableRow } from '@rocket.chat/ui-client';
import ModerationConsoleActions from './ModerationConsoleActions';
import UserColumn from './helpers/UserColumn';
-import { GenericTableCell, GenericTableRow } from '../../../components/GenericTable';
import { useFormatDateAndTime } from '../../../hooks/useFormatDateAndTime';
export type ModerationConsoleRowProps = {
diff --git a/apps/meteor/client/views/admin/moderation/UserReports/ModConsoleUserTableRow.tsx b/apps/meteor/client/views/admin/moderation/UserReports/ModConsoleUserTableRow.tsx
index 3e543b5f9d63a..b70fdfc49ab35 100644
--- a/apps/meteor/client/views/admin/moderation/UserReports/ModConsoleUserTableRow.tsx
+++ b/apps/meteor/client/views/admin/moderation/UserReports/ModConsoleUserTableRow.tsx
@@ -1,7 +1,7 @@
import type { IUser, UserReport, Serialized } from '@rocket.chat/core-typings';
+import { GenericTableCell, GenericTableRow } from '@rocket.chat/ui-client';
import ModConsoleUserActions from './ModConsoleUserActions';
-import { GenericTableCell, GenericTableRow } from '../../../../components/GenericTable';
import { useFormatDateAndTime } from '../../../../hooks/useFormatDateAndTime';
import UserColumn from '../helpers/UserColumn';
diff --git a/apps/meteor/client/views/admin/moderation/UserReports/ModConsoleUsersTable.tsx b/apps/meteor/client/views/admin/moderation/UserReports/ModConsoleUsersTable.tsx
index 87af70d210449..6a21d7d1ed85c 100644
--- a/apps/meteor/client/views/admin/moderation/UserReports/ModConsoleUsersTable.tsx
+++ b/apps/meteor/client/views/admin/moderation/UserReports/ModConsoleUsersTable.tsx
@@ -1,6 +1,15 @@
import type { IUser } from '@rocket.chat/core-typings';
import { Pagination, States, StatesAction, StatesActions, StatesIcon, StatesTitle } from '@rocket.chat/fuselage';
import { useDebouncedValue, useMediaQuery, useEffectEvent } from '@rocket.chat/fuselage-hooks';
+import {
+ GenericTable,
+ GenericTableLoadingTable,
+ GenericTableHeaderCell,
+ GenericTableBody,
+ GenericTableHeader,
+ usePagination,
+ useSort,
+} from '@rocket.chat/ui-client';
import { useEndpoint, useRouter } from '@rocket.chat/ui-contexts';
import { keepPreviousData, useQuery } from '@tanstack/react-query';
import { useMemo, useState } from 'react';
@@ -8,15 +17,6 @@ import { useTranslation } from 'react-i18next';
import ModConsoleUserTableRow from './ModConsoleUserTableRow';
import GenericNoResults from '../../../../components/GenericNoResults';
-import {
- GenericTable,
- GenericTableLoadingTable,
- GenericTableHeaderCell,
- GenericTableBody,
- GenericTableHeader,
-} from '../../../../components/GenericTable';
-import { usePagination } from '../../../../components/GenericTable/hooks/usePagination';
-import { useSort } from '../../../../components/GenericTable/hooks/useSort';
import ModerationFilter from '../helpers/ModerationFilter';
const ModConsoleUsersTable = () => {
diff --git a/apps/meteor/client/views/admin/oauthApps/OAuthAppsTable.tsx b/apps/meteor/client/views/admin/oauthApps/OAuthAppsTable.tsx
index 01398427eb180..b30ecfccd9d83 100644
--- a/apps/meteor/client/views/admin/oauthApps/OAuthAppsTable.tsx
+++ b/apps/meteor/client/views/admin/oauthApps/OAuthAppsTable.tsx
@@ -1,9 +1,3 @@
-import { useEndpoint, useRoute, useTranslation, useUserId } from '@rocket.chat/ui-contexts';
-import { useQuery } from '@tanstack/react-query';
-import type { ReactElement } from 'react';
-import { useCallback } from 'react';
-
-import GenericNoResults from '../../../components/GenericNoResults';
import {
GenericTableHeaderCell,
GenericTable,
@@ -12,7 +6,13 @@ import {
GenericTableCell,
GenericTableBody,
GenericTableLoadingRow,
-} from '../../../components/GenericTable';
+} from '@rocket.chat/ui-client';
+import { useEndpoint, useRoute, useTranslation, useUserId } from '@rocket.chat/ui-contexts';
+import { useQuery } from '@tanstack/react-query';
+import type { ReactElement } from 'react';
+import { useCallback } from 'react';
+
+import GenericNoResults from '../../../components/GenericNoResults';
import { useFormatDateAndTime } from '../../../hooks/useFormatDateAndTime';
const OAuthAppsTable = (): ReactElement => {
diff --git a/apps/meteor/client/views/admin/permissions/PermissionsPage.tsx b/apps/meteor/client/views/admin/permissions/PermissionsPage.tsx
index 19f7fbc343206..01d98867dce71 100644
--- a/apps/meteor/client/views/admin/permissions/PermissionsPage.tsx
+++ b/apps/meteor/client/views/admin/permissions/PermissionsPage.tsx
@@ -1,5 +1,6 @@
import { Margins, Tabs, Button } from '@rocket.chat/fuselage';
import { useEffectEvent } from '@rocket.chat/fuselage-hooks';
+import { usePagination } from '@rocket.chat/ui-client';
import { useRoute, usePermission, useSetModal } from '@rocket.chat/ui-contexts';
import type { ReactElement } from 'react';
import { useState } from 'react';
@@ -9,7 +10,6 @@ import CustomRoleUpsellModal from './CustomRoleUpsellModal';
import PermissionsContextBar from './PermissionsContextBar';
import PermissionsTable from './PermissionsTable';
import { usePermissionsAndRoles } from './hooks/usePermissionsAndRoles';
-import { usePagination } from '../../../components/GenericTable/hooks/usePagination';
import { Page, PageHeader, PageContent } from '../../../components/Page';
const PermissionsPage = ({ isEnterprise }: { isEnterprise: boolean }): ReactElement => {
diff --git a/apps/meteor/client/views/admin/permissions/PermissionsTable/PermissionRow.tsx b/apps/meteor/client/views/admin/permissions/PermissionsTable/PermissionRow.tsx
index 2c0392e7f761b..7706a5ea861f6 100644
--- a/apps/meteor/client/views/admin/permissions/PermissionsTable/PermissionRow.tsx
+++ b/apps/meteor/client/views/admin/permissions/PermissionsTable/PermissionRow.tsx
@@ -1,4 +1,5 @@
import type { IRole, IPermission } from '@rocket.chat/core-typings';
+import { GenericTableRow, GenericTableCell } from '@rocket.chat/ui-client';
import type { TranslationKey } from '@rocket.chat/ui-contexts';
import type { TFunction } from 'i18next';
import type { ReactElement } from 'react';
@@ -7,7 +8,6 @@ import { useTranslation } from 'react-i18next';
import RoleCell from './RoleCell';
import { CONSTANTS } from '../../../../../app/authorization/lib';
-import { GenericTableRow, GenericTableCell } from '../../../../components/GenericTable';
import { useChangeRole } from '../hooks/useChangeRole';
const getName = (t: TFunction, permission: IPermission): string => {
diff --git a/apps/meteor/client/views/admin/permissions/PermissionsTable/PermissionsTable.tsx b/apps/meteor/client/views/admin/permissions/PermissionsTable/PermissionsTable.tsx
index b2aede0e32d9f..64171fb39e39a 100644
--- a/apps/meteor/client/views/admin/permissions/PermissionsTable/PermissionsTable.tsx
+++ b/apps/meteor/client/views/admin/permissions/PermissionsTable/PermissionsTable.tsx
@@ -1,6 +1,8 @@
import type { IPermission, IRole } from '@rocket.chat/core-typings';
import { css } from '@rocket.chat/css-in-js';
import { Pagination, Palette } from '@rocket.chat/fuselage';
+import { GenericTable, GenericTableHeader, GenericTableHeaderCell, GenericTableBody } from '@rocket.chat/ui-client';
+import type { usePagination } from '@rocket.chat/ui-client';
import { useMethod } from '@rocket.chat/ui-contexts';
import { useTranslation } from 'react-i18next';
@@ -8,8 +10,6 @@ import PermissionRow from './PermissionRow';
import PermissionsTableFilter from './PermissionsTableFilter';
import RoleHeader from './RoleHeader';
import GenericNoResults from '../../../../components/GenericNoResults';
-import { GenericTable, GenericTableHeader, GenericTableHeaderCell, GenericTableBody } from '../../../../components/GenericTable';
-import type { usePagination } from '../../../../components/GenericTable/hooks/usePagination';
type PermissionsTableProps = {
roleList: IRole[];
diff --git a/apps/meteor/client/views/admin/permissions/PermissionsTable/RoleCell.tsx b/apps/meteor/client/views/admin/permissions/PermissionsTable/RoleCell.tsx
index 70eddbafcc098..fa4590caae204 100644
--- a/apps/meteor/client/views/admin/permissions/PermissionsTable/RoleCell.tsx
+++ b/apps/meteor/client/views/admin/permissions/PermissionsTable/RoleCell.tsx
@@ -1,14 +1,13 @@
import type { IRole } from '@rocket.chat/core-typings';
import { Margins, Box, CheckBox, Throbber } from '@rocket.chat/fuselage';
import { useEffectEvent } from '@rocket.chat/fuselage-hooks';
-import { GenericModal } from '@rocket.chat/ui-client';
+import { GenericModal, GenericTableCell } from '@rocket.chat/ui-client';
import { useSetModal } from '@rocket.chat/ui-contexts';
import type { ReactElement } from 'react';
import { useState, memo } from 'react';
import { useTranslation } from 'react-i18next';
import { AuthorizationUtils, confirmationRequiredPermissions } from '../../../../../app/authorization/lib';
-import { GenericTableCell } from '../../../../components/GenericTable';
type RoleCellProps = {
_id: IRole['_id'];
diff --git a/apps/meteor/client/views/admin/permissions/PermissionsTable/RoleHeader.tsx b/apps/meteor/client/views/admin/permissions/PermissionsTable/RoleHeader.tsx
index 06c5d34f12c5b..13802704a14a3 100644
--- a/apps/meteor/client/views/admin/permissions/PermissionsTable/RoleHeader.tsx
+++ b/apps/meteor/client/views/admin/permissions/PermissionsTable/RoleHeader.tsx
@@ -1,12 +1,11 @@
import type { IRole } from '@rocket.chat/core-typings';
import { Button } from '@rocket.chat/fuselage';
import { useEffectEvent } from '@rocket.chat/fuselage-hooks';
+import { GenericTableHeaderCell } from '@rocket.chat/ui-client';
import { useRoute } from '@rocket.chat/ui-contexts';
import type { ReactElement } from 'react';
import { memo } from 'react';
-import { GenericTableHeaderCell } from '../../../../components/GenericTable';
-
type RoleHeaderProps = {
_id: IRole['_id'];
name: IRole['name'];
diff --git a/apps/meteor/client/views/admin/permissions/UsersInRole/UsersInRolePage.tsx b/apps/meteor/client/views/admin/permissions/UsersInRole/UsersInRolePage.tsx
index f65cd0a092f16..b54a22124cb63 100644
--- a/apps/meteor/client/views/admin/permissions/UsersInRole/UsersInRolePage.tsx
+++ b/apps/meteor/client/views/admin/permissions/UsersInRole/UsersInRolePage.tsx
@@ -1,6 +1,7 @@
import type { IRole, IRoom } from '@rocket.chat/core-typings';
import { Box, Field, FieldLabel, FieldRow, Margins, ButtonGroup, Button, Callout, FieldError } from '@rocket.chat/fuselage';
import { useEffectEvent } from '@rocket.chat/fuselage-hooks';
+import { usePagination } from '@rocket.chat/ui-client';
import { useToastMessageDispatch, useEndpoint, useRouter } from '@rocket.chat/ui-contexts';
import { useQuery, useQueryClient } from '@tanstack/react-query';
import { useId, useMemo, type ReactElement } from 'react';
@@ -9,7 +10,6 @@ import { useTranslation } from 'react-i18next';
import UsersInRoleTable from './UsersInRoleTable';
import { useRemoveUserFromRole } from './hooks/useRemoveUserFromRole';
-import { usePagination } from '../../../../components/GenericTable/hooks/usePagination';
import { Page, PageHeader, PageContent } from '../../../../components/Page';
import RoomAutoComplete from '../../../../components/RoomAutoComplete';
import UserAutoCompleteMultiple from '../../../../components/UserAutoCompleteMultiple';
diff --git a/apps/meteor/client/views/admin/permissions/UsersInRole/UsersInRoleTable/UsersInRoleTable.tsx b/apps/meteor/client/views/admin/permissions/UsersInRole/UsersInRoleTable/UsersInRoleTable.tsx
index 974120d00e67f..ca033e8117b54 100644
--- a/apps/meteor/client/views/admin/permissions/UsersInRole/UsersInRoleTable/UsersInRoleTable.tsx
+++ b/apps/meteor/client/views/admin/permissions/UsersInRole/UsersInRoleTable/UsersInRoleTable.tsx
@@ -1,18 +1,18 @@
import type { IUserInRole, Serialized } from '@rocket.chat/core-typings';
import { Pagination } from '@rocket.chat/fuselage';
-import { useTranslation } from 'react-i18next';
-
-import UsersInRoleTableRow from './UsersInRoleTableRow';
-import GenericError from '../../../../../components/GenericError';
-import GenericNoResults from '../../../../../components/GenericNoResults';
import {
GenericTable,
GenericTableHeader,
GenericTableHeaderCell,
GenericTableBody,
GenericTableLoadingTable,
-} from '../../../../../components/GenericTable';
-import type { usePagination } from '../../../../../components/GenericTable/hooks/usePagination';
+} from '@rocket.chat/ui-client';
+import type { usePagination } from '@rocket.chat/ui-client';
+import { useTranslation } from 'react-i18next';
+
+import UsersInRoleTableRow from './UsersInRoleTableRow';
+import GenericError from '../../../../../components/GenericError';
+import GenericNoResults from '../../../../../components/GenericNoResults';
type UsersInRoleTableProps = {
isLoading: boolean;
diff --git a/apps/meteor/client/views/admin/permissions/UsersInRole/UsersInRoleTable/UsersInRoleTableRow.tsx b/apps/meteor/client/views/admin/permissions/UsersInRole/UsersInRoleTable/UsersInRoleTableRow.tsx
index 00e24d820893f..b37c7a1ae93dc 100644
--- a/apps/meteor/client/views/admin/permissions/UsersInRole/UsersInRoleTable/UsersInRoleTableRow.tsx
+++ b/apps/meteor/client/views/admin/permissions/UsersInRole/UsersInRoleTable/UsersInRoleTableRow.tsx
@@ -2,12 +2,12 @@ import type { IUserInRole, Serialized } from '@rocket.chat/core-typings';
import { Box, IconButton } from '@rocket.chat/fuselage';
import { useEffectEvent } from '@rocket.chat/fuselage-hooks';
import { UserAvatar } from '@rocket.chat/ui-avatar';
+import { GenericTableRow, GenericTableCell } from '@rocket.chat/ui-client';
import type { ReactElement } from 'react';
import { memo } from 'react';
import { useTranslation } from 'react-i18next';
import { getUserEmailAddress } from '../../../../../../lib/getUserEmailAddress';
-import { GenericTableRow, GenericTableCell } from '../../../../../components/GenericTable';
type UsersInRoleTableRowProps = {
user: Serialized;
diff --git a/apps/meteor/client/views/admin/rooms/RoomRow.tsx b/apps/meteor/client/views/admin/rooms/RoomRow.tsx
index 7bca8ae8c72cd..76aec806c0699 100644
--- a/apps/meteor/client/views/admin/rooms/RoomRow.tsx
+++ b/apps/meteor/client/views/admin/rooms/RoomRow.tsx
@@ -3,11 +3,11 @@ import type { IRoom, RoomAdminFieldsType, Serialized } from '@rocket.chat/core-t
import { Box, Icon } from '@rocket.chat/fuselage';
import { useMediaQuery } from '@rocket.chat/fuselage-hooks';
import { RoomAvatar } from '@rocket.chat/ui-avatar';
+import { GenericTableCell, GenericTableRow } from '@rocket.chat/ui-client';
import { useRouter } from '@rocket.chat/ui-contexts';
import { useCallback } from 'react';
import { useTranslation } from 'react-i18next';
-import { GenericTableCell, GenericTableRow } from '../../../components/GenericTable';
import { useFormatDate } from '../../../hooks/useFormatDate';
import { roomCoordinator } from '../../../lib/rooms/roomCoordinator';
diff --git a/apps/meteor/client/views/admin/rooms/RoomsTable.tsx b/apps/meteor/client/views/admin/rooms/RoomsTable.tsx
index c75a108f60dde..40ef5ecff8ca9 100644
--- a/apps/meteor/client/views/admin/rooms/RoomsTable.tsx
+++ b/apps/meteor/client/views/admin/rooms/RoomsTable.tsx
@@ -1,6 +1,15 @@
import { Pagination, States, StatesIcon, StatesTitle, StatesActions, StatesAction } from '@rocket.chat/fuselage';
import { useMediaQuery, useDebouncedValue } from '@rocket.chat/fuselage-hooks';
import type { OptionProp } from '@rocket.chat/ui-client';
+import {
+ GenericTable,
+ GenericTableBody,
+ GenericTableHeader,
+ GenericTableHeaderCell,
+ GenericTableLoadingTable,
+ usePagination,
+ useSort,
+} from '@rocket.chat/ui-client';
import { useEndpoint } from '@rocket.chat/ui-contexts';
import { useQuery } from '@tanstack/react-query';
import type { ReactElement, MutableRefObject } from 'react';
@@ -10,15 +19,6 @@ import { useTranslation } from 'react-i18next';
import RoomRow from './RoomRow';
import RoomsTableFilters from './RoomsTableFilters';
import GenericNoResults from '../../../components/GenericNoResults';
-import {
- GenericTable,
- GenericTableBody,
- GenericTableHeader,
- GenericTableHeaderCell,
- GenericTableLoadingTable,
-} from '../../../components/GenericTable';
-import { usePagination } from '../../../components/GenericTable/hooks/usePagination';
-import { useSort } from '../../../components/GenericTable/hooks/useSort';
type RoomFilters = {
searchText: string;
diff --git a/apps/meteor/client/views/admin/settings/groups/VoipGroupPage/AssignAgentButton.tsx b/apps/meteor/client/views/admin/settings/groups/VoipGroupPage/AssignAgentButton.tsx
index 29d2acb685cc1..f537d81451ca2 100644
--- a/apps/meteor/client/views/admin/settings/groups/VoipGroupPage/AssignAgentButton.tsx
+++ b/apps/meteor/client/views/admin/settings/groups/VoipGroupPage/AssignAgentButton.tsx
@@ -1,11 +1,11 @@
import { IconButton } from '@rocket.chat/fuselage';
import { useEffectEvent } from '@rocket.chat/fuselage-hooks';
+import { GenericTableCell } from '@rocket.chat/ui-client';
import { useSetModal } from '@rocket.chat/ui-contexts';
import type { MouseEvent } from 'react';
import { useTranslation } from 'react-i18next';
import AssignAgentModal from './AssignAgentModal';
-import { GenericTableCell } from '../../../../../components/GenericTable';
type AssignAgentButtonProps = { extension: string; reload: () => void };
diff --git a/apps/meteor/client/views/admin/settings/groups/VoipGroupPage/RemoveAgentButton.tsx b/apps/meteor/client/views/admin/settings/groups/VoipGroupPage/RemoveAgentButton.tsx
index 2f8ad82cec382..9bb6d8e8ec2fa 100644
--- a/apps/meteor/client/views/admin/settings/groups/VoipGroupPage/RemoveAgentButton.tsx
+++ b/apps/meteor/client/views/admin/settings/groups/VoipGroupPage/RemoveAgentButton.tsx
@@ -1,12 +1,10 @@
import { IconButton } from '@rocket.chat/fuselage';
import { useEffectEvent } from '@rocket.chat/fuselage-hooks';
-import { GenericModal } from '@rocket.chat/ui-client';
+import { GenericModal, GenericTableCell } from '@rocket.chat/ui-client';
import { useSetModal, useToastMessageDispatch, useEndpoint } from '@rocket.chat/ui-contexts';
import type { MouseEvent } from 'react';
import { useTranslation } from 'react-i18next';
-import { GenericTableCell } from '../../../../../components/GenericTable';
-
type RemoveAgentButtonProps = { username: string; reload: () => void };
const RemoveAgentButton = ({ username, reload }: RemoveAgentButtonProps) => {
diff --git a/apps/meteor/client/views/admin/settings/groups/VoipGroupPage/VoipExtensionsPage.tsx b/apps/meteor/client/views/admin/settings/groups/VoipGroupPage/VoipExtensionsPage.tsx
index bb6e297ef0df4..92f3097a2314a 100644
--- a/apps/meteor/client/views/admin/settings/groups/VoipGroupPage/VoipExtensionsPage.tsx
+++ b/apps/meteor/client/views/admin/settings/groups/VoipGroupPage/VoipExtensionsPage.tsx
@@ -1,13 +1,5 @@
import { Box, Chip, Button, Pagination } from '@rocket.chat/fuselage';
import { UserAvatar } from '@rocket.chat/ui-avatar';
-import { useSetModal, useTranslation, useEndpoint } from '@rocket.chat/ui-contexts';
-import { useQuery } from '@tanstack/react-query';
-import { useMemo } from 'react';
-
-import AssignAgentButton from './AssignAgentButton';
-import AssignAgentModal from './AssignAgentModal';
-import RemoveAgentButton from './RemoveAgentButton';
-import GenericNoResults from '../../../../../components/GenericNoResults';
import {
GenericTable,
GenericTableHeaderCell,
@@ -16,8 +8,16 @@ import {
GenericTableHeader,
GenericTableBody,
GenericTableLoadingRow,
-} from '../../../../../components/GenericTable';
-import { usePagination } from '../../../../../components/GenericTable/hooks/usePagination';
+ usePagination,
+} from '@rocket.chat/ui-client';
+import { useSetModal, useTranslation, useEndpoint } from '@rocket.chat/ui-contexts';
+import { useQuery } from '@tanstack/react-query';
+import { useMemo } from 'react';
+
+import AssignAgentButton from './AssignAgentButton';
+import AssignAgentModal from './AssignAgentModal';
+import RemoveAgentButton from './RemoveAgentButton';
+import GenericNoResults from '../../../../../components/GenericNoResults';
import { PageContent } from '../../../../../components/Page';
const VoipExtensionsPage = () => {
diff --git a/apps/meteor/client/views/admin/users/AdminUsersPage.tsx b/apps/meteor/client/views/admin/users/AdminUsersPage.tsx
index 4081f41879e9e..4e2b7fc5e116c 100644
--- a/apps/meteor/client/views/admin/users/AdminUsersPage.tsx
+++ b/apps/meteor/client/views/admin/users/AdminUsersPage.tsx
@@ -2,7 +2,15 @@ import type { LicenseInfo } from '@rocket.chat/core-typings';
import { Callout, ContextualbarIcon, Skeleton, Tabs, TabsItem } from '@rocket.chat/fuselage';
import { useDebouncedValue, useEffectEvent } from '@rocket.chat/fuselage-hooks';
import type { OptionProp } from '@rocket.chat/ui-client';
-import { ExternalLink, ContextualbarHeader, ContextualbarTitle, ContextualbarClose, ContextualbarDialog } from '@rocket.chat/ui-client';
+import {
+ ExternalLink,
+ ContextualbarHeader,
+ ContextualbarTitle,
+ ContextualbarClose,
+ ContextualbarDialog,
+ usePagination,
+ useSort,
+} from '@rocket.chat/ui-client';
import { useRouteParameter, useTranslation, useRouter, useEndpoint } from '@rocket.chat/ui-contexts';
import { useQuery } from '@tanstack/react-query';
import type { ReactElement } from 'react';
@@ -20,8 +28,6 @@ import UsersTable from './UsersTable';
import useFilteredUsers from './hooks/useFilteredUsers';
import usePendingUsersCount from './hooks/usePendingUsersCount';
import { useSeatsCap } from './useSeatsCap';
-import { usePagination } from '../../../components/GenericTable/hooks/usePagination';
-import { useSort } from '../../../components/GenericTable/hooks/useSort';
import { Page, PageHeader, PageContent } from '../../../components/Page';
import { useLicenseLimitsByBehavior } from '../../../hooks/useLicenseLimitsByBehavior';
import { useShouldPreventAction } from '../../../hooks/useShouldPreventAction';
diff --git a/apps/meteor/client/views/admin/users/UsersTable/UsersTable.tsx b/apps/meteor/client/views/admin/users/UsersTable/UsersTable.tsx
index 6d1a4751c5b95..549539ebbfe49 100644
--- a/apps/meteor/client/views/admin/users/UsersTable/UsersTable.tsx
+++ b/apps/meteor/client/views/admin/users/UsersTable/UsersTable.tsx
@@ -2,6 +2,14 @@ import type { IRole, IUser, Serialized } from '@rocket.chat/core-typings';
import { Pagination } from '@rocket.chat/fuselage';
import { useEffectEvent, useBreakpoints } from '@rocket.chat/fuselage-hooks';
import type { DefaultUserInfo } from '@rocket.chat/rest-typings';
+import {
+ GenericTable,
+ GenericTableHeader,
+ GenericTableHeaderCell,
+ GenericTableBody,
+ GenericTableLoadingTable,
+} from '@rocket.chat/ui-client';
+import type { usePagination, useSort } from '@rocket.chat/ui-client';
import type { TranslationKey } from '@rocket.chat/ui-contexts';
import { useRouter } from '@rocket.chat/ui-contexts';
import type { ReactElement, Dispatch, SetStateAction, MouseEvent, KeyboardEvent } from 'react';
@@ -11,15 +19,6 @@ import { useTranslation } from 'react-i18next';
import UsersTableFilters from './UsersTableFilters';
import UsersTableRow from './UsersTableRow';
import GenericNoResults from '../../../../components/GenericNoResults';
-import {
- GenericTable,
- GenericTableHeader,
- GenericTableHeaderCell,
- GenericTableBody,
- GenericTableLoadingTable,
-} from '../../../../components/GenericTable';
-import type { usePagination } from '../../../../components/GenericTable/hooks/usePagination';
-import type { useSort } from '../../../../components/GenericTable/hooks/useSort';
import type { AdminUsersTab, UsersFilters, UsersTableSortingOption } from '../AdminUsersPage';
import { useVoipExtensionPermission } from '../useVoipExtensionPermission';
diff --git a/apps/meteor/client/views/admin/users/UsersTable/UsersTableRow.tsx b/apps/meteor/client/views/admin/users/UsersTable/UsersTableRow.tsx
index adc79d35e1de7..987baee3bdb7c 100644
--- a/apps/meteor/client/views/admin/users/UsersTable/UsersTableRow.tsx
+++ b/apps/meteor/client/views/admin/users/UsersTable/UsersTableRow.tsx
@@ -3,12 +3,11 @@ import type { IUser, Serialized } from '@rocket.chat/core-typings';
import { Box, Button } from '@rocket.chat/fuselage';
import type { DefaultUserInfo } from '@rocket.chat/rest-typings';
import { UserAvatar } from '@rocket.chat/ui-avatar';
-import { GenericMenu } from '@rocket.chat/ui-client';
+import { GenericMenu, GenericTableRow, GenericTableCell } from '@rocket.chat/ui-client';
import type { KeyboardEvent, MouseEvent, ReactElement } from 'react';
import { useMemo } from 'react';
import { useTranslation } from 'react-i18next';
-import { GenericTableRow, GenericTableCell } from '../../../../components/GenericTable';
import { UserStatus } from '../../../../components/UserStatus';
import { Roles } from '../../../../stores';
import type { AdminUsersTab } from '../AdminUsersPage';
diff --git a/apps/meteor/client/views/admin/users/hooks/useFilteredUsers.ts b/apps/meteor/client/views/admin/users/hooks/useFilteredUsers.ts
index 7fd57f34dbdad..ebb13a1c9bcc3 100644
--- a/apps/meteor/client/views/admin/users/hooks/useFilteredUsers.ts
+++ b/apps/meteor/client/views/admin/users/hooks/useFilteredUsers.ts
@@ -1,11 +1,10 @@
import type { UsersListStatusParamsGET } from '@rocket.chat/rest-typings';
+import type { usePagination, useSort } from '@rocket.chat/ui-client';
import { useEndpoint } from '@rocket.chat/ui-contexts';
import { useQuery } from '@tanstack/react-query';
import type { MutableRefObject } from 'react';
import { useMemo } from 'react';
-import type { usePagination } from '../../../../components/GenericTable/hooks/usePagination';
-import type { useSort } from '../../../../components/GenericTable/hooks/useSort';
import type { AdminUsersTab, UsersTableSortingOption } from '../AdminUsersPage';
type UseFilteredUsersOptions = {
diff --git a/apps/meteor/client/views/audit/components/AuditLogEntry.tsx b/apps/meteor/client/views/audit/components/AuditLogEntry.tsx
index 23fc66567686c..92bab0535073e 100644
--- a/apps/meteor/client/views/audit/components/AuditLogEntry.tsx
+++ b/apps/meteor/client/views/audit/components/AuditLogEntry.tsx
@@ -2,12 +2,12 @@ import type { IAuditLog } from '@rocket.chat/core-typings';
import { Box } from '@rocket.chat/fuselage';
import { useMediaQuery } from '@rocket.chat/fuselage-hooks';
import { UserAvatar } from '@rocket.chat/ui-avatar';
+import { GenericTableRow, GenericTableCell } from '@rocket.chat/ui-client';
import type { ReactElement } from 'react';
import { memo, useMemo } from 'react';
import { useTranslation } from 'react-i18next';
import AuditFiltersDisplay from './AuditFiltersDisplay';
-import { GenericTableRow, GenericTableCell } from '../../../components/GenericTable';
import { useFormatDateAndTime } from '../../../hooks/useFormatDateAndTime';
type AuditLogEntryProps = { value: IAuditLog };
diff --git a/apps/meteor/client/views/audit/components/AuditLogTable.tsx b/apps/meteor/client/views/audit/components/AuditLogTable.tsx
index 06b61963ec6d1..38a49e0b01976 100644
--- a/apps/meteor/client/views/audit/components/AuditLogTable.tsx
+++ b/apps/meteor/client/views/audit/components/AuditLogTable.tsx
@@ -1,4 +1,5 @@
import { Field, FieldLabel, FieldRow } from '@rocket.chat/fuselage';
+import { GenericTable, GenericTableHeaderCell, GenericTableBody, GenericTableLoadingRow, GenericTableHeader } from '@rocket.chat/ui-client';
import { useTranslation, useMethod } from '@rocket.chat/ui-contexts';
import { useQuery } from '@tanstack/react-query';
import type { ReactElement } from 'react';
@@ -6,13 +7,6 @@ import { useState } from 'react';
import AuditLogEntry from './AuditLogEntry';
import GenericNoResults from '../../../components/GenericNoResults';
-import {
- GenericTable,
- GenericTableHeaderCell,
- GenericTableBody,
- GenericTableLoadingRow,
- GenericTableHeader,
-} from '../../../components/GenericTable';
import { createEndOfToday, createStartOfToday } from '../utils/dateRange';
import type { DateRange } from '../utils/dateRange';
import DateRangePicker from './forms/DateRangePicker';
diff --git a/apps/meteor/client/views/audit/components/SecurityLogsTable.tsx b/apps/meteor/client/views/audit/components/SecurityLogsTable.tsx
index 2286bd81cf6f5..f57cead3b005a 100644
--- a/apps/meteor/client/views/audit/components/SecurityLogsTable.tsx
+++ b/apps/meteor/client/views/audit/components/SecurityLogsTable.tsx
@@ -1,6 +1,16 @@
import type { IAuditServerAppActor, IAuditServerSystemActor, IAuditServerUserActor } from '@rocket.chat/core-typings';
import { Box, Button, ButtonGroup, Field, FieldLabel, Margins, Pagination } from '@rocket.chat/fuselage';
import { UserAvatar } from '@rocket.chat/ui-avatar';
+import {
+ GenericTable,
+ GenericTableBody,
+ GenericTableCell,
+ GenericTableHeader,
+ GenericTableHeaderCell,
+ GenericTableLoadingRow,
+ GenericTableRow,
+ usePagination,
+} from '@rocket.chat/ui-client';
import { useEndpoint, useSetModal } from '@rocket.chat/ui-contexts';
import { useQuery } from '@tanstack/react-query';
import { format } from 'date-fns';
@@ -11,16 +21,6 @@ import SecurityLogDisplayModal from './SecurityLogDisplayModal';
import { SettingSelect } from './SettingSelect';
import DateRangePicker from './forms/DateRangePicker';
import GenericNoResults from '../../../components/GenericNoResults';
-import {
- GenericTable,
- GenericTableBody,
- GenericTableCell,
- GenericTableHeader,
- GenericTableHeaderCell,
- GenericTableLoadingRow,
- GenericTableRow,
-} from '../../../components/GenericTable';
-import { usePagination } from '../../../components/GenericTable/hooks/usePagination';
import type { DateRange } from '../utils/dateRange';
import { getTypeTranslation } from '../utils/getAppTypeTranslation';
diff --git a/apps/meteor/client/views/directory/tabs/channels/ChannelsTable/ChannelsTable.tsx b/apps/meteor/client/views/directory/tabs/channels/ChannelsTable/ChannelsTable.tsx
index bceb9f248e94f..ae8933c385867 100644
--- a/apps/meteor/client/views/directory/tabs/channels/ChannelsTable/ChannelsTable.tsx
+++ b/apps/meteor/client/views/directory/tabs/channels/ChannelsTable/ChannelsTable.tsx
@@ -1,6 +1,15 @@
import type { IRoom, Serialized } from '@rocket.chat/core-typings';
import { Pagination, States, StatesIcon, StatesTitle, StatesActions, StatesAction } from '@rocket.chat/fuselage';
import { useMediaQuery } from '@rocket.chat/fuselage-hooks';
+import {
+ GenericTable,
+ GenericTableHeader,
+ GenericTableHeaderCell,
+ GenericTableBody,
+ GenericTableLoadingTable,
+ usePagination,
+ useSort,
+} from '@rocket.chat/ui-client';
import { useRoute, useTranslation, useEndpoint } from '@rocket.chat/ui-contexts';
import { useQuery } from '@tanstack/react-query';
import type { KeyboardEvent, MouseEvent } from 'react';
@@ -9,15 +18,6 @@ import { useMemo, useState } from 'react';
import ChannelsTableRow from './ChannelsTableRow';
import FilterByText from '../../../../../components/FilterByText';
import GenericNoResults from '../../../../../components/GenericNoResults';
-import {
- GenericTable,
- GenericTableHeader,
- GenericTableHeaderCell,
- GenericTableBody,
- GenericTableLoadingTable,
-} from '../../../../../components/GenericTable';
-import { usePagination } from '../../../../../components/GenericTable/hooks/usePagination';
-import { useSort } from '../../../../../components/GenericTable/hooks/useSort';
import { useDirectoryQuery } from '../../../hooks/useDirectoryQuery';
const ChannelsTable = () => {
diff --git a/apps/meteor/client/views/directory/tabs/channels/ChannelsTable/ChannelsTableRow.tsx b/apps/meteor/client/views/directory/tabs/channels/ChannelsTable/ChannelsTableRow.tsx
index e149531988f36..a86d2b11f7bc1 100644
--- a/apps/meteor/client/views/directory/tabs/channels/ChannelsTable/ChannelsTableRow.tsx
+++ b/apps/meteor/client/views/directory/tabs/channels/ChannelsTable/ChannelsTableRow.tsx
@@ -1,8 +1,8 @@
import type { IRoom, Serialized } from '@rocket.chat/core-typings';
import { Box, Avatar } from '@rocket.chat/fuselage';
+import { GenericTableRow, GenericTableCell } from '@rocket.chat/ui-client';
import type { KeyboardEvent, MouseEvent } from 'react';
-import { GenericTableRow, GenericTableCell } from '../../../../../components/GenericTable';
import MarkdownText from '../../../../../components/MarkdownText';
import { RoomIcon } from '../../../../../components/RoomIcon';
import { useFormatDate } from '../../../../../hooks/useFormatDate';
diff --git a/apps/meteor/client/views/directory/tabs/teams/TeamsTable/TeamsTable.tsx b/apps/meteor/client/views/directory/tabs/teams/TeamsTable/TeamsTable.tsx
index 131319991db37..2162656556823 100644
--- a/apps/meteor/client/views/directory/tabs/teams/TeamsTable/TeamsTable.tsx
+++ b/apps/meteor/client/views/directory/tabs/teams/TeamsTable/TeamsTable.tsx
@@ -1,6 +1,15 @@
import type { IRoom, Serialized } from '@rocket.chat/core-typings';
import { Pagination, States, StatesIcon, StatesTitle, StatesActions, StatesAction } from '@rocket.chat/fuselage';
import { useMediaQuery } from '@rocket.chat/fuselage-hooks';
+import {
+ GenericTable,
+ GenericTableHeader,
+ GenericTableHeaderCell,
+ GenericTableBody,
+ GenericTableLoadingTable,
+ usePagination,
+ useSort,
+} from '@rocket.chat/ui-client';
import { useRoute, useTranslation, useEndpoint } from '@rocket.chat/ui-contexts';
import { useQuery } from '@tanstack/react-query';
import type { KeyboardEvent, MouseEvent } from 'react';
@@ -9,15 +18,6 @@ import { useMemo, useState } from 'react';
import TeamsTableRow from './TeamsTableRow';
import FilterByText from '../../../../../components/FilterByText';
import GenericNoResults from '../../../../../components/GenericNoResults';
-import {
- GenericTable,
- GenericTableHeader,
- GenericTableHeaderCell,
- GenericTableBody,
- GenericTableLoadingTable,
-} from '../../../../../components/GenericTable';
-import { usePagination } from '../../../../../components/GenericTable/hooks/usePagination';
-import { useSort } from '../../../../../components/GenericTable/hooks/useSort';
import { useDirectoryQuery } from '../../../hooks/useDirectoryQuery';
const TeamsTable = () => {
diff --git a/apps/meteor/client/views/directory/tabs/teams/TeamsTable/TeamsTableRow.tsx b/apps/meteor/client/views/directory/tabs/teams/TeamsTable/TeamsTableRow.tsx
index 86f8ab99b0a6e..bca79383feb2d 100644
--- a/apps/meteor/client/views/directory/tabs/teams/TeamsTable/TeamsTableRow.tsx
+++ b/apps/meteor/client/views/directory/tabs/teams/TeamsTable/TeamsTableRow.tsx
@@ -1,8 +1,8 @@
import type { IRoom, Serialized } from '@rocket.chat/core-typings';
import { Box, Avatar } from '@rocket.chat/fuselage';
+import { GenericTableRow, GenericTableCell } from '@rocket.chat/ui-client';
import type { KeyboardEvent, MouseEvent } from 'react';
-import { GenericTableRow, GenericTableCell } from '../../../../../components/GenericTable';
import MarkdownText from '../../../../../components/MarkdownText';
import { RoomIcon } from '../../../../../components/RoomIcon';
import { useFormatDate } from '../../../../../hooks/useFormatDate';
diff --git a/apps/meteor/client/views/directory/tabs/users/UsersTable/UsersTable.tsx b/apps/meteor/client/views/directory/tabs/users/UsersTable/UsersTable.tsx
index 1365233671dae..1121b73c5438e 100644
--- a/apps/meteor/client/views/directory/tabs/users/UsersTable/UsersTable.tsx
+++ b/apps/meteor/client/views/directory/tabs/users/UsersTable/UsersTable.tsx
@@ -1,6 +1,15 @@
import type { IUser, Serialized } from '@rocket.chat/core-typings';
import { Pagination, States, StatesIcon, StatesTitle, StatesActions, StatesAction } from '@rocket.chat/fuselage';
import { useMediaQuery } from '@rocket.chat/fuselage-hooks';
+import {
+ GenericTable,
+ GenericTableHeader,
+ GenericTableHeaderCell,
+ GenericTableBody,
+ GenericTableLoadingTable,
+ usePagination,
+ useSort,
+} from '@rocket.chat/ui-client';
import { usePermission, useRoute, useTranslation, useEndpoint } from '@rocket.chat/ui-contexts';
import { useQuery } from '@tanstack/react-query';
import type { KeyboardEvent, MouseEvent, ReactElement } from 'react';
@@ -9,15 +18,6 @@ import { useCallback, useMemo, useState } from 'react';
import UsersTableRow from './UsersTableRow';
import FilterByText from '../../../../../components/FilterByText';
import GenericNoResults from '../../../../../components/GenericNoResults';
-import {
- GenericTable,
- GenericTableHeader,
- GenericTableHeaderCell,
- GenericTableBody,
- GenericTableLoadingTable,
-} from '../../../../../components/GenericTable';
-import { usePagination } from '../../../../../components/GenericTable/hooks/usePagination';
-import { useSort } from '../../../../../components/GenericTable/hooks/useSort';
import { useDirectoryQuery } from '../../../hooks/useDirectoryQuery';
const UsersTable = ({ workspace = 'local' }): ReactElement => {
diff --git a/apps/meteor/client/views/directory/tabs/users/UsersTable/UsersTableRow.tsx b/apps/meteor/client/views/directory/tabs/users/UsersTable/UsersTableRow.tsx
index e1eac524f4d1d..cd4ef9ea8d193 100644
--- a/apps/meteor/client/views/directory/tabs/users/UsersTable/UsersTableRow.tsx
+++ b/apps/meteor/client/views/directory/tabs/users/UsersTable/UsersTableRow.tsx
@@ -1,9 +1,9 @@
import type { IUser, Serialized } from '@rocket.chat/core-typings';
import { Box, Flex } from '@rocket.chat/fuselage';
import { UserAvatar } from '@rocket.chat/ui-avatar';
+import { GenericTableRow, GenericTableCell } from '@rocket.chat/ui-client';
import type { KeyboardEvent, MouseEvent } from 'react';
-import { GenericTableRow, GenericTableCell } from '../../../../../components/GenericTable';
import MarkdownText from '../../../../../components/MarkdownText';
import { useFormatDate } from '../../../../../hooks/useFormatDate';
diff --git a/apps/meteor/client/views/marketplace/AppDetailsPage/tabs/AppInstances/AppInstances.tsx b/apps/meteor/client/views/marketplace/AppDetailsPage/tabs/AppInstances/AppInstances.tsx
index 98c77b4b9f2a8..ac2ca5a37dea9 100644
--- a/apps/meteor/client/views/marketplace/AppDetailsPage/tabs/AppInstances/AppInstances.tsx
+++ b/apps/meteor/client/views/marketplace/AppDetailsPage/tabs/AppInstances/AppInstances.tsx
@@ -1,20 +1,21 @@
import type { AppStatus } from '@rocket.chat/apps';
import { AppStatusUtils } from '@rocket.chat/apps-engine/definition/AppStatus';
import { Box, Palette, Tag } from '@rocket.chat/fuselage';
-import { GenericMenu, CustomScrollbars } from '@rocket.chat/ui-client';
-import { useRouter } from '@rocket.chat/ui-contexts';
-import type { ReactElement } from 'react';
-import { useTranslation } from 'react-i18next';
-
-import GenericNoResults from '../../../../../components/GenericNoResults';
import {
+ GenericMenu,
+ CustomScrollbars,
GenericTable,
GenericTableBody,
GenericTableCell,
GenericTableHeader,
GenericTableHeaderCell,
GenericTableRow,
-} from '../../../../../components/GenericTable';
+} from '@rocket.chat/ui-client';
+import { useRouter } from '@rocket.chat/ui-contexts';
+import type { ReactElement } from 'react';
+import { useTranslation } from 'react-i18next';
+
+import GenericNoResults from '../../../../../components/GenericNoResults';
import AccordionLoading from '../../../components/AccordionLoading';
import { useAppInstances } from '../../../hooks/useAppInstances';
diff --git a/apps/meteor/client/views/marketplace/AppDetailsPage/tabs/AppLogs/AppLogs.tsx b/apps/meteor/client/views/marketplace/AppDetailsPage/tabs/AppLogs/AppLogs.tsx
index 3407f4589b98b..2a051cf6f2044 100644
--- a/apps/meteor/client/views/marketplace/AppDetailsPage/tabs/AppLogs/AppLogs.tsx
+++ b/apps/meteor/client/views/marketplace/AppDetailsPage/tabs/AppLogs/AppLogs.tsx
@@ -1,6 +1,6 @@
import type { ILogItem } from '@rocket.chat/core-typings';
import { Box, Pagination } from '@rocket.chat/fuselage';
-import { CustomScrollbars } from '@rocket.chat/ui-client';
+import { CustomScrollbars, usePagination } from '@rocket.chat/ui-client';
import { useRouter } from '@rocket.chat/ui-contexts';
import { useEffect, useMemo, useReducer, type ReactElement } from 'react';
import { useTranslation } from 'react-i18next';
@@ -11,7 +11,6 @@ import { AppLogsFilter } from './Filters/AppLogsFilter';
import { useAppLogsFilterFormContext } from './useAppLogsFilterForm';
import GenericError from '../../../../../components/GenericError';
import GenericNoResults from '../../../../../components/GenericNoResults';
-import { usePagination } from '../../../../../components/GenericTable/hooks/usePagination';
import AccordionLoading from '../../../components/AccordionLoading';
import { useLogs } from '../../../hooks/useLogs';
diff --git a/apps/meteor/client/views/marketplace/AppsPage/AppsPageContent.tsx b/apps/meteor/client/views/marketplace/AppsPage/AppsPageContent.tsx
index 3905157739022..b7e8bbdc76c7c 100644
--- a/apps/meteor/client/views/marketplace/AppsPage/AppsPageContent.tsx
+++ b/apps/meteor/client/views/marketplace/AppsPage/AppsPageContent.tsx
@@ -1,4 +1,5 @@
import { useDebouncedValue } from '@rocket.chat/fuselage-hooks';
+import { usePagination } from '@rocket.chat/ui-client';
import { useRouteParameter, useRouter } from '@rocket.chat/ui-contexts';
import type { ReactElement } from 'react';
import { useEffect, useMemo, useState, useCallback } from 'react';
@@ -14,7 +15,6 @@ import NoInstalledAppsEmptyState from './NoInstalledAppsEmptyState';
import NoMarketplaceOrInstalledAppMatchesEmptyState from './NoMarketplaceOrInstalledAppMatchesEmptyState';
import PrivateEmptyState from './PrivateEmptyState';
import UnsupportedEmptyState from './UnsupportedEmptyState';
-import { usePagination } from '../../../components/GenericTable/hooks/usePagination';
import { useAppsResult } from '../../../contexts/hooks/useAppsResult';
import { AsyncStatePhase } from '../../../lib/asyncState';
import MarketplaceHeader from '../components/MarketplaceHeader';
diff --git a/apps/meteor/client/views/omnichannel/agents/AgentsTable/AgentsTable.tsx b/apps/meteor/client/views/omnichannel/agents/AgentsTable/AgentsTable.tsx
index e74d1a313834e..e8bd1faff7e08 100644
--- a/apps/meteor/client/views/omnichannel/agents/AgentsTable/AgentsTable.tsx
+++ b/apps/meteor/client/views/omnichannel/agents/AgentsTable/AgentsTable.tsx
@@ -1,5 +1,14 @@
import { Pagination } from '@rocket.chat/fuselage';
import { useDebouncedValue, useMediaQuery, useEffectEvent } from '@rocket.chat/fuselage-hooks';
+import {
+ GenericTable,
+ GenericTableBody,
+ GenericTableHeader,
+ GenericTableHeaderCell,
+ GenericTableLoadingTable,
+ usePagination,
+ useSort,
+} from '@rocket.chat/ui-client';
import { hashKey } from '@tanstack/react-query';
import { useMemo, useState } from 'react';
import { useTranslation } from 'react-i18next';
@@ -8,15 +17,6 @@ import AddAgent from './AddAgent';
import AgentsTableRow from './AgentsTableRow';
import FilterByText from '../../../../components/FilterByText';
import GenericNoResults from '../../../../components/GenericNoResults/GenericNoResults';
-import {
- GenericTable,
- GenericTableBody,
- GenericTableHeader,
- GenericTableHeaderCell,
- GenericTableLoadingTable,
-} from '../../../../components/GenericTable';
-import { usePagination } from '../../../../components/GenericTable/hooks/usePagination';
-import { useSort } from '../../../../components/GenericTable/hooks/useSort';
import { links } from '../../../../lib/links';
import { useAgentsQuery } from '../hooks/useAgentsQuery';
import { useQuery } from '../hooks/useQuery';
diff --git a/apps/meteor/client/views/omnichannel/agents/AgentsTable/AgentsTableRow.tsx b/apps/meteor/client/views/omnichannel/agents/AgentsTable/AgentsTableRow.tsx
index 5c7bd0e4f9070..e4381f1aab523 100644
--- a/apps/meteor/client/views/omnichannel/agents/AgentsTable/AgentsTableRow.tsx
+++ b/apps/meteor/client/views/omnichannel/agents/AgentsTable/AgentsTableRow.tsx
@@ -1,10 +1,10 @@
import { Box, IconButton } from '@rocket.chat/fuselage';
import { UserAvatar } from '@rocket.chat/ui-avatar';
+import { GenericTableRow, GenericTableCell } from '@rocket.chat/ui-client';
import { useRouter } from '@rocket.chat/ui-contexts';
import type { ReactElement } from 'react';
import { useTranslation } from 'react-i18next';
-import { GenericTableRow, GenericTableCell } from '../../../../components/GenericTable';
import { useRemoveAgent } from '../hooks/useRemoveAgent';
const AgentsTableRow = ({
diff --git a/apps/meteor/client/views/omnichannel/businessHours/BusinessHoursRow.tsx b/apps/meteor/client/views/omnichannel/businessHours/BusinessHoursRow.tsx
index 5b9781a2969b5..836acdcaaa6ce 100644
--- a/apps/meteor/client/views/omnichannel/businessHours/BusinessHoursRow.tsx
+++ b/apps/meteor/client/views/omnichannel/businessHours/BusinessHoursRow.tsx
@@ -1,5 +1,6 @@
import type { ILivechatBusinessHour, Serialized } from '@rocket.chat/core-typings';
import { IconButton } from '@rocket.chat/fuselage';
+import { GenericTableRow, GenericTableCell } from '@rocket.chat/ui-client';
import type { TranslationKey } from '@rocket.chat/ui-contexts';
import { useRouter } from '@rocket.chat/ui-contexts';
import type { KeyboardEvent } from 'react';
@@ -7,7 +8,6 @@ import { memo, useMemo } from 'react';
import { useTranslation } from 'react-i18next';
import { useRemoveBusinessHour } from './useRemoveBusinessHour';
-import { GenericTableRow, GenericTableCell } from '../../../components/GenericTable';
const BusinessHoursRow = ({ _id, name, timezone, workHours, active, type }: Serialized) => {
const { t } = useTranslation();
diff --git a/apps/meteor/client/views/omnichannel/businessHours/BusinessHoursTable.tsx b/apps/meteor/client/views/omnichannel/businessHours/BusinessHoursTable.tsx
index 5f8d01c01ef3c..8d25bbce31142 100644
--- a/apps/meteor/client/views/omnichannel/businessHours/BusinessHoursTable.tsx
+++ b/apps/meteor/client/views/omnichannel/businessHours/BusinessHoursTable.tsx
@@ -1,5 +1,13 @@
import { Pagination, States, StatesIcon, StatesActions, StatesAction, StatesTitle } from '@rocket.chat/fuselage';
import { useDebouncedValue } from '@rocket.chat/fuselage-hooks';
+import {
+ GenericTable,
+ GenericTableBody,
+ GenericTableHeaderCell,
+ GenericTableHeader,
+ GenericTableLoadingRow,
+ usePagination,
+} from '@rocket.chat/ui-client';
import { useTranslation, useEndpoint } from '@rocket.chat/ui-contexts';
import { useQuery } from '@tanstack/react-query';
import { useMemo, useState } from 'react';
@@ -7,14 +15,6 @@ import { useMemo, useState } from 'react';
import BusinessHoursRow from './BusinessHoursRow';
import FilterByText from '../../../components/FilterByText';
import GenericNoResults from '../../../components/GenericNoResults';
-import {
- GenericTable,
- GenericTableBody,
- GenericTableHeaderCell,
- GenericTableHeader,
- GenericTableLoadingRow,
-} from '../../../components/GenericTable';
-import { usePagination } from '../../../components/GenericTable/hooks/usePagination';
const BusinessHoursTable = () => {
const t = useTranslation();
diff --git a/apps/meteor/client/views/omnichannel/cannedResponses/RemoveCannedResponseButton.tsx b/apps/meteor/client/views/omnichannel/cannedResponses/RemoveCannedResponseButton.tsx
index a11f21c1600c6..1c61a6bbd5a43 100644
--- a/apps/meteor/client/views/omnichannel/cannedResponses/RemoveCannedResponseButton.tsx
+++ b/apps/meteor/client/views/omnichannel/cannedResponses/RemoveCannedResponseButton.tsx
@@ -1,9 +1,9 @@
import type { IOmnichannelCannedResponse } from '@rocket.chat/core-typings';
import { IconButton } from '@rocket.chat/fuselage';
+import { GenericTableCell } from '@rocket.chat/ui-client';
import { useTranslation } from 'react-i18next';
import { useRemoveCannedResponse } from './modals/useRemoveCannedResponse';
-import { GenericTableCell } from '../../../components/GenericTable';
const RemoveCannedResponseButton = ({ id }: { id: IOmnichannelCannedResponse['_id'] }) => {
const { t } = useTranslation();
diff --git a/apps/meteor/client/views/omnichannel/cannedResponses/modals/CannedResponsesTable.tsx b/apps/meteor/client/views/omnichannel/cannedResponses/modals/CannedResponsesTable.tsx
index b66d9758f0653..32dc9728572a5 100644
--- a/apps/meteor/client/views/omnichannel/cannedResponses/modals/CannedResponsesTable.tsx
+++ b/apps/meteor/client/views/omnichannel/cannedResponses/modals/CannedResponsesTable.tsx
@@ -1,12 +1,6 @@
import { Box, Pagination } from '@rocket.chat/fuselage';
import { useDebouncedValue, useEffectEvent } from '@rocket.chat/fuselage-hooks';
import { UserAvatar } from '@rocket.chat/ui-avatar';
-import { useTranslation, usePermission, useToastMessageDispatch, useEndpoint, useRouter } from '@rocket.chat/ui-contexts';
-import { hashKey, useQuery } from '@tanstack/react-query';
-import { useMemo, useState } from 'react';
-
-import CannedResponseFilter from './CannedResponseFilter';
-import GenericNoResults from '../../../../components/GenericNoResults';
import {
GenericTable,
GenericTableBody,
@@ -15,9 +9,15 @@ import {
GenericTableLoadingRow,
GenericTableRow,
GenericTableCell,
-} from '../../../../components/GenericTable';
-import { usePagination } from '../../../../components/GenericTable/hooks/usePagination';
-import { useSort } from '../../../../components/GenericTable/hooks/useSort';
+ usePagination,
+ useSort,
+} from '@rocket.chat/ui-client';
+import { useTranslation, usePermission, useToastMessageDispatch, useEndpoint, useRouter } from '@rocket.chat/ui-contexts';
+import { hashKey, useQuery } from '@tanstack/react-query';
+import { useMemo, useState } from 'react';
+
+import CannedResponseFilter from './CannedResponseFilter';
+import GenericNoResults from '../../../../components/GenericNoResults';
import { useFormatDateAndTime } from '../../../../hooks/useFormatDateAndTime';
import { links } from '../../../../lib/links';
import RemoveCannedResponseButton from '../RemoveCannedResponseButton';
diff --git a/apps/meteor/client/views/omnichannel/currentChats/CurrentChatsPage.tsx b/apps/meteor/client/views/omnichannel/currentChats/CurrentChatsPage.tsx
index 2105051a79323..6b5b729e282c8 100644
--- a/apps/meteor/client/views/omnichannel/currentChats/CurrentChatsPage.tsx
+++ b/apps/meteor/client/views/omnichannel/currentChats/CurrentChatsPage.tsx
@@ -2,6 +2,17 @@ import type { IOmnichannelRoomWithDepartment } from '@rocket.chat/core-typings';
import { Callout, Pagination } from '@rocket.chat/fuselage';
import { useEffectEvent } from '@rocket.chat/fuselage-hooks';
import type { GETLivechatRoomsParams } from '@rocket.chat/rest-typings';
+import {
+ GenericTable,
+ GenericTableBody,
+ GenericTableCell,
+ GenericTableHeader,
+ GenericTableHeaderCell,
+ GenericTableLoadingTable,
+ GenericTableRow,
+ usePagination,
+ useSort,
+} from '@rocket.chat/ui-client';
import { usePermission, useRouter } from '@rocket.chat/ui-contexts';
import { hashKey } from '@tanstack/react-query';
import moment from 'moment';
@@ -14,17 +25,6 @@ import FilterByText from './FilterByText';
import RemoveChatButton from './RemoveChatButton';
import { useCurrentChats } from './hooks/useCurrentChats';
import GenericNoResults from '../../../components/GenericNoResults';
-import {
- GenericTable,
- GenericTableBody,
- GenericTableCell,
- GenericTableHeader,
- GenericTableHeaderCell,
- GenericTableLoadingTable,
- GenericTableRow,
-} from '../../../components/GenericTable';
-import { usePagination } from '../../../components/GenericTable/hooks/usePagination';
-import { useSort } from '../../../components/GenericTable/hooks/useSort';
import { Page, PageHeader, PageContent } from '../../../components/Page';
import { links } from '../../../lib/links';
import RoomActivityIcon from '../components/RoomActivityIcon';
diff --git a/apps/meteor/client/views/omnichannel/customFields/CustomFieldsTable.tsx b/apps/meteor/client/views/omnichannel/customFields/CustomFieldsTable.tsx
index 8e48807e66250..a78990a523901 100644
--- a/apps/meteor/client/views/omnichannel/customFields/CustomFieldsTable.tsx
+++ b/apps/meteor/client/views/omnichannel/customFields/CustomFieldsTable.tsx
@@ -1,12 +1,5 @@
import { IconButton, Pagination } from '@rocket.chat/fuselage';
import { useDebouncedValue, useEffectEvent } from '@rocket.chat/fuselage-hooks';
-import { useTranslation, useRouter } from '@rocket.chat/ui-contexts';
-import { hashKey } from '@tanstack/react-query';
-import { useMemo, useState } from 'react';
-
-import { useRemoveCustomField } from './useRemoveCustomField';
-import FilterByText from '../../../components/FilterByText';
-import GenericNoResults from '../../../components/GenericNoResults';
import {
GenericTable,
GenericTableHeader,
@@ -15,9 +8,16 @@ import {
GenericTableCell,
GenericTableBody,
GenericTableLoadingTable,
-} from '../../../components/GenericTable';
-import { usePagination } from '../../../components/GenericTable/hooks/usePagination';
-import { useSort } from '../../../components/GenericTable/hooks/useSort';
+ usePagination,
+ useSort,
+} from '@rocket.chat/ui-client';
+import { useTranslation, useRouter } from '@rocket.chat/ui-contexts';
+import { hashKey } from '@tanstack/react-query';
+import { useMemo, useState } from 'react';
+
+import { useRemoveCustomField } from './useRemoveCustomField';
+import FilterByText from '../../../components/FilterByText';
+import GenericNoResults from '../../../components/GenericNoResults';
import { links } from '../../../lib/links';
import { useCustomFieldsQuery } from '../hooks/useCustomFieldsQuery';
diff --git a/apps/meteor/client/views/omnichannel/departments/DepartmentAgentsTable/AgentRow.tsx b/apps/meteor/client/views/omnichannel/departments/DepartmentAgentsTable/AgentRow.tsx
index bd429b163d8d6..bfc14fc58b889 100644
--- a/apps/meteor/client/views/omnichannel/departments/DepartmentAgentsTable/AgentRow.tsx
+++ b/apps/meteor/client/views/omnichannel/departments/DepartmentAgentsTable/AgentRow.tsx
@@ -1,9 +1,9 @@
import { NumberInput } from '@rocket.chat/fuselage';
+import { GenericTableRow, GenericTableCell } from '@rocket.chat/ui-client';
import { memo } from 'react';
import type { UseFormRegister } from 'react-hook-form';
import { useTranslation } from 'react-i18next';
-import { GenericTableRow, GenericTableCell } from '../../../../components/GenericTable';
import type { EditDepartmentFormData, IDepartmentAgent } from '../definitions';
import AgentAvatar from './AgentAvatar';
import RemoveAgentButton from './RemoveAgentButton';
diff --git a/apps/meteor/client/views/omnichannel/departments/DepartmentAgentsTable/DepartmentAgentsTable.tsx b/apps/meteor/client/views/omnichannel/departments/DepartmentAgentsTable/DepartmentAgentsTable.tsx
index 1830769d08ec1..1ace56dd02ca2 100644
--- a/apps/meteor/client/views/omnichannel/departments/DepartmentAgentsTable/DepartmentAgentsTable.tsx
+++ b/apps/meteor/client/views/omnichannel/departments/DepartmentAgentsTable/DepartmentAgentsTable.tsx
@@ -1,12 +1,11 @@
import { Pagination } from '@rocket.chat/fuselage';
+import { GenericTable, GenericTableBody, GenericTableHeader, GenericTableHeaderCell, usePagination } from '@rocket.chat/ui-client';
import type { AriaAttributes } from 'react';
import { useMemo } from 'react';
import type { Control, UseFormRegister } from 'react-hook-form';
import { useWatch, useFieldArray } from 'react-hook-form';
import { useTranslation } from 'react-i18next';
-import { GenericTable, GenericTableBody, GenericTableHeader, GenericTableHeaderCell } from '../../../../components/GenericTable';
-import { usePagination } from '../../../../components/GenericTable/hooks/usePagination';
import type { EditDepartmentFormData } from '../definitions';
import AddAgent from './AddAgent';
import AgentRow from './AgentRow';
diff --git a/apps/meteor/client/views/omnichannel/departments/DepartmentsTable/DepartmentsTable.tsx b/apps/meteor/client/views/omnichannel/departments/DepartmentsTable/DepartmentsTable.tsx
index 781f4ac80b979..a6cafe6dcfa4c 100644
--- a/apps/meteor/client/views/omnichannel/departments/DepartmentsTable/DepartmentsTable.tsx
+++ b/apps/meteor/client/views/omnichannel/departments/DepartmentsTable/DepartmentsTable.tsx
@@ -1,13 +1,6 @@
import type { ILivechatDepartment } from '@rocket.chat/core-typings';
import { Pagination } from '@rocket.chat/fuselage';
import { useDebouncedValue, useEffectEvent } from '@rocket.chat/fuselage-hooks';
-import { useTranslation, useEndpoint, useRouter } from '@rocket.chat/ui-contexts';
-import { useQuery, hashKey, keepPreviousData } from '@tanstack/react-query';
-import { useState, useMemo } from 'react';
-
-import DepartmentItemMenu from './DepartmentItemMenu';
-import FilterByText from '../../../../components/FilterByText';
-import GenericNoResults from '../../../../components/GenericNoResults/GenericNoResults';
import {
GenericTable,
GenericTableBody,
@@ -16,9 +9,16 @@ import {
GenericTableHeaderCell,
GenericTableLoadingTable,
GenericTableRow,
-} from '../../../../components/GenericTable';
-import { usePagination } from '../../../../components/GenericTable/hooks/usePagination';
-import { useSort } from '../../../../components/GenericTable/hooks/useSort';
+ usePagination,
+ useSort,
+} from '@rocket.chat/ui-client';
+import { useTranslation, useEndpoint, useRouter } from '@rocket.chat/ui-contexts';
+import { useQuery, hashKey, keepPreviousData } from '@tanstack/react-query';
+import { useState, useMemo } from 'react';
+
+import DepartmentItemMenu from './DepartmentItemMenu';
+import FilterByText from '../../../../components/FilterByText';
+import GenericNoResults from '../../../../components/GenericNoResults/GenericNoResults';
import { links } from '../../../../lib/links';
const DEPARTMENTS_ENDPOINTS = {
diff --git a/apps/meteor/client/views/omnichannel/directory/calls/CallTable.tsx b/apps/meteor/client/views/omnichannel/directory/calls/CallTable.tsx
index 5e0da10ca0044..d4bc6bc84ae27 100644
--- a/apps/meteor/client/views/omnichannel/directory/calls/CallTable.tsx
+++ b/apps/meteor/client/views/omnichannel/directory/calls/CallTable.tsx
@@ -1,5 +1,14 @@
import { Pagination } from '@rocket.chat/fuselage';
import { useDebouncedValue, useEffectEvent } from '@rocket.chat/fuselage-hooks';
+import {
+ GenericTable,
+ GenericTableBody,
+ GenericTableHeader,
+ GenericTableHeaderCell,
+ GenericTableLoadingTable,
+ usePagination,
+ useSort,
+} from '@rocket.chat/ui-client';
import { useRoute, useTranslation, useEndpoint, useUserId } from '@rocket.chat/ui-contexts';
import { useQuery, hashKey } from '@tanstack/react-query';
import { useState, useMemo } from 'react';
@@ -7,15 +16,6 @@ import { useState, useMemo } from 'react';
import { CallTableRow } from './CallTableRow';
import FilterByText from '../../../../components/FilterByText';
import GenericNoResults from '../../../../components/GenericNoResults/GenericNoResults';
-import {
- GenericTable,
- GenericTableBody,
- GenericTableHeader,
- GenericTableHeaderCell,
- GenericTableLoadingTable,
-} from '../../../../components/GenericTable';
-import { usePagination } from '../../../../components/GenericTable/hooks/usePagination';
-import { useSort } from '../../../../components/GenericTable/hooks/useSort';
import { links } from '../../../../lib/links';
const CallTable = () => {
diff --git a/apps/meteor/client/views/omnichannel/directory/calls/CallTableRow.tsx b/apps/meteor/client/views/omnichannel/directory/calls/CallTableRow.tsx
index ce5a7f08d2a07..bafac59f9ad39 100644
--- a/apps/meteor/client/views/omnichannel/directory/calls/CallTableRow.tsx
+++ b/apps/meteor/client/views/omnichannel/directory/calls/CallTableRow.tsx
@@ -1,10 +1,10 @@
import type { IVoipRoom, Serialized } from '@rocket.chat/core-typings';
+import { GenericTableRow, GenericTableCell } from '@rocket.chat/ui-client';
import moment from 'moment';
import type { ReactElement } from 'react';
import { useCallback } from 'react';
import { useTranslation } from 'react-i18next';
-import { GenericTableRow, GenericTableCell } from '../../../../components/GenericTable';
import { useIsCallReady } from '../../../../contexts/CallContext';
import { parseOutboundPhoneNumber } from '../../../../lib/voip/parseOutboundPhoneNumber';
import { CallDialpadButton } from '../components/CallDialpadButton';
diff --git a/apps/meteor/client/views/omnichannel/directory/chats/ChatsTable/ChatsTable.tsx b/apps/meteor/client/views/omnichannel/directory/chats/ChatsTable/ChatsTable.tsx
index 7189a3463ed38..e95cccbf2e0d6 100644
--- a/apps/meteor/client/views/omnichannel/directory/chats/ChatsTable/ChatsTable.tsx
+++ b/apps/meteor/client/views/omnichannel/directory/chats/ChatsTable/ChatsTable.tsx
@@ -1,4 +1,13 @@
import { Pagination, States, StatesIcon, StatesTitle, StatesActions, StatesAction } from '@rocket.chat/fuselage';
+import {
+ GenericTable,
+ GenericTableBody,
+ GenericTableHeader,
+ GenericTableHeaderCell,
+ GenericTableLoadingTable,
+ usePagination,
+ useSort,
+} from '@rocket.chat/ui-client';
import { usePermission } from '@rocket.chat/ui-contexts';
import { hashKey } from '@tanstack/react-query';
import { useState, useMemo } from 'react';
@@ -8,15 +17,6 @@ import ChatFilterByText from './ChatsTableFilter';
import ChatsTableRow from './ChatsTableRow';
import { useChatsQuery } from './useChatsQuery';
import GenericNoResults from '../../../../../components/GenericNoResults/GenericNoResults';
-import {
- GenericTable,
- GenericTableBody,
- GenericTableHeader,
- GenericTableHeaderCell,
- GenericTableLoadingTable,
-} from '../../../../../components/GenericTable';
-import { usePagination } from '../../../../../components/GenericTable/hooks/usePagination';
-import { useSort } from '../../../../../components/GenericTable/hooks/useSort';
import { links } from '../../../../../lib/links';
import { useCurrentChats } from '../../../currentChats/hooks/useCurrentChats';
import { useOmnichannelPriorities } from '../../../hooks/useOmnichannelPriorities';
diff --git a/apps/meteor/client/views/omnichannel/directory/chats/ChatsTable/ChatsTableRow.tsx b/apps/meteor/client/views/omnichannel/directory/chats/ChatsTable/ChatsTableRow.tsx
index df5e999ace2f4..2191ed12344a2 100644
--- a/apps/meteor/client/views/omnichannel/directory/chats/ChatsTable/ChatsTableRow.tsx
+++ b/apps/meteor/client/views/omnichannel/directory/chats/ChatsTable/ChatsTableRow.tsx
@@ -1,10 +1,10 @@
import type { IOmnichannelRoomWithDepartment } from '@rocket.chat/core-typings';
import { Tag, Box } from '@rocket.chat/fuselage';
import { useEffectEvent } from '@rocket.chat/fuselage-hooks';
+import { GenericTableCell, GenericTableRow } from '@rocket.chat/ui-client';
import { usePermission, useRoute } from '@rocket.chat/ui-contexts';
import { useTranslation } from 'react-i18next';
-import { GenericTableCell, GenericTableRow } from '../../../../../components/GenericTable';
import { OmnichannelRoomIcon } from '../../../../../components/RoomIcon/OmnichannelRoomIcon';
import { useTimeFromNow } from '../../../../../hooks/useTimeFromNow';
import OmnichannelVerificationTag from '../../../components/OmnichannelVerificationTag';
diff --git a/apps/meteor/client/views/omnichannel/directory/contacts/ContactTable.tsx b/apps/meteor/client/views/omnichannel/directory/contacts/ContactTable.tsx
index 5e0ba0f6ab6c4..8d40fb8676229 100644
--- a/apps/meteor/client/views/omnichannel/directory/contacts/ContactTable.tsx
+++ b/apps/meteor/client/views/omnichannel/directory/contacts/ContactTable.tsx
@@ -1,5 +1,14 @@
import { Pagination, States, StatesAction, StatesActions, StatesIcon, StatesTitle, Box, Button } from '@rocket.chat/fuselage';
import { useDebouncedValue, useEffectEvent } from '@rocket.chat/fuselage-hooks';
+import {
+ GenericTable,
+ GenericTableHeader,
+ GenericTableBody,
+ GenericTableHeaderCell,
+ GenericTableLoadingTable,
+ usePagination,
+ useSort,
+} from '@rocket.chat/ui-client';
import { useRoute } from '@rocket.chat/ui-contexts';
import { hashKey } from '@tanstack/react-query';
import { useMemo, useState } from 'react';
@@ -9,15 +18,6 @@ import ContactTableRow from './ContactTableRow';
import { useCurrentContacts } from './hooks/useCurrentContacts';
import FilterByText from '../../../../components/FilterByText';
import GenericNoResults from '../../../../components/GenericNoResults';
-import {
- GenericTable,
- GenericTableHeader,
- GenericTableBody,
- GenericTableHeaderCell,
- GenericTableLoadingTable,
-} from '../../../../components/GenericTable';
-import { usePagination } from '../../../../components/GenericTable/hooks/usePagination';
-import { useSort } from '../../../../components/GenericTable/hooks/useSort';
import { useIsCallReady } from '../../../../contexts/CallContext';
import { links } from '../../../../lib/links';
diff --git a/apps/meteor/client/views/omnichannel/directory/contacts/ContactTableRow.tsx b/apps/meteor/client/views/omnichannel/directory/contacts/ContactTableRow.tsx
index fa5e898207a9a..4d4f61c2c0f85 100644
--- a/apps/meteor/client/views/omnichannel/directory/contacts/ContactTableRow.tsx
+++ b/apps/meteor/client/views/omnichannel/directory/contacts/ContactTableRow.tsx
@@ -1,10 +1,10 @@
import { Box } from '@rocket.chat/fuselage';
import { useEffectEvent } from '@rocket.chat/fuselage-hooks';
import type { ILivechatContactWithManagerData } from '@rocket.chat/rest-typings';
+import { GenericTableCell, GenericTableRow } from '@rocket.chat/ui-client';
import { useRoute } from '@rocket.chat/ui-contexts';
import ContactItemMenu from './ContactItemMenu';
-import { GenericTableCell, GenericTableRow } from '../../../../components/GenericTable';
import { OmnichannelRoomIcon } from '../../../../components/RoomIcon/OmnichannelRoomIcon';
import { useIsCallReady } from '../../../../contexts/CallContext';
import { useTimeFromNow } from '../../../../hooks/useTimeFromNow';
diff --git a/apps/meteor/client/views/omnichannel/managers/ManagersTable.tsx b/apps/meteor/client/views/omnichannel/managers/ManagersTable.tsx
index 427dffbcc0ceb..3830008cfa4d3 100644
--- a/apps/meteor/client/views/omnichannel/managers/ManagersTable.tsx
+++ b/apps/meteor/client/views/omnichannel/managers/ManagersTable.tsx
@@ -1,14 +1,6 @@
import { Box, Pagination } from '@rocket.chat/fuselage';
import { useDebouncedValue } from '@rocket.chat/fuselage-hooks';
import { UserAvatar } from '@rocket.chat/ui-avatar';
-import { useTranslation, useEndpoint } from '@rocket.chat/ui-contexts';
-import { hashKey, useQuery } from '@tanstack/react-query';
-import { useMemo, useState } from 'react';
-
-import AddManager from './AddManager';
-import RemoveManagerButton from './RemoveManagerButton';
-import FilterByText from '../../../components/FilterByText';
-import GenericNoResults from '../../../components/GenericNoResults/GenericNoResults';
import {
GenericTable,
GenericTableBody,
@@ -17,9 +9,17 @@ import {
GenericTableHeaderCell,
GenericTableLoadingTable,
GenericTableRow,
-} from '../../../components/GenericTable';
-import { usePagination } from '../../../components/GenericTable/hooks/usePagination';
-import { useSort } from '../../../components/GenericTable/hooks/useSort';
+ usePagination,
+ useSort,
+} from '@rocket.chat/ui-client';
+import { useTranslation, useEndpoint } from '@rocket.chat/ui-contexts';
+import { hashKey, useQuery } from '@tanstack/react-query';
+import { useMemo, useState } from 'react';
+
+import AddManager from './AddManager';
+import RemoveManagerButton from './RemoveManagerButton';
+import FilterByText from '../../../components/FilterByText';
+import GenericNoResults from '../../../components/GenericNoResults/GenericNoResults';
import { links } from '../../../lib/links';
import { omnichannelQueryKeys } from '../../../lib/queryKeys';
diff --git a/apps/meteor/client/views/omnichannel/managers/RemoveManagerButton.tsx b/apps/meteor/client/views/omnichannel/managers/RemoveManagerButton.tsx
index b26b5f3c037e2..452d4ff9ad7e1 100644
--- a/apps/meteor/client/views/omnichannel/managers/RemoveManagerButton.tsx
+++ b/apps/meteor/client/views/omnichannel/managers/RemoveManagerButton.tsx
@@ -1,12 +1,11 @@
import { IconButton } from '@rocket.chat/fuselage';
import { useEffectEvent } from '@rocket.chat/fuselage-hooks';
-import { GenericModal } from '@rocket.chat/ui-client';
+import { GenericModal, GenericTableCell } from '@rocket.chat/ui-client';
import { useSetModal, useToastMessageDispatch } from '@rocket.chat/ui-contexts';
import { useQueryClient } from '@tanstack/react-query';
import type { MouseEvent, ReactElement } from 'react';
import { useTranslation } from 'react-i18next';
-import { GenericTableCell } from '../../../components/GenericTable';
import { useEndpointMutation } from '../../../hooks/useEndpointMutation';
import { omnichannelQueryKeys } from '../../../lib/queryKeys';
diff --git a/apps/meteor/client/views/omnichannel/monitors/MonitorsTable.tsx b/apps/meteor/client/views/omnichannel/monitors/MonitorsTable.tsx
index b62a143a8eab6..d632feef52627 100644
--- a/apps/meteor/client/views/omnichannel/monitors/MonitorsTable.tsx
+++ b/apps/meteor/client/views/omnichannel/monitors/MonitorsTable.tsx
@@ -13,14 +13,9 @@ import {
StatesAction,
} from '@rocket.chat/fuselage';
import { useDebouncedValue } from '@rocket.chat/fuselage-hooks';
-import { UserAutoComplete, GenericModal } from '@rocket.chat/ui-client';
-import { useTranslation, useToastMessageDispatch, useEndpoint, useSetModal } from '@rocket.chat/ui-contexts';
-import { useMutation, useQuery, hashKey, useQueryClient } from '@tanstack/react-query';
-import { useMemo, useState } from 'react';
-
-import FilterByText from '../../../components/FilterByText';
-import GenericNoResults from '../../../components/GenericNoResults';
import {
+ UserAutoComplete,
+ GenericModal,
GenericTable,
GenericTableBody,
GenericTableCell,
@@ -28,9 +23,15 @@ import {
GenericTableHeaderCell,
GenericTableLoadingTable,
GenericTableRow,
-} from '../../../components/GenericTable';
-import { usePagination } from '../../../components/GenericTable/hooks/usePagination';
-import { useSort } from '../../../components/GenericTable/hooks/useSort';
+ usePagination,
+ useSort,
+} from '@rocket.chat/ui-client';
+import { useTranslation, useToastMessageDispatch, useEndpoint, useSetModal } from '@rocket.chat/ui-contexts';
+import { useMutation, useQuery, hashKey, useQueryClient } from '@tanstack/react-query';
+import { useMemo, useState } from 'react';
+
+import FilterByText from '../../../components/FilterByText';
+import GenericNoResults from '../../../components/GenericNoResults';
import { links } from '../../../lib/links';
const MonitorsTable = () => {
diff --git a/apps/meteor/client/views/omnichannel/priorities/PrioritiesTable.tsx b/apps/meteor/client/views/omnichannel/priorities/PrioritiesTable.tsx
index d537b8d2444ee..010ea55e31496 100644
--- a/apps/meteor/client/views/omnichannel/priorities/PrioritiesTable.tsx
+++ b/apps/meteor/client/views/omnichannel/priorities/PrioritiesTable.tsx
@@ -1,16 +1,16 @@
import type { ILivechatPriority, Serialized } from '@rocket.chat/core-typings';
-import type { ReactElement } from 'react';
-import { useTranslation } from 'react-i18next';
-
-import PrioritiesTableRow from './PrioritiesTableRow';
-import GenericNoResults from '../../../components/GenericNoResults';
import {
GenericTable,
GenericTableHeaderCell,
GenericTableHeader,
GenericTableBody,
GenericTableLoadingTable,
-} from '../../../components/GenericTable';
+} from '@rocket.chat/ui-client';
+import type { ReactElement } from 'react';
+import { useTranslation } from 'react-i18next';
+
+import PrioritiesTableRow from './PrioritiesTableRow';
+import GenericNoResults from '../../../components/GenericNoResults';
type PrioritiesTableProps = {
priorities?: Serialized[];
diff --git a/apps/meteor/client/views/omnichannel/priorities/PrioritiesTableRow.tsx b/apps/meteor/client/views/omnichannel/priorities/PrioritiesTableRow.tsx
index 2d042bd5b9794..19ad5262ac24f 100644
--- a/apps/meteor/client/views/omnichannel/priorities/PrioritiesTableRow.tsx
+++ b/apps/meteor/client/views/omnichannel/priorities/PrioritiesTableRow.tsx
@@ -1,8 +1,8 @@
import type { LivechatPriorityWeight } from '@rocket.chat/core-typings';
+import { GenericTableCell, GenericTableRow } from '@rocket.chat/ui-client';
import { useTranslation } from 'react-i18next';
import { PriorityIcon } from './PriorityIcon';
-import { GenericTableCell, GenericTableRow } from '../../../components/GenericTable';
type PrioritiesTableRowProps = {
id: string;
diff --git a/apps/meteor/client/views/omnichannel/queueList/QueueListTable.tsx b/apps/meteor/client/views/omnichannel/queueList/QueueListTable.tsx
index e57fa1612cecd..8cb58d0e26a2c 100644
--- a/apps/meteor/client/views/omnichannel/queueList/QueueListTable.tsx
+++ b/apps/meteor/client/views/omnichannel/queueList/QueueListTable.tsx
@@ -2,13 +2,6 @@ import { UserStatus } from '@rocket.chat/core-typings';
import { Box, Pagination } from '@rocket.chat/fuselage';
import { useMediaQuery } from '@rocket.chat/fuselage-hooks';
import { UserAvatar } from '@rocket.chat/ui-avatar';
-import { useTranslation, useEndpoint } from '@rocket.chat/ui-contexts';
-import { useQuery } from '@tanstack/react-query';
-import type { ReactElement } from 'react';
-import { useMemo, useState } from 'react';
-
-import { QueueListFilter } from './QueueListFilter';
-import GenericNoResults from '../../../components/GenericNoResults';
import {
GenericTable,
GenericTableHeader,
@@ -17,9 +10,16 @@ import {
GenericTableRow,
GenericTableCell,
GenericTableLoadingRow,
-} from '../../../components/GenericTable';
-import { usePagination } from '../../../components/GenericTable/hooks/usePagination';
-import { useSort } from '../../../components/GenericTable/hooks/useSort';
+ usePagination,
+ useSort,
+} from '@rocket.chat/ui-client';
+import { useTranslation, useEndpoint } from '@rocket.chat/ui-contexts';
+import { useQuery } from '@tanstack/react-query';
+import type { ReactElement } from 'react';
+import { useMemo, useState } from 'react';
+
+import { QueueListFilter } from './QueueListFilter';
+import GenericNoResults from '../../../components/GenericNoResults';
const QueueListTable = (): ReactElement => {
const t = useTranslation();
diff --git a/apps/meteor/client/views/omnichannel/reports/components/AgentsTable.tsx b/apps/meteor/client/views/omnichannel/reports/components/AgentsTable.tsx
index 1cc997a8c4ca6..1b89a8777b100 100644
--- a/apps/meteor/client/views/omnichannel/reports/components/AgentsTable.tsx
+++ b/apps/meteor/client/views/omnichannel/reports/components/AgentsTable.tsx
@@ -1,7 +1,4 @@
import { useEffectEvent } from '@rocket.chat/fuselage-hooks';
-import { memo } from 'react';
-import { useTranslation } from 'react-i18next';
-
import {
GenericTable,
GenericTableBody,
@@ -9,7 +6,9 @@ import {
GenericTableHeader,
GenericTableHeaderCell,
GenericTableRow,
-} from '../../../../components/GenericTable';
+} from '@rocket.chat/ui-client';
+import { memo } from 'react';
+import { useTranslation } from 'react-i18next';
type AgentsTableProps = {
data: {
diff --git a/apps/meteor/client/views/omnichannel/reports/hooks/useAgentsSection.tsx b/apps/meteor/client/views/omnichannel/reports/hooks/useAgentsSection.tsx
index 11d9bd7152327..1f77423271a7d 100644
--- a/apps/meteor/client/views/omnichannel/reports/hooks/useAgentsSection.tsx
+++ b/apps/meteor/client/views/omnichannel/reports/hooks/useAgentsSection.tsx
@@ -1,10 +1,10 @@
+import { useSort } from '@rocket.chat/ui-client';
import { useEndpoint } from '@rocket.chat/ui-contexts';
import { useQuery } from '@tanstack/react-query';
import { useMemo } from 'react';
import { useTranslation } from 'react-i18next';
import { useDefaultDownload } from './useDefaultDownload';
-import { useSort } from '../../../../components/GenericTable/hooks/useSort';
import { getPeriodRange } from '../../../../components/dashboards/periods';
import { usePeriodSelectorStorage } from '../../../../components/dashboards/usePeriodSelectorStorage';
import { COLORS, PERIOD_OPTIONS } from '../components/constants';
diff --git a/apps/meteor/client/views/omnichannel/slaPolicies/RemoveSlaButton.tsx b/apps/meteor/client/views/omnichannel/slaPolicies/RemoveSlaButton.tsx
index 1f392f0c322c1..ae74f28585b63 100644
--- a/apps/meteor/client/views/omnichannel/slaPolicies/RemoveSlaButton.tsx
+++ b/apps/meteor/client/views/omnichannel/slaPolicies/RemoveSlaButton.tsx
@@ -1,12 +1,10 @@
import { IconButton } from '@rocket.chat/fuselage';
import { useEffectEvent } from '@rocket.chat/fuselage-hooks';
-import { GenericModal } from '@rocket.chat/ui-client';
+import { GenericModal, GenericTableCell } from '@rocket.chat/ui-client';
import { useRoute, useEndpoint, useSetModal, useToastMessageDispatch } from '@rocket.chat/ui-contexts';
import type { MouseEvent } from 'react';
import { useTranslation } from 'react-i18next';
-import { GenericTableCell } from '../../../components/GenericTable';
-
const RemoveSlaButton = ({ _id, reload }: { _id: string; reload: () => void }) => {
const { t } = useTranslation();
const setModal = useSetModal();
diff --git a/apps/meteor/client/views/omnichannel/slaPolicies/SlaTable.tsx b/apps/meteor/client/views/omnichannel/slaPolicies/SlaTable.tsx
index 18aedbdc4f63c..217c927b11632 100644
--- a/apps/meteor/client/views/omnichannel/slaPolicies/SlaTable.tsx
+++ b/apps/meteor/client/views/omnichannel/slaPolicies/SlaTable.tsx
@@ -1,13 +1,5 @@
import { Pagination } from '@rocket.chat/fuselage';
import { useDebouncedValue, useEffectEvent } from '@rocket.chat/fuselage-hooks';
-import { useTranslation, useEndpoint, useRouter } from '@rocket.chat/ui-contexts';
-import { useQuery, hashKey } from '@tanstack/react-query';
-import type { MutableRefObject } from 'react';
-import { useMemo, useState, useEffect } from 'react';
-
-import RemoveSlaButton from './RemoveSlaButton';
-import FilterByText from '../../../components/FilterByText';
-import GenericNoResults from '../../../components/GenericNoResults/GenericNoResults';
import {
GenericTable,
GenericTableHeaderCell,
@@ -16,9 +8,17 @@ import {
GenericTableBody,
GenericTableRow,
GenericTableCell,
-} from '../../../components/GenericTable';
-import { usePagination } from '../../../components/GenericTable/hooks/usePagination';
-import { useSort } from '../../../components/GenericTable/hooks/useSort';
+ usePagination,
+ useSort,
+} from '@rocket.chat/ui-client';
+import { useTranslation, useEndpoint, useRouter } from '@rocket.chat/ui-contexts';
+import { useQuery, hashKey } from '@tanstack/react-query';
+import type { MutableRefObject } from 'react';
+import { useMemo, useState, useEffect } from 'react';
+
+import RemoveSlaButton from './RemoveSlaButton';
+import FilterByText from '../../../components/FilterByText';
+import GenericNoResults from '../../../components/GenericNoResults/GenericNoResults';
import { links } from '../../../lib/links';
const SlaTable = ({ reload }: { reload: MutableRefObject<() => void> }) => {
diff --git a/apps/meteor/client/views/omnichannel/tags/TagsTable.tsx b/apps/meteor/client/views/omnichannel/tags/TagsTable.tsx
index a5f944adb9495..00ea16484f7c6 100644
--- a/apps/meteor/client/views/omnichannel/tags/TagsTable.tsx
+++ b/apps/meteor/client/views/omnichannel/tags/TagsTable.tsx
@@ -1,12 +1,5 @@
import { IconButton, Pagination } from '@rocket.chat/fuselage';
import { useDebouncedValue, useEffectEvent } from '@rocket.chat/fuselage-hooks';
-import { useTranslation, useEndpoint, useRouter } from '@rocket.chat/ui-contexts';
-import { useQuery, hashKey } from '@tanstack/react-query';
-import { useMemo, useState } from 'react';
-
-import { useRemoveTag } from './useRemoveTag';
-import FilterByText from '../../../components/FilterByText';
-import GenericNoResults from '../../../components/GenericNoResults';
import {
GenericTable,
GenericTableRow,
@@ -15,9 +8,16 @@ import {
GenericTableHeaderCell,
GenericTableBody,
GenericTableLoadingRow,
-} from '../../../components/GenericTable';
-import { usePagination } from '../../../components/GenericTable/hooks/usePagination';
-import { useSort } from '../../../components/GenericTable/hooks/useSort';
+ usePagination,
+ useSort,
+} from '@rocket.chat/ui-client';
+import { useTranslation, useEndpoint, useRouter } from '@rocket.chat/ui-contexts';
+import { useQuery, hashKey } from '@tanstack/react-query';
+import { useMemo, useState } from 'react';
+
+import { useRemoveTag } from './useRemoveTag';
+import FilterByText from '../../../components/FilterByText';
+import GenericNoResults from '../../../components/GenericNoResults';
import { links } from '../../../lib/links';
const TagsTable = () => {
diff --git a/apps/meteor/client/views/omnichannel/triggers/TriggersRow.tsx b/apps/meteor/client/views/omnichannel/triggers/TriggersRow.tsx
index a974109fd9487..ca381f25e02d2 100644
--- a/apps/meteor/client/views/omnichannel/triggers/TriggersRow.tsx
+++ b/apps/meteor/client/views/omnichannel/triggers/TriggersRow.tsx
@@ -1,13 +1,11 @@
import type { ILivechatTrigger } from '@rocket.chat/core-typings';
import { IconButton } from '@rocket.chat/fuselage';
import { useEffectEvent } from '@rocket.chat/fuselage-hooks';
-import { GenericModal } from '@rocket.chat/ui-client';
+import { GenericModal, GenericTableCell, GenericTableRow } from '@rocket.chat/ui-client';
import { useSetModal, useToastMessageDispatch, useRoute, useTranslation, useEndpoint } from '@rocket.chat/ui-contexts';
import type { KeyboardEvent, MouseEvent } from 'react';
import { memo } from 'react';
-import { GenericTableCell, GenericTableRow } from '../../../components/GenericTable';
-
type TriggersRowProps = Pick & { reload: () => void };
const TriggersRow = ({ _id, name, description, enabled, reload }: TriggersRowProps) => {
diff --git a/apps/meteor/client/views/omnichannel/triggers/TriggersTable.tsx b/apps/meteor/client/views/omnichannel/triggers/TriggersTable.tsx
index bdc67090e0ca3..081c27e472a73 100644
--- a/apps/meteor/client/views/omnichannel/triggers/TriggersTable.tsx
+++ b/apps/meteor/client/views/omnichannel/triggers/TriggersTable.tsx
@@ -1,5 +1,13 @@
import { Pagination } from '@rocket.chat/fuselage';
import { useEffectEvent } from '@rocket.chat/fuselage-hooks';
+import {
+ GenericTable,
+ GenericTableHeader,
+ GenericTableBody,
+ GenericTableHeaderCell,
+ GenericTableLoadingRow,
+ usePagination,
+} from '@rocket.chat/ui-client';
import { useTranslation, useEndpoint, useRouter } from '@rocket.chat/ui-contexts';
import { useQuery, hashKey } from '@tanstack/react-query';
import { useMemo, useState } from 'react';
@@ -7,14 +15,6 @@ import { useMemo, useState } from 'react';
import TriggersRow from './TriggersRow';
import GenericError from '../../../components/GenericError';
import GenericNoResults from '../../../components/GenericNoResults';
-import {
- GenericTable,
- GenericTableHeader,
- GenericTableBody,
- GenericTableHeaderCell,
- GenericTableLoadingRow,
-} from '../../../components/GenericTable';
-import { usePagination } from '../../../components/GenericTable/hooks/usePagination';
import { links } from '../../../lib/links';
const TriggersTable = () => {
diff --git a/apps/meteor/client/views/omnichannel/units/UnitTableRow.tsx b/apps/meteor/client/views/omnichannel/units/UnitTableRow.tsx
index d7a5f1dd09479..2b546024b268a 100644
--- a/apps/meteor/client/views/omnichannel/units/UnitTableRow.tsx
+++ b/apps/meteor/client/views/omnichannel/units/UnitTableRow.tsx
@@ -1,10 +1,10 @@
import { IconButton } from '@rocket.chat/fuselage';
import { useEffectEvent } from '@rocket.chat/fuselage-hooks';
+import { GenericTableCell, GenericTableRow } from '@rocket.chat/ui-client';
import { useRouter } from '@rocket.chat/ui-contexts';
import { useTranslation } from 'react-i18next';
import { useRemoveUnit } from './useRemoveUnit';
-import { GenericTableCell, GenericTableRow } from '../../../components/GenericTable';
const UnitsTableRow = ({ _id, name, visibility }: { _id: string; name: string; visibility: string }) => {
const { t } = useTranslation();
diff --git a/apps/meteor/client/views/omnichannel/units/UnitsTable.tsx b/apps/meteor/client/views/omnichannel/units/UnitsTable.tsx
index 1d0d194da7f26..ed4a0f88c8e36 100644
--- a/apps/meteor/client/views/omnichannel/units/UnitsTable.tsx
+++ b/apps/meteor/client/views/omnichannel/units/UnitsTable.tsx
@@ -1,5 +1,14 @@
import { Pagination } from '@rocket.chat/fuselage';
import { useDebouncedValue, useEffectEvent } from '@rocket.chat/fuselage-hooks';
+import {
+ GenericTable,
+ GenericTableHeader,
+ GenericTableHeaderCell,
+ GenericTableBody,
+ GenericTableLoadingRow,
+ usePagination,
+ useSort,
+} from '@rocket.chat/ui-client';
import { useEndpoint, useRouter } from '@rocket.chat/ui-contexts';
import { useQuery, hashKey } from '@tanstack/react-query';
import { useMemo, useState } from 'react';
@@ -8,15 +17,6 @@ import { useTranslation } from 'react-i18next';
import UnitTableRow from './UnitTableRow';
import FilterByText from '../../../components/FilterByText';
import GenericNoResults from '../../../components/GenericNoResults/GenericNoResults';
-import {
- GenericTable,
- GenericTableHeader,
- GenericTableHeaderCell,
- GenericTableBody,
- GenericTableLoadingRow,
-} from '../../../components/GenericTable';
-import { usePagination } from '../../../components/GenericTable/hooks/usePagination';
-import { useSort } from '../../../components/GenericTable/hooks/useSort';
import { links } from '../../../lib/links';
const UnitsTable = () => {
diff --git a/apps/meteor/client/views/room/webdav/WebdavFilePickerModal/WebdavFilePickerModal.tsx b/apps/meteor/client/views/room/webdav/WebdavFilePickerModal/WebdavFilePickerModal.tsx
index 87829a054011e..51ca961b6f41c 100644
--- a/apps/meteor/client/views/room/webdav/WebdavFilePickerModal/WebdavFilePickerModal.tsx
+++ b/apps/meteor/client/views/room/webdav/WebdavFilePickerModal/WebdavFilePickerModal.tsx
@@ -2,6 +2,7 @@ import type { IWebdavNode, IWebdavAccountIntegration } from '@rocket.chat/core-t
import type { SelectOption } from '@rocket.chat/fuselage';
import { Modal, Box, IconButton, Select, ModalHeader, ModalTitle, ModalClose, ModalContent, ModalFooter } from '@rocket.chat/fuselage';
import { useEffectEvent, useDebouncedValue } from '@rocket.chat/fuselage-hooks';
+import { useSort } from '@rocket.chat/ui-client';
import { useMethod, useToastMessageDispatch, useTranslation, useSetModal } from '@rocket.chat/ui-contexts';
import type { ReactElement, MouseEvent } from 'react';
import { useState, useEffect, useCallback } from 'react';
@@ -12,7 +13,6 @@ import WebdavFilePickerTable from './WebdavFilePickerTable';
import { sortWebdavNodes } from './lib/sortWebdavNodes';
import { fileUploadIsValidContentType } from '../../../../../app/utils/client';
import FilterByText from '../../../../components/FilterByText';
-import { useSort } from '../../../../components/GenericTable/hooks/useSort';
import FileUploadModal from '../../modals/FileUploadModal';
export type WebdavSortOptions = 'name' | 'size' | 'dataModified';
diff --git a/apps/meteor/client/views/room/webdav/WebdavFilePickerModal/WebdavFilePickerTable.tsx b/apps/meteor/client/views/room/webdav/WebdavFilePickerModal/WebdavFilePickerTable.tsx
index 1dded92bcc2c5..94fde8881321b 100644
--- a/apps/meteor/client/views/room/webdav/WebdavFilePickerModal/WebdavFilePickerTable.tsx
+++ b/apps/meteor/client/views/room/webdav/WebdavFilePickerModal/WebdavFilePickerTable.tsx
@@ -1,12 +1,5 @@
import type { IWebdavNode } from '@rocket.chat/core-typings';
import { Box, Icon } from '@rocket.chat/fuselage';
-import type { ReactElement } from 'react';
-import { useTranslation } from 'react-i18next';
-
-import type { WebdavSortOptions } from './WebdavFilePickerModal';
-import { getNodeFileSize } from './lib/getNodeFileSize';
-import { getNodeIconType } from './lib/getNodeIconType';
-import GenericNoResults from '../../../../components/GenericNoResults';
import {
GenericTable,
GenericTableBody,
@@ -15,7 +8,14 @@ import {
GenericTableHeaderCell,
GenericTableLoadingRow,
GenericTableRow,
-} from '../../../../components/GenericTable';
+} from '@rocket.chat/ui-client';
+import type { ReactElement } from 'react';
+import { useTranslation } from 'react-i18next';
+
+import type { WebdavSortOptions } from './WebdavFilePickerModal';
+import { getNodeFileSize } from './lib/getNodeFileSize';
+import { getNodeIconType } from './lib/getNodeIconType';
+import GenericNoResults from '../../../../components/GenericNoResults';
import { timeAgo } from '../../../../lib/utils/timeAgo';
type WebdavFilePickerTableProps = {
diff --git a/apps/meteor/client/views/teams/ChannelDesertionTable/ChannelDesertionTable.tsx b/apps/meteor/client/views/teams/ChannelDesertionTable/ChannelDesertionTable.tsx
index 97a7c6192c0d3..7df0d6f7ac710 100644
--- a/apps/meteor/client/views/teams/ChannelDesertionTable/ChannelDesertionTable.tsx
+++ b/apps/meteor/client/views/teams/ChannelDesertionTable/ChannelDesertionTable.tsx
@@ -1,12 +1,11 @@
import type { IRoom, Serialized } from '@rocket.chat/core-typings';
import { Box, CheckBox } from '@rocket.chat/fuselage';
+import { GenericTable, GenericTableHeaderCell, GenericTableHeader, GenericTableBody, useSort } from '@rocket.chat/ui-client';
import type { ReactElement } from 'react';
import { useMemo } from 'react';
import { useTranslation } from 'react-i18next';
import ChannelDesertionTableRow from './ChannelDesertionTableRow';
-import { GenericTable, GenericTableHeaderCell, GenericTableHeader, GenericTableBody } from '../../../components/GenericTable';
-import { useSort } from '../../../components/GenericTable/hooks/useSort';
type ChannelDesertionTableProps = {
lastOwnerWarning?: string;
diff --git a/apps/meteor/client/views/teams/ChannelDesertionTable/ChannelDesertionTableRow.tsx b/apps/meteor/client/views/teams/ChannelDesertionTable/ChannelDesertionTableRow.tsx
index 7cb5a4bbc21b1..6cd0512eed69e 100644
--- a/apps/meteor/client/views/teams/ChannelDesertionTable/ChannelDesertionTableRow.tsx
+++ b/apps/meteor/client/views/teams/ChannelDesertionTable/ChannelDesertionTableRow.tsx
@@ -1,9 +1,9 @@
import type { IRoom, Serialized } from '@rocket.chat/core-typings';
import { CheckBox, Icon, Margins } from '@rocket.chat/fuselage';
import { useEffectEvent } from '@rocket.chat/fuselage-hooks';
+import { GenericTableRow, GenericTableCell } from '@rocket.chat/ui-client';
import type { ReactElement } from 'react';
-import { GenericTableRow, GenericTableCell } from '../../../components/GenericTable';
import { useFormatDateAndTime } from '../../../hooks/useFormatDateAndTime';
type ChannelDesertionTableRowProps = {
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 55b8f3f133034..110acce1f99d4 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
@@ -1,10 +1,9 @@
import type { IRoom, Serialized } from '@rocket.chat/core-typings';
import { Box, CheckBox } from '@rocket.chat/fuselage';
+import { GenericTable, GenericTableHeaderCell, GenericTableBody, GenericTableHeader, useSort } from '@rocket.chat/ui-client';
import { useTranslation } from 'react-i18next';
import ChannelDeletionTableRow from './ChannelDeletionTableRow';
-import { GenericTable, GenericTableHeaderCell, GenericTableBody, GenericTableHeader } from '../../../../../../components/GenericTable';
-import { useSort } from '../../../../../../components/GenericTable/hooks/useSort';
type ChannelDeletionTableProps = {
rooms: Serialized[];
diff --git a/apps/meteor/client/views/teams/contextualBar/info/DeleteTeam/ChannelDeletionTable/ChannelDeletionTableRow.tsx b/apps/meteor/client/views/teams/contextualBar/info/DeleteTeam/ChannelDeletionTable/ChannelDeletionTableRow.tsx
index f348d2d26fe6b..827dad67f9877 100644
--- a/apps/meteor/client/views/teams/contextualBar/info/DeleteTeam/ChannelDeletionTable/ChannelDeletionTableRow.tsx
+++ b/apps/meteor/client/views/teams/contextualBar/info/DeleteTeam/ChannelDeletionTable/ChannelDeletionTableRow.tsx
@@ -1,8 +1,8 @@
import type { IRoom, Serialized } from '@rocket.chat/core-typings';
import { CheckBox, Margins } from '@rocket.chat/fuselage';
import { useEffectEvent } from '@rocket.chat/fuselage-hooks';
+import { GenericTableRow, GenericTableCell } from '@rocket.chat/ui-client';
-import { GenericTableRow, GenericTableCell } from '../../../../../../components/GenericTable';
import { RoomIcon } from '../../../../../../components/RoomIcon';
type ChannelDeletionTableRowProps = {
diff --git a/apps/meteor/client/components/GenericTable/GenericTable.stories.tsx b/packages/ui-client/src/components/GenericTable/GenericTable.stories.tsx
similarity index 90%
rename from apps/meteor/client/components/GenericTable/GenericTable.stories.tsx
rename to packages/ui-client/src/components/GenericTable/GenericTable.stories.tsx
index 36a53b918a37d..57a1ed1c4a991 100644
--- a/apps/meteor/client/components/GenericTable/GenericTable.stories.tsx
+++ b/packages/ui-client/src/components/GenericTable/GenericTable.stories.tsx
@@ -10,7 +10,6 @@ import {
GenericTableBody,
GenericTableLoadingTable,
} from '.';
-import GenericNoResults from '../GenericNoResults/GenericNoResults';
export default {
component: GenericTable,
@@ -72,10 +71,3 @@ export const Loading: StoryFn = () => (
>
);
-
-export const NoResults: StoryFn = () => (
- <>
- {filter}
-
- >
-);
diff --git a/apps/meteor/client/components/GenericTable/GenericTable.tsx b/packages/ui-client/src/components/GenericTable/GenericTable.tsx
similarity index 91%
rename from apps/meteor/client/components/GenericTable/GenericTable.tsx
rename to packages/ui-client/src/components/GenericTable/GenericTable.tsx
index e53bc97d75fe7..1f2e52f893442 100644
--- a/apps/meteor/client/components/GenericTable/GenericTable.tsx
+++ b/packages/ui-client/src/components/GenericTable/GenericTable.tsx
@@ -1,8 +1,9 @@
import { Box, Table } from '@rocket.chat/fuselage';
-import { CustomScrollbars } from '@rocket.chat/ui-client';
import type { ComponentProps, ForwardedRef, ReactNode } from 'react';
import { forwardRef } from 'react';
+import { CustomScrollbars } from '../CustomScrollbars';
+
type GenericTableProps = {
fixed?: boolean;
children: ReactNode;
diff --git a/apps/meteor/client/components/GenericTable/GenericTableBody.tsx b/packages/ui-client/src/components/GenericTable/GenericTableBody.tsx
similarity index 100%
rename from apps/meteor/client/components/GenericTable/GenericTableBody.tsx
rename to packages/ui-client/src/components/GenericTable/GenericTableBody.tsx
diff --git a/apps/meteor/client/components/GenericTable/GenericTableCell.tsx b/packages/ui-client/src/components/GenericTable/GenericTableCell.tsx
similarity index 100%
rename from apps/meteor/client/components/GenericTable/GenericTableCell.tsx
rename to packages/ui-client/src/components/GenericTable/GenericTableCell.tsx
diff --git a/apps/meteor/client/components/GenericTable/GenericTableHeader.tsx b/packages/ui-client/src/components/GenericTable/GenericTableHeader.tsx
similarity index 100%
rename from apps/meteor/client/components/GenericTable/GenericTableHeader.tsx
rename to packages/ui-client/src/components/GenericTable/GenericTableHeader.tsx
diff --git a/apps/meteor/client/components/GenericTable/GenericTableHeaderCell.tsx b/packages/ui-client/src/components/GenericTable/GenericTableHeaderCell.tsx
similarity index 100%
rename from apps/meteor/client/components/GenericTable/GenericTableHeaderCell.tsx
rename to packages/ui-client/src/components/GenericTable/GenericTableHeaderCell.tsx
diff --git a/apps/meteor/client/components/GenericTable/GenericTableLoadingRow.tsx b/packages/ui-client/src/components/GenericTable/GenericTableLoadingRow.tsx
similarity index 100%
rename from apps/meteor/client/components/GenericTable/GenericTableLoadingRow.tsx
rename to packages/ui-client/src/components/GenericTable/GenericTableLoadingRow.tsx
diff --git a/apps/meteor/client/components/GenericTable/GenericTableLoadingTable.tsx b/packages/ui-client/src/components/GenericTable/GenericTableLoadingTable.tsx
similarity index 100%
rename from apps/meteor/client/components/GenericTable/GenericTableLoadingTable.tsx
rename to packages/ui-client/src/components/GenericTable/GenericTableLoadingTable.tsx
diff --git a/apps/meteor/client/components/GenericTable/GenericTableRow.tsx b/packages/ui-client/src/components/GenericTable/GenericTableRow.tsx
similarity index 100%
rename from apps/meteor/client/components/GenericTable/GenericTableRow.tsx
rename to packages/ui-client/src/components/GenericTable/GenericTableRow.tsx
diff --git a/apps/meteor/client/components/GenericTable/SortIcon.tsx b/packages/ui-client/src/components/GenericTable/SortIcon.tsx
similarity index 100%
rename from apps/meteor/client/components/GenericTable/SortIcon.tsx
rename to packages/ui-client/src/components/GenericTable/SortIcon.tsx
diff --git a/packages/ui-client/src/components/GenericTable/hooks/index.ts b/packages/ui-client/src/components/GenericTable/hooks/index.ts
new file mode 100644
index 0000000000000..9c6d2d8338a87
--- /dev/null
+++ b/packages/ui-client/src/components/GenericTable/hooks/index.ts
@@ -0,0 +1,6 @@
+export * from './useCurrent';
+export * from './useItemsPerPage';
+export * from './useItemsPerPageLabel';
+export * from './usePagination';
+export * from './useShowingResultsLabel';
+export * from './useSort';
diff --git a/apps/meteor/client/components/GenericTable/hooks/useCurrent.ts b/packages/ui-client/src/components/GenericTable/hooks/useCurrent.ts
similarity index 100%
rename from apps/meteor/client/components/GenericTable/hooks/useCurrent.ts
rename to packages/ui-client/src/components/GenericTable/hooks/useCurrent.ts
diff --git a/apps/meteor/client/components/GenericTable/hooks/useItemsPerPage.ts b/packages/ui-client/src/components/GenericTable/hooks/useItemsPerPage.ts
similarity index 100%
rename from apps/meteor/client/components/GenericTable/hooks/useItemsPerPage.ts
rename to packages/ui-client/src/components/GenericTable/hooks/useItemsPerPage.ts
diff --git a/apps/meteor/client/components/GenericTable/hooks/useItemsPerPageLabel.ts b/packages/ui-client/src/components/GenericTable/hooks/useItemsPerPageLabel.ts
similarity index 100%
rename from apps/meteor/client/components/GenericTable/hooks/useItemsPerPageLabel.ts
rename to packages/ui-client/src/components/GenericTable/hooks/useItemsPerPageLabel.ts
diff --git a/apps/meteor/client/components/GenericTable/hooks/usePagination.ts b/packages/ui-client/src/components/GenericTable/hooks/usePagination.ts
similarity index 100%
rename from apps/meteor/client/components/GenericTable/hooks/usePagination.ts
rename to packages/ui-client/src/components/GenericTable/hooks/usePagination.ts
diff --git a/apps/meteor/client/components/GenericTable/hooks/useShowingResultsLabel.ts b/packages/ui-client/src/components/GenericTable/hooks/useShowingResultsLabel.ts
similarity index 100%
rename from apps/meteor/client/components/GenericTable/hooks/useShowingResultsLabel.ts
rename to packages/ui-client/src/components/GenericTable/hooks/useShowingResultsLabel.ts
diff --git a/apps/meteor/client/components/GenericTable/hooks/useSort.ts b/packages/ui-client/src/components/GenericTable/hooks/useSort.ts
similarity index 100%
rename from apps/meteor/client/components/GenericTable/hooks/useSort.ts
rename to packages/ui-client/src/components/GenericTable/hooks/useSort.ts
diff --git a/apps/meteor/client/components/GenericTable/index.ts b/packages/ui-client/src/components/GenericTable/index.ts
similarity index 92%
rename from apps/meteor/client/components/GenericTable/index.ts
rename to packages/ui-client/src/components/GenericTable/index.ts
index 29855bb106e33..cfd25011de043 100644
--- a/apps/meteor/client/components/GenericTable/index.ts
+++ b/packages/ui-client/src/components/GenericTable/index.ts
@@ -6,3 +6,4 @@ export * from './GenericTableHeaderCell';
export * from './GenericTableLoadingRow';
export * from './GenericTableLoadingTable';
export * from './GenericTableRow';
+export * from './hooks';
diff --git a/packages/ui-client/src/components/index.ts b/packages/ui-client/src/components/index.ts
index 8f4b428f15512..e275cda4125a5 100644
--- a/packages/ui-client/src/components/index.ts
+++ b/packages/ui-client/src/components/index.ts
@@ -21,3 +21,4 @@ export * from './Wizard';
export * from './CustomScrollbars';
export * from './Page';
export * from './InfoPanel';
+export * from './GenericTable';