fix(machines): guard hydration before loading machine details
This commit is contained in:
parent
3417388cb0
commit
1017d563b5
1 changed files with 17 additions and 0 deletions
|
|
@ -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)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue