fix #16: show single monitor

pull/36/head
lyc8503 2024-05-12 01:57:28 +08:00
parent e4eb015991
commit d791c187c8
1 changed files with 19 additions and 0 deletions

View File

@ -8,6 +8,7 @@ import OverallStatus from '@/components/OverallStatus'
import Header from '@/components/Header' import Header from '@/components/Header'
import MonitorList from '@/components/MonitorList' import MonitorList from '@/components/MonitorList'
import { Center, Divider, Text } from '@mantine/core' import { Center, Divider, Text } from '@mantine/core'
import MonitorDetail from '@/components/MonitorDetail'
export const runtime = 'experimental-edge' export const runtime = 'experimental-edge'
const inter = Inter({ subsets: ['latin'] }) const inter = Inter({ subsets: ['latin'] })
@ -24,6 +25,24 @@ export default function Home({
state = JSON.parse(stateStr) as MonitorState state = JSON.parse(stateStr) as MonitorState
} }
// Specify monitorId in URL hash to view a specific monitor (can be used in iframe)
const monitorId = window.location.hash.substring(1);
if (monitorId) {
const monitor = monitors.find((monitor) => monitor.id === monitorId);
if (!monitor || !state) {
return (
<Text fw={700}>
Monitor with id {monitorId} not found!
</Text>
)
}
return (
<div style={{ maxWidth: '810px' }}>
<MonitorDetail monitor={monitor} state={state} />
</div>
)
}
return ( return (
<> <>
<Head> <Head>