mirror of
https://github.com/Crosstalk-Solutions/project-nomad.git
synced 2026-03-31 14:09:26 +02:00
Adiciona monitoramento de disco com alertas globais quando o uso ultrapassa thresholds configuráveis (85% warning, 95% critical). - Novo endpoint GET /api/system/disk-status - getDiskStatus() no SystemService com thresholds via KVStore - Hook useDiskAlert com polling de 45s e dismiss via localStorage - DiskAlertBanner no AppLayout visível em todas as páginas - Banner reaparece se o nível de alerta piorar Closes #485
29 lines
823 B
TypeScript
29 lines
823 B
TypeScript
import { useTranslation } from 'react-i18next'
|
|
import Alert from './Alert'
|
|
import { useDiskAlert } from '~/hooks/useDiskAlert'
|
|
|
|
export default function DiskAlertBanner() {
|
|
const { t } = useTranslation('common')
|
|
const { diskStatus, shouldShow, dismiss } = useDiskAlert()
|
|
|
|
if (!shouldShow || !diskStatus) return null
|
|
|
|
const isWarning = diskStatus.level === 'warning'
|
|
|
|
return (
|
|
<div className="px-4 pt-4">
|
|
<Alert
|
|
type={isWarning ? 'warning' : 'error'}
|
|
variant="bordered"
|
|
title={isWarning ? t('alerts.diskWarningTitle') : t('alerts.diskCriticalTitle')}
|
|
message={t('alerts.diskMessage', {
|
|
diskName: diskStatus.diskName,
|
|
usage: diskStatus.highestUsage.toFixed(1),
|
|
})}
|
|
dismissible={true}
|
|
onDismiss={dismiss}
|
|
/>
|
|
</div>
|
|
)
|
|
}
|