<img width="573" alt="Screenshot 2025-03-12 at 17 36 44" src="https://github.com/user-attachments/assets/be6c20b0-626d-4a2c-810c-78a49e9f65ee" /> <img width="579" alt="Screenshot 2025-03-12 at 17 37 03" src="https://github.com/user-attachments/assets/23692ff8-ac88-4104-823e-1a06b3074551" /> <img width="590" alt="Screenshot 2025-03-12 at 17 37 14" src="https://github.com/user-attachments/assets/b46de1d3-a312-44cc-a54d-72208224453d" /> <img width="556" alt="Screenshot 2025-03-12 at 17 37 37" src="https://github.com/user-attachments/assets/12176d49-d76d-4fb1-abe6-1f7dc5349d94" /> <img width="607" alt="Screenshot 2025-03-12 at 17 37 50" src="https://github.com/user-attachments/assets/00e2edff-09db-45c5-a4df-6fd9ead830b6" />
101 lines
3.8 KiB
TypeScript
101 lines
3.8 KiB
TypeScript
import { SettingsAdminHealthStatusRightContainer } from '@/settings/admin-panel/health-status/components/SettingsAdminHealthStatusRightContainer';
|
|
import { SettingsAdminIndicatorHealthStatusContent } from '@/settings/admin-panel/health-status/components/SettingsAdminIndicatorHealthStatusContent';
|
|
import { SettingsAdminIndicatorHealthContext } from '@/settings/admin-panel/health-status/contexts/SettingsAdminIndicatorHealthContext';
|
|
import { SettingsPageContainer } from '@/settings/components/SettingsPageContainer';
|
|
import { SettingsSkeletonLoader } from '@/settings/components/SettingsSkeletonLoader';
|
|
import { SettingsPath } from '@/types/SettingsPath';
|
|
import { SubMenuTopBarContainer } from '@/ui/layout/page/components/SubMenuTopBarContainer';
|
|
import styled from '@emotion/styled';
|
|
import { useLingui } from '@lingui/react/macro';
|
|
import { useParams } from 'react-router-dom';
|
|
import { H2Title, H3Title, Section } from 'twenty-ui';
|
|
import {
|
|
AdminPanelHealthServiceStatus,
|
|
HealthIndicatorId,
|
|
useGetIndicatorHealthStatusQuery,
|
|
} from '~/generated/graphql';
|
|
import { getSettingsPath } from '~/utils/navigation/getSettingsPath';
|
|
|
|
const StyledTitleContainer = styled.div`
|
|
align-items: center;
|
|
display: flex;
|
|
gap: ${({ theme }) => theme.spacing(4)};
|
|
margin-top: ${({ theme }) => theme.spacing(2)};
|
|
`;
|
|
|
|
export const SettingsAdminIndicatorHealthStatus = () => {
|
|
const { t } = useLingui();
|
|
const { indicatorId } = useParams();
|
|
const { data, loading: loadingIndicatorHealthStatus } =
|
|
useGetIndicatorHealthStatusQuery({
|
|
variables: {
|
|
indicatorId: indicatorId as HealthIndicatorId,
|
|
},
|
|
fetchPolicy: 'network-only',
|
|
});
|
|
|
|
if (loadingIndicatorHealthStatus) {
|
|
return <SettingsSkeletonLoader />;
|
|
}
|
|
|
|
return (
|
|
<SubMenuTopBarContainer
|
|
links={[
|
|
{
|
|
children: t`Other`,
|
|
href: getSettingsPath(SettingsPath.AdminPanel),
|
|
},
|
|
{
|
|
children: t`Admin Panel`,
|
|
href: getSettingsPath(SettingsPath.AdminPanel),
|
|
},
|
|
{
|
|
children: t`Health Status`,
|
|
href: getSettingsPath(SettingsPath.AdminPanelHealthStatus),
|
|
},
|
|
{ children: `${data?.getIndicatorHealthStatus?.label}` },
|
|
]}
|
|
>
|
|
<SettingsPageContainer>
|
|
<SettingsAdminIndicatorHealthContext.Provider
|
|
value={{
|
|
indicatorHealth: {
|
|
id: data?.getIndicatorHealthStatus?.id ?? '',
|
|
label: data?.getIndicatorHealthStatus?.label ?? '',
|
|
description: data?.getIndicatorHealthStatus?.description ?? '',
|
|
errorMessage: data?.getIndicatorHealthStatus?.errorMessage,
|
|
status:
|
|
data?.getIndicatorHealthStatus?.status ??
|
|
AdminPanelHealthServiceStatus.OUTAGE,
|
|
details: data?.getIndicatorHealthStatus?.details,
|
|
queues: data?.getIndicatorHealthStatus?.queues,
|
|
},
|
|
}}
|
|
>
|
|
<Section>
|
|
<StyledTitleContainer>
|
|
<H3Title title={data?.getIndicatorHealthStatus?.label} />
|
|
{data?.getIndicatorHealthStatus?.status && (
|
|
<SettingsAdminHealthStatusRightContainer
|
|
status={data?.getIndicatorHealthStatus.status}
|
|
/>
|
|
)}
|
|
</StyledTitleContainer>
|
|
</Section>
|
|
<Section>
|
|
{data?.getIndicatorHealthStatus?.id !== HealthIndicatorId.worker &&
|
|
data?.getIndicatorHealthStatus?.id !==
|
|
HealthIndicatorId.connectedAccount && (
|
|
<H2Title
|
|
title={t`Status`}
|
|
description={data?.getIndicatorHealthStatus?.description}
|
|
/>
|
|
)}
|
|
<SettingsAdminIndicatorHealthStatusContent />
|
|
</Section>
|
|
</SettingsAdminIndicatorHealthContext.Provider>
|
|
</SettingsPageContainer>
|
|
</SubMenuTopBarContainer>
|
|
);
|
|
};
|