From 5cefdd900ce51744ddf1412aa19d57df6984f377 Mon Sep 17 00:00:00 2001 From: juliajforesti Date: Fri, 29 Apr 2022 11:15:39 -0300 Subject: [PATCH] Convert client/views/admin/federationDashboard folder --- apps/meteor/client/contexts/ServerContext/methods.ts | 5 ++++- ...onDashboardPage.js => FederationDashboardPage.tsx} | 4 ++-- .../{OverviewSection.js => OverviewSection.tsx} | 4 ++-- .../{ServersSection.js => ServersSection.tsx} | 11 +++++++---- 4 files changed, 15 insertions(+), 9 deletions(-) rename apps/meteor/client/views/admin/federationDashboard/{FederationDashboardPage.js => FederationDashboardPage.tsx} (85%) rename apps/meteor/client/views/admin/federationDashboard/{OverviewSection.js => OverviewSection.tsx} (93%) rename apps/meteor/client/views/admin/federationDashboard/{ServersSection.js => ServersSection.tsx} (57%) diff --git a/apps/meteor/client/contexts/ServerContext/methods.ts b/apps/meteor/client/contexts/ServerContext/methods.ts index db73cd579ad0..d61521ea87e9 100644 --- a/apps/meteor/client/contexts/ServerContext/methods.ts +++ b/apps/meteor/client/contexts/ServerContext/methods.ts @@ -1,7 +1,8 @@ -import type { IRoom, ISetting, IUser } from '@rocket.chat/core-typings'; +import type { IFederationServer, IRoom, ISetting, IUser } from '@rocket.chat/core-typings'; import type { DeleteWriteOpResultObject } from 'mongodb'; import { ILicenseTag } from '../../../ee/app/license/definitions/ILicenseTag'; +import { AsyncStatePhase } from '../../lib/asyncState'; import { AddWebdavAccountMethod } from './methods/addWebdavAccount'; import { FollowMessageMethod } from './methods/followMessage'; import { GetReadReceiptsMethod } from './methods/getReadReceipts'; @@ -62,6 +63,8 @@ export type ServerMethods = { 'deleteUserOwnAccount': (...args: any[]) => any; 'e2e.resetOwnE2EKey': (...args: any[]) => any; 'eraseRoom': (...args: any[]) => any; + 'federation:getServers': (...args: any[]) => { value: { data: IFederationServer[] }; phase: AsyncStatePhase }; + 'federation:getOverviewData': (...args: any[]) => (...args: any[]) => { value: { data: IFederationServer[] }; phase: AsyncStatePhase }; 'followMessage': FollowMessageMethod; 'getAvatarSuggestion': (...args: any[]) => any; 'getSetupWizardParameters': () => { diff --git a/apps/meteor/client/views/admin/federationDashboard/FederationDashboardPage.js b/apps/meteor/client/views/admin/federationDashboard/FederationDashboardPage.tsx similarity index 85% rename from apps/meteor/client/views/admin/federationDashboard/FederationDashboardPage.js rename to apps/meteor/client/views/admin/federationDashboard/FederationDashboardPage.tsx index 861a65d405dc..f0c48ed6445d 100644 --- a/apps/meteor/client/views/admin/federationDashboard/FederationDashboardPage.js +++ b/apps/meteor/client/views/admin/federationDashboard/FederationDashboardPage.tsx @@ -1,12 +1,12 @@ import { Box } from '@rocket.chat/fuselage'; -import React from 'react'; +import React, { ReactElement } from 'react'; import Page from '../../../components/Page'; import { useTranslation } from '../../../contexts/TranslationContext'; import OverviewSection from './OverviewSection'; import ServersSection from './ServersSection'; -function FederationDashboardPage() { +function FederationDashboardPage(): ReactElement { const t = useTranslation(); return ( diff --git a/apps/meteor/client/views/admin/federationDashboard/OverviewSection.js b/apps/meteor/client/views/admin/federationDashboard/OverviewSection.tsx similarity index 93% rename from apps/meteor/client/views/admin/federationDashboard/OverviewSection.js rename to apps/meteor/client/views/admin/federationDashboard/OverviewSection.tsx index b27898830d86..36770204dd02 100644 --- a/apps/meteor/client/views/admin/federationDashboard/OverviewSection.js +++ b/apps/meteor/client/views/admin/federationDashboard/OverviewSection.tsx @@ -1,12 +1,12 @@ import { Box, Skeleton } from '@rocket.chat/fuselage'; -import React, { useMemo } from 'react'; +import React, { ReactElement, useMemo } from 'react'; import CounterSet from '../../../components/data/CounterSet'; import { useTranslation } from '../../../contexts/TranslationContext'; import { AsyncStatePhase } from '../../../hooks/useAsyncState'; import { usePolledMethodData } from '../../../hooks/usePolledMethodData'; -function OverviewSection() { +function OverviewSection(): ReactElement { const t = useTranslation(); const { value: overviewData, phase: overviewStatus } = usePolledMethodData( 'federation:getOverviewData', diff --git a/apps/meteor/client/views/admin/federationDashboard/ServersSection.js b/apps/meteor/client/views/admin/federationDashboard/ServersSection.tsx similarity index 57% rename from apps/meteor/client/views/admin/federationDashboard/ServersSection.js rename to apps/meteor/client/views/admin/federationDashboard/ServersSection.tsx index eedec9b583c6..e0234d46884f 100644 --- a/apps/meteor/client/views/admin/federationDashboard/ServersSection.js +++ b/apps/meteor/client/views/admin/federationDashboard/ServersSection.tsx @@ -1,18 +1,21 @@ +import type { IFederationServer } from '@rocket.chat/core-typings'; import { Box, Throbber } from '@rocket.chat/fuselage'; -import React, { useMemo } from 'react'; +import React, { useMemo, ReactElement } from 'react'; import { AsyncStatePhase } from '../../../hooks/useAsyncState'; import { usePolledMethodData } from '../../../hooks/usePolledMethodData'; -function ServersSection() { - const { value: serversData, phase: serversStatus } = usePolledMethodData( +type FederationServer = { value: { data: IFederationServer[] } | undefined; phase: AsyncStatePhase }; + +function ServersSection(): ReactElement | null { + const { value: serversData, phase: serversStatus }: FederationServer = usePolledMethodData( 'federation:getServers', useMemo(() => [], []), 10000, ); if (serversStatus === AsyncStatePhase.LOADING) { - return ; + return ; } if (serversData?.data?.length === 0) {