chore(web): update ESLint configuration and improve component layouts
Build, Test, and Push CFDM Docker Image / test (push) Failing after 3m29s
Build, Test, and Push CFDM Docker Image / build-and-push (push) Has been skipped
Build, Test, and Push CFDM Docker Image / create-release (push) Has been skipped
Build, Test, and Push CFDM Docker Image / update-wiki (push) Has been skipped

- Modified ESLint configuration to include additional global ignores for better linting control.
- Updated component layouts in the ReUI kit to use flexbox for improved spacing and alignment.
- Refactored the CertificatesPage to optimize chart data handling and state management.
- Enhanced DashboardPage with state management for current timestamp to streamline expiration checks.

Co-authored-by: Cursor <[email protected]>
This commit is contained in:
Denozordec
2026-07-10 00:38:23 +07:00
co-authored by Cursor
parent 29e57666e0
commit a55200e623
6 changed files with 18 additions and 21 deletions
+5 -7
View File
@@ -62,10 +62,9 @@ function CertificatesPage() {
const filterFields = useCertFilterFields()
const columns = useCertificateColumns()
const chartData = summary?.map(([status, count]) => ({ status, count })) ?? []
const kpiStrip = useMemo(
() => (
const kpiStrip = useMemo(() => {
const chartData = summary?.map(([status, count]) => ({ status, count })) ?? []
return (
<div className="grid gap-4 sm:grid-cols-2 lg:grid-cols-4">
{chartData.length === 0 ? (
<Frame dense spacing="sm" className="sm:col-span-2 lg:col-span-4">
@@ -91,9 +90,8 @@ function CertificatesPage() {
))
)}
</div>
),
[chartData],
)
)
}, [summary])
const primaryAction = (
<LoadingButton
+5 -4
View File
@@ -1,6 +1,6 @@
import { createFileRoute, Link } from '@tanstack/react-router'
import { useQuery } from '@tanstack/react-query'
import { useMemo } from 'react'
import { useMemo, useState } from 'react'
import {
Bar,
BarChart,
@@ -113,16 +113,17 @@ function DashboardPage() {
.slice(0, 6)
}, [groups, domains])
const [nowMs] = useState(() => Date.now())
const expiringCerts = useMemo(() => {
const now = Date.now()
const warnMs = 14 * 24 * 60 * 60 * 1000
return (certs ?? [])
.filter((c) => c.expires_at)
.map((c) => ({ cert: c, ts: new Date(c.expires_at as string).getTime() }))
.filter((e) => !Number.isNaN(e.ts) && e.ts - now <= warnMs)
.filter((e) => !Number.isNaN(e.ts) && e.ts - nowMs <= warnMs)
.sort((a, b) => a.ts - b.ts)
.slice(0, 8)
}, [certs])
}, [certs, nowMs])
const ungroupedDomains = useMemo(
() => (domains ?? []).filter((d) => d.group_id == null).slice(0, 5),