feat: allow link to be passed from outside - and external or internal
parent
04f64e6c58
commit
09077c4506
|
|
@ -5,13 +5,16 @@ import DetailChart from './DetailChart'
|
||||||
import DetailBar from './DetailBar'
|
import DetailBar from './DetailBar'
|
||||||
import { getColor } from '@/util/color'
|
import { getColor } from '@/util/color'
|
||||||
import { maintenances } from '@/uptime.config'
|
import { maintenances } from '@/uptime.config'
|
||||||
|
import Link from 'next/link'
|
||||||
|
|
||||||
export default function MonitorDetail({
|
export default function MonitorDetail({
|
||||||
monitor,
|
monitor,
|
||||||
state,
|
state,
|
||||||
|
link,
|
||||||
}: {
|
}: {
|
||||||
monitor: MonitorTarget
|
monitor: MonitorTarget
|
||||||
state: MonitorState
|
state: MonitorState
|
||||||
|
link?: string
|
||||||
}) {
|
}) {
|
||||||
if (!state.latency[monitor.id])
|
if (!state.latency[monitor.id])
|
||||||
return (
|
return (
|
||||||
|
|
@ -65,10 +68,10 @@ export default function MonitorDetail({
|
||||||
// Conditionally render monitor name with or without hyperlink based on monitor.url presence
|
// Conditionally render monitor name with or without hyperlink based on monitor.url presence
|
||||||
const monitorNameElement = (
|
const monitorNameElement = (
|
||||||
<Text mt="sm" fw={700} style={{ display: 'inline-flex', alignItems: 'center' }}>
|
<Text mt="sm" fw={700} style={{ display: 'inline-flex', alignItems: 'center' }}>
|
||||||
{monitor.statusPageLink ? (
|
{link ? (
|
||||||
<a
|
<a
|
||||||
href={monitor.statusPageLink}
|
href={link}
|
||||||
target="_blank"
|
target={link.startsWith('/') ? '_self' : '_blank'}
|
||||||
style={{ display: 'inline-flex', alignItems: 'center', color: 'inherit' }}
|
style={{ display: 'inline-flex', alignItems: 'center', color: 'inherit' }}
|
||||||
>
|
>
|
||||||
{statusIcon} {monitor.name}
|
{statusIcon} {monitor.name}
|
||||||
|
|
|
||||||
|
|
@ -76,7 +76,11 @@ export default function MonitorList({
|
||||||
.map((monitor) => (
|
.map((monitor) => (
|
||||||
<div key={monitor.id}>
|
<div key={monitor.id}>
|
||||||
<Card.Section ml="xs" mr="xs">
|
<Card.Section ml="xs" mr="xs">
|
||||||
<MonitorDetail monitor={monitor} state={state} />
|
<MonitorDetail
|
||||||
|
link={`/monitor/${monitor.id}`}
|
||||||
|
monitor={monitor}
|
||||||
|
state={state}
|
||||||
|
/>
|
||||||
</Card.Section>
|
</Card.Section>
|
||||||
</div>
|
</div>
|
||||||
))}
|
))}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue