fix: skip skeleton when SWR has cached data + lazy-load Map and Globe
This commit is contained in:
@@ -416,7 +416,9 @@ export default function SiteDashboardPage() {
|
|||||||
if (site?.domain) document.title = `${site.domain} | Pulse`
|
if (site?.domain) document.title = `${site.domain} | Pulse`
|
||||||
}, [site?.domain])
|
}, [site?.domain])
|
||||||
|
|
||||||
const showSkeleton = useMinimumLoading(overviewLoading)
|
// Skip the minimum-loading skeleton when SWR already has cached data
|
||||||
|
// (prevents the 300ms flash when navigating back to the dashboard)
|
||||||
|
const showSkeleton = useMinimumLoading(overviewLoading && !overview)
|
||||||
|
|
||||||
if (showSkeleton) {
|
if (showSkeleton) {
|
||||||
return <DashboardSkeleton />
|
return <DashboardSkeleton />
|
||||||
|
|||||||
@@ -1,14 +1,16 @@
|
|||||||
'use client'
|
'use client'
|
||||||
|
|
||||||
import { useState, useEffect } from 'react'
|
import { useState, useEffect } from 'react'
|
||||||
|
import dynamic from 'next/dynamic'
|
||||||
import { motion } from 'framer-motion'
|
import { motion } from 'framer-motion'
|
||||||
import { logger } from '@/lib/utils/logger'
|
import { logger } from '@/lib/utils/logger'
|
||||||
import { formatNumber } from '@ciphera-net/ui'
|
import { formatNumber } from '@ciphera-net/ui'
|
||||||
import { useTabListKeyboard } from '@/lib/hooks/useTabListKeyboard'
|
import { useTabListKeyboard } from '@/lib/hooks/useTabListKeyboard'
|
||||||
import * as Flags from 'country-flag-icons/react/3x2'
|
import * as Flags from 'country-flag-icons/react/3x2'
|
||||||
import iso3166 from 'iso-3166-2'
|
import iso3166 from 'iso-3166-2'
|
||||||
import DottedMap from './DottedMap'
|
|
||||||
import Globe from './Globe'
|
const DottedMap = dynamic(() => import('./DottedMap'), { ssr: false })
|
||||||
|
const Globe = dynamic(() => import('./Globe'), { ssr: false })
|
||||||
import { Modal, GlobeIcon } from '@ciphera-net/ui'
|
import { Modal, GlobeIcon } from '@ciphera-net/ui'
|
||||||
import { ListSkeleton } from '@/components/skeletons'
|
import { ListSkeleton } from '@/components/skeletons'
|
||||||
import { ShieldCheck, Detective, Broadcast } from '@phosphor-icons/react'
|
import { ShieldCheck, Detective, Broadcast } from '@phosphor-icons/react'
|
||||||
|
|||||||
Reference in New Issue
Block a user