refactor: enhance OfflineBanner to accept online status as a prop and update layout-content to pass isOnline state

This commit is contained in:
Usman Baig
2026-02-04 12:34:24 +01:00
parent 44b3cf3fb5
commit 4d477110c8
6 changed files with 8 additions and 12 deletions

View File

@@ -45,7 +45,7 @@ export default function LayoutContent({ children }: { children: React.ReactNode
return (
<>
{auth.user && <OfflineBanner />}
{auth.user && <OfflineBanner isOnline={isOnline} />}
<Header
auth={auth}
LinkComponent={Link}

View File

@@ -1,11 +1,8 @@
'use client';
import { useOnlineStatus } from '@/lib/hooks/useOnlineStatus';
import { FiWifiOff } from 'react-icons/fi';
export function OfflineBanner() {
const isOnline = useOnlineStatus();
export function OfflineBanner({ isOnline }: { isOnline: boolean }) {
if (isOnline) return null;
return (

View File

@@ -4,10 +4,9 @@ export function useOnlineStatus() {
const [isOnline, setIsOnline] = useState(true);
useEffect(() => {
// Check initial status
if (typeof window !== 'undefined') {
setIsOnline(navigator.onLine);
}
if (typeof window === 'undefined') return;
setIsOnline(navigator.onLine);
const handleOnline = () => setIsOnline(true);
const handleOffline = () => setIsOnline(false);

BIN
public/icon-192x192.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

BIN
public/icon-512x512.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

View File

@@ -5,15 +5,15 @@
"start_url": "/",
"display": "standalone",
"background_color": "#ffffff",
"theme_color": "#000000",
"theme_color": "#FD5E0F",
"icons": [
{
"src": "/Icon%20Padding%20left%20%26%20right%20192x192.png",
"src": "/icon-192x192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "/Icon%20Padding%20left%20%26%20right%20512x512.png",
"src": "/icon-512x512.png",
"sizes": "512x512",
"type": "image/png"
}