From 03ce8f84ea09655aa569655e3caa740d77d06e33 Mon Sep 17 00:00:00 2001 From: Alex Holliday Date: Wed, 7 Jan 2026 21:39:32 +0000 Subject: [PATCH] fe --- client/src/pages/maintenance/Maintenance.tsx | 22 ++++++++++--------- .../src/pages/maintenance/MaintenanceForm.tsx | 6 ++--- client/src/types/maintenance.ts | 14 ++++++------ server/src/init/services.ts | 7 +++++- 4 files changed, 28 insertions(+), 21 deletions(-) diff --git a/client/src/pages/maintenance/Maintenance.tsx b/client/src/pages/maintenance/Maintenance.tsx index 163c75fd1..92f10c955 100644 --- a/client/src/pages/maintenance/Maintenance.tsx +++ b/client/src/pages/maintenance/Maintenance.tsx @@ -12,7 +12,7 @@ import { useNavigate } from "react-router"; import type { Header } from "@/components/design-elements/Table"; import { useTranslation } from "react-i18next"; import type { ApiResponse } from "@/types/api"; -import type { IMaintenance } from "@/types/maintenance"; +import type { Maintenance } from "@/types/maintenance"; import type { ActionMenuItem } from "@/components/actions-menu"; import { config } from "@/config/index"; @@ -20,11 +20,13 @@ const MaintenancePage = () => { const theme = useTheme(); const { t } = useTranslation(); const [selectedMaintenance, setSelectedMaintenance] = - useState(null); + useState(null); const open = Boolean(selectedMaintenance); const { patch, loading: isPausing } = usePatch<{}, any>(); - const { response, isValidating, refetch } = useGet>( + const { response, isValidating, refetch } = useGet< + ApiResponse + >( "/maintenance", {}, { @@ -43,7 +45,7 @@ const MaintenancePage = () => { const handleConfirm = async () => { if (!selectedMaintenance) return; - const res = await deleteFn(`/maintenance/${selectedMaintenance._id}`); + const res = await deleteFn(`/maintenance/${selectedMaintenance.id}`); if (res) { setSelectedMaintenance(null); refetch(); @@ -54,13 +56,13 @@ const MaintenancePage = () => { setSelectedMaintenance(null); }; - const getActions = (maintenance: IMaintenance): ActionMenuItem[] => { + const getActions = (maintenance: Maintenance): ActionMenuItem[] => { return [ { id: 1, label: "Configure", action: () => { - navigate(`/maintenance/${maintenance._id}/configure`); + navigate(`/maintenance/${maintenance.id}/configure`); }, closeMenu: true, }, @@ -68,7 +70,7 @@ const MaintenancePage = () => { id: 2, label: maintenance.isActive ? "Disable" : "Enable", action: async () => { - const res = await patch(`/maintenance/${maintenance._id}/active`, {}); + const res = await patch(`/maintenance/${maintenance.id}/active`, {}); if (res) { refetch(); } @@ -87,7 +89,7 @@ const MaintenancePage = () => { }; const getHeaders = () => { - const headers: Header[] = [ + const headers: Header[] = [ { id: "name", content: t("common.table.headers.name"), @@ -148,8 +150,8 @@ const MaintenancePage = () => { { - navigate(`/maintenance/${row._id}/configure`); + onRowClick={(row: Maintenance) => { + navigate(`/maintenance/${row.id}/configure`); }} /> diff --git a/client/src/pages/maintenance/MaintenanceForm.tsx b/client/src/pages/maintenance/MaintenanceForm.tsx index 388deb925..0465ec910 100644 --- a/client/src/pages/maintenance/MaintenanceForm.tsx +++ b/client/src/pages/maintenance/MaintenanceForm.tsx @@ -177,8 +177,8 @@ export const MaintenanceForm = ({ control={control} defaultValue={[]} render={({ field }) => { - const selectedMonitors = monitorOptions.filter((o: any) => - (field.value || []).includes(o._id) + const selectedMonitors = monitorOptions.filter((o: IMonitor) => + (field.value || []).includes(o.id) ); const count = selectedMonitors.length; @@ -193,7 +193,7 @@ export const MaintenanceForm = ({ getOptionLabel={(option) => option.name} value={selectedMonitors} onChange={(_, newValue) => { - field.onChange(newValue.map((o: any) => o._id)); + field.onChange(newValue.map((o: IMonitor) => o.id)); }} renderInput={(params) => ( { @@ -59,6 +60,7 @@ export const initServices = async () => { const teamMembershipRepository = new MongoTeamMembershipRepository(); const orgRepository = new MongoOrgRepository(); const orgMembershipRepository = new MongoOrgMembershipRepository(); + const maintenanceRepository = new MongoMaintenanceRepository(); const checkService = new CheckService(checksRepository, monitorRepository); const inviteService = new InviteService( @@ -68,7 +70,10 @@ export const initServices = async () => { inviteRepository, teamMembershipRepository ); - const maintenanceService = new MaintenanceService(monitorRepository); + const maintenanceService = new MaintenanceService( + maintenanceRepository, + monitorRepository + ); const monitorStatsService = new MonitorStatsService( monitorRepository, monitorStatsRepository