project-nomad/admin/inertia/components/DiskAlertBanner.tsx
LuisMIguelFurlanettoSousa 67fc9290d8 feat(system): adicionar notificações de espaço em disco
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
2026-03-23 11:15:53 -03:00

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>
)
}