diff --git a/.gitignore b/.gitignore index 45c1abc..cc8214f 100644 --- a/.gitignore +++ b/.gitignore @@ -34,3 +34,8 @@ yarn-error.log* # typescript *.tsbuildinfo next-env.d.ts + +# PWA +public/sw.js +public/workbox-*.js +public/swe-worker-*.js diff --git a/app/layout-content.tsx b/app/layout-content.tsx index 1956f0d..f279464 100644 --- a/app/layout-content.tsx +++ b/app/layout-content.tsx @@ -1,7 +1,9 @@ 'use client' +import { OfflineBanner } from '@/components/OfflineBanner' import { Header, Footer } from '@ciphera-net/ui' import { useAuth } from '@/lib/auth/context' +import { useOnlineStatus } from '@/lib/hooks/useOnlineStatus' import Link from 'next/link' import { useEffect, useState } from 'react' import { getUserOrganizations, switchContext } from '@/lib/api/organization' @@ -11,6 +13,7 @@ import { useRouter } from 'next/navigation' export default function LayoutContent({ children }: { children: React.ReactNode }) { const auth = useAuth() const router = useRouter() + const isOnline = useOnlineStatus() const [orgs, setOrgs] = useState([]) // * Fetch organizations for the header workspace switcher @@ -37,8 +40,14 @@ export default function LayoutContent({ children }: { children: React.ReactNode router.push('/onboarding') } + const showOfflineBar = Boolean(auth.user && !isOnline); + const barHeightRem = 2.5; + const headerHeightRem = 6; + const mainTopPaddingRem = barHeightRem + headerHeightRem; + return ( <> + {auth.user && }
-
+
{children}