flockstr/app/(app)/_layout/MobileBanner.tsx

43 lines
1.3 KiB
TypeScript
Raw Normal View History

2023-10-13 23:17:35 -04:00
"use client";
import { useEffect, useState } from "react";
2023-10-14 12:09:44 -04:00
import { RiCloseFill } from "react-icons/ri";
2023-10-13 19:02:59 -04:00
import { Button } from "@/components/ui/button";
2023-10-13 23:17:35 -04:00
import useLocalStorage from "@/lib/hooks/useLocalStorage";
2023-10-14 12:09:44 -04:00
import Logo from "@/assets/Logo";
2023-10-13 23:17:35 -04:00
2023-10-13 19:02:59 -04:00
export default function MobileBanner() {
2023-10-13 23:17:35 -04:00
const [showPWAPrompt, setShowPWAPrompt] = useState(false);
const [hidePWA, setHidePWA] = useLocalStorage<boolean | undefined>(
"hidePWA",
undefined,
);
useEffect(() => {
if (!hidePWA) {
setShowPWAPrompt(true);
}
}, []);
function handleClickHide() {
setHidePWA(true);
setShowPWAPrompt(false);
}
if (!showPWAPrompt) return null;
2023-10-13 19:02:59 -04:00
return (
<div className="fixed bottom-[var(--bottom-nav-height)] flex w-screen items-center gap-3 border-t bg-card px-3 py-2.5 sm:hidden">
<div className="center h-[32px] w-[32px] shrink-0 rounded-[6px] border bg-white shadow">
2023-10-14 12:09:44 -04:00
<Logo className="text-black" />
2023-10-13 19:02:59 -04:00
</div>
<div className="flex-1 text-sm font-medium text-foreground">
Get our PWA
</div>
<Button size={"sm"} className="rounded-[6px]">
Install
</Button>
2023-10-13 23:17:35 -04:00
<button onClick={handleClickHide} className="center -mx-1">
2023-10-13 19:02:59 -04:00
<RiCloseFill className="h-[18px] w-[18px] text-muted-foreground" />
</button>
</div>
);
}