From 299f32a2b7b21a0b13eae4b6f85b799d446efd93 Mon Sep 17 00:00:00 2001 From: yohlo Date: Mon, 2 Mar 2026 01:00:46 -0600 Subject: [PATCH] more pwa --- src/app/routes/__root.tsx | 8 ++++---- src/features/core/components/navbar.tsx | 5 +++-- src/hooks/use-is-pwa.ts | 15 +++++++-------- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/app/routes/__root.tsx b/src/app/routes/__root.tsx index 05fc078..91ae9de 100644 --- a/src/app/routes/__root.tsx +++ b/src/app/routes/__root.tsx @@ -45,18 +45,18 @@ export const Route = createRootRouteWithContext<{ { name: 'description', content: 'Amicus meus madidus' }, { name: 'keywords', content: 'FLXN, beer pong, tournament, sports, statistics, pong' }, { name: 'theme-color', content: '#1e293b' }, - { property: 'og:title', content: 'FLXN IX' }, - { property: 'og:description', content: 'Register for FLXN IX and view FLXN stats' }, + { property: 'og:title', content: 'FLXN' }, + { property: 'og:description', content: 'Amicus meus madidus' }, { property: 'og:url', content: 'https://flexxon.app' }, { property: 'og:type', content: 'website' }, - { property: 'og:site_name', content: 'FLXN IX' }, + { property: 'og:site_name', content: 'FLXN' }, { property: 'og:image', content: 'https://flexxon.app/favicon.png' }, { property: 'og:image:width', content: '512' }, { property: 'og:image:height', content: '512' }, { property: 'og:image:alt', content: 'FLXN logo' }, { property: 'og:locale', content: 'en_US' }, { name: 'twitter:card', content: 'summary' }, - { name: 'twitter:title', content: 'FLXN IX' }, + { name: 'twitter:title', content: 'FLXN' }, { name: 'twitter:description', content: 'Amicus meus madidus' }, { name: 'twitter:image', content: 'https://flexxon.app/favicon.png' }, { name: 'mobile-web-app-capable', content: 'yes' }, diff --git a/src/features/core/components/navbar.tsx b/src/features/core/components/navbar.tsx index 71f9547..87c2b55 100644 --- a/src/features/core/components/navbar.tsx +++ b/src/features/core/components/navbar.tsx @@ -1,15 +1,16 @@ import { AppShell, ScrollArea, Stack, Group, Paper, useMantineColorScheme } from "@mantine/core"; -import { Link } from "@tanstack/react-router"; import { NavLink } from "./nav-link"; import { useIsMobile } from "@/hooks/use-is-mobile"; import { useAuth } from "@/contexts/auth-context"; import { useLinks } from "../hooks/use-links"; import { memo } from "react"; +import { useIsPWA } from "@/hooks/use-is-pwa"; const Navbar = () => { const { user, roles } = useAuth() const isMobile = useIsMobile(); const { colorScheme } = useMantineColorScheme(); + const isPWA = useIsPWA(); const links = useLinks(user?.id, roles); @@ -19,7 +20,7 @@ const Navbar = () => { // boxShadow: `5px 5px ${boxShadowColor}`, borderColor if (isMobile) return ( - + {links.map((link) => ( diff --git a/src/hooks/use-is-pwa.ts b/src/hooks/use-is-pwa.ts index a46d545..9fd5b6e 100644 --- a/src/hooks/use-is-pwa.ts +++ b/src/hooks/use-is-pwa.ts @@ -1,15 +1,14 @@ -import { useEffect, useState } from 'react' +import { useEffect, useState } from 'react'; export function useIsPWA(): boolean { - const [isPWA, setIsPWA] = useState(false) + const [isPWA, setIsPWA] = useState(false); useEffect(() => { - const isStandalone = window.matchMedia('(display-mode: standalone)').matches + const isStandalone = window.matchMedia('(display-mode: standalone)').matches; + const isIOSStandalone = 'standalone' in window.navigator && (window.navigator as any).standalone; - const isIOSStandalone = 'standalone' in window.navigator && (window.navigator as any).standalone + setIsPWA(isStandalone || isIOSStandalone); + }, []); - setIsPWA(isStandalone || isIOSStandalone) - }, []) - - return isPWA + return isPWA; }