diff --git a/.changeset/fix-missing-error-state-tables.md b/.changeset/fix-missing-error-state-tables.md new file mode 100644 index 0000000000000..fba9b1adbe0bd --- /dev/null +++ b/.changeset/fix-missing-error-state-tables.md @@ -0,0 +1,5 @@ +--- +"@rocket.chat/meteor": patch +--- + +fix: add missing error state to ModerationConsoleTable and CustomUserStatusTable diff --git a/apps/meteor/client/views/admin/customUserStatus/CustomUserStatusTable/CustomUserStatusTable.tsx b/apps/meteor/client/views/admin/customUserStatus/CustomUserStatusTable/CustomUserStatusTable.tsx index d3791a6627cf2..f479db67e85e2 100644 --- a/apps/meteor/client/views/admin/customUserStatus/CustomUserStatusTable/CustomUserStatusTable.tsx +++ b/apps/meteor/client/views/admin/customUserStatus/CustomUserStatusTable/CustomUserStatusTable.tsx @@ -1,4 +1,4 @@ -import { Pagination } from '@rocket.chat/fuselage'; +import { Pagination, States, StatesIcon, StatesActions, StatesAction, StatesTitle } from '@rocket.chat/fuselage'; import { useDebouncedValue } from '@rocket.chat/fuselage-hooks'; import { escapeRegExp } from '@rocket.chat/string-helpers'; import { @@ -25,7 +25,6 @@ type CustomUserStatusProps = { onClick: (id: string) => void; }; -// TODO: Missing error state const CustomUserStatus = ({ reload, onClick }: CustomUserStatusProps): ReactElement | null => { const { t } = useTranslation(); const [text, setText] = useState(''); @@ -47,7 +46,7 @@ const CustomUserStatus = ({ reload, onClick }: CustomUserStatusProps): ReactElem const getCustomUserStatus = useEndpoint('GET', '/v1/custom-user-status.list'); - const { data, isLoading, refetch, isFetched } = useQuery({ + const { data, isLoading, refetch, isFetched, isError } = useQuery({ queryKey: ['custom-user-statuses', query], queryFn: async () => { @@ -63,6 +62,18 @@ const CustomUserStatus = ({ reload, onClick }: CustomUserStatusProps): ReactElem reload.current = refetch; }, [reload, refetch]); + if (isError && !data) { + return ( + + + {t('Something_went_wrong')} + + refetch()}>{t('Reload_page')} + + + ); + } + if (!data) { return null; } diff --git a/apps/meteor/client/views/admin/moderation/ModerationConsoleTable.tsx b/apps/meteor/client/views/admin/moderation/ModerationConsoleTable.tsx index 51f646d7ab0af..d45dc1c75a199 100644 --- a/apps/meteor/client/views/admin/moderation/ModerationConsoleTable.tsx +++ b/apps/meteor/client/views/admin/moderation/ModerationConsoleTable.tsx @@ -1,5 +1,5 @@ import type { IUser } from '@rocket.chat/core-typings'; -import { Pagination } from '@rocket.chat/fuselage'; +import { Pagination, States, StatesIcon, StatesActions, StatesAction, StatesTitle } from '@rocket.chat/fuselage'; import { useDebouncedValue, useMediaQuery, useEffectEvent } from '@rocket.chat/fuselage-hooks'; import { GenericTable, @@ -19,7 +19,6 @@ import ModerationConsoleTableRow from './ModerationConsoleTableRow'; import ModerationFilter from './helpers/ModerationFilter'; import GenericNoResults from '../../../components/GenericNoResults'; -// TODO: Missing error state const ModerationConsoleTable = () => { const [text, setText] = useState(''); const router = useRouter(); @@ -54,7 +53,7 @@ const ModerationConsoleTable = () => { const getReports = useEndpoint('GET', '/v1/moderation.reportsByUsers'); - const { data, isLoading, isSuccess } = useQuery({ + const { data, isLoading, isSuccess, isError, refetch } = useQuery({ queryKey: ['moderation', 'msgReports', 'fetchAll', query], queryFn: async () => getReports(query), meta: { @@ -135,6 +134,15 @@ const ModerationConsoleTable = () => { )} {isSuccess && data.reports.length === 0 && } + {isError && !data && ( + + + {t('Something_went_wrong')} + + refetch()}>{t('Reload_page')} + + + )} ); };