fix(machines): guard hydration before loading machine details

This commit is contained in:
Esdras Renan 2025-10-22 21:56:28 -03:00
parent 3417388cb0
commit 1017d563b5

View file

@ -28,6 +28,11 @@ export function AdminMachineDetailsClient({ tenantId: _tenantId, machineId }: {
const [loadError, setLoadError] = useState<string | null>(null) const [loadError, setLoadError] = useState<string | null>(null)
const [retryTick, setRetryTick] = useState(0) const [retryTick, setRetryTick] = useState(0)
const shouldLoad = fallback === undefined && Boolean(machineId) const shouldLoad = fallback === undefined && Boolean(machineId)
const [isHydrated, setIsHydrated] = useState(false)
useEffect(() => {
setIsHydrated(true)
}, [])
useEffect(() => { useEffect(() => {
if (!shouldLoad) { if (!shouldLoad) {
@ -157,6 +162,18 @@ export function AdminMachineDetailsClient({ tenantId: _tenantId, machineId }: {
const isLoading = single === undefined && fallback === undefined && !loadError const isLoading = single === undefined && fallback === undefined && !loadError
const isNotFound = (single === null || fallback === null) && !loadError const isNotFound = (single === null || fallback === null) && !loadError
if (!isHydrated) {
return (
<Card>
<CardContent className="space-y-3 p-6">
<Skeleton className="h-6 w-64" />
<Skeleton className="h-4 w-80" />
<Skeleton className="h-48 w-full" />
</CardContent>
</Card>
)
}
const onRetry = () => { const onRetry = () => {
setLoadError(null) setLoadError(null)
setFallback(undefined) setFallback(undefined)