This commit is contained in:
Alex Holliday committed 2026-01-30 21:26:17 +00:00
1 parent 206c5577a6
commit 791b9fc7a2
4 files changed
+21 -3

No files matched your search

@@ -6,7 +6,7 @@ import useMediaQuery from "@mui/material/useMediaQuery";
import type { MonitorType } from "@/Types/Monitor";
import { Typography, useTheme } from "@mui/material";
const types = ["http", "ping", "port", "docker"];
const types = ["http", "ping", "port", "docker", "game"];
const statuses = ["up", "down"];
const states = ["active", "paused"];
+9 -1
View File
@@ -29,7 +29,7 @@ import {
} from "@/Components/v2/inputs";
import { useGet, usePost, usePatch, useDelete } from "@/Hooks/UseApi";
import { useMonitorForm } from "@/Hooks/useMonitorForm";
import type { Monitor, MonitorType } from "@/Types/Monitor";
import type { Monitor, MonitorType, GamesMap } from "@/Types/Monitor";
import type { Notification } from "@/Types/Notification";
import type { MonitorFormData } from "@/Validation/monitor";
@@ -146,6 +146,8 @@ const CreateMonitorPage = () => {
// Fetch notifications for the team
const { data: notifications } = useGet<Notification[]>("/notifications/team");
// Fetch games for game type monitors
const { data: games } = useGet<GamesMap>("/monitors/games");
const { schema, defaults } = useMonitorForm({
data: existingMonitor ?? null,
@@ -357,6 +359,12 @@ const CreateMonitorPage = () => {
error={!!fieldState.error}
>
<MenuItem value="">Select a game</MenuItem>
{games &&
Object.entries(games).map(([key, game]) => (
<MenuItem key={key} value={key}>
{game.name}
</MenuItem>
))}
</Select>
)}
/>
+1 -1
View File
@@ -70,7 +70,7 @@ const UptimeMonitorsPage = () => {
// Default to all types when none selected
const effectiveTypes =
selectedTypes.length > 0 ? selectedTypes : ["http", "ping", "docker", "port"];
selectedTypes.length > 0 ? selectedTypes : ["http", "ping", "docker", "port", "game"];
// Build URL for monitors with checks
const monitorsWithChecksUrl = useMemo(() => {
+10
View File
@@ -156,3 +156,13 @@ export interface HardwareDetailsResponse {
stats: HardwareStats;
monitorStats: MonitorStats | null;
}
export interface Game {
name: string;
options?: {
port?: number;
};
}
export type GamesMap = Record<string, Game>;