// swr import useSWR from "swr"; // services import userService from "services/user.service"; // fetch keys import { CURRENT_USER } from "constants/fetch-keys"; // icons import { AlertCircle } from "lucide-react"; // ui import { Spinner } from "components/ui"; type Props = { children: React.ReactNode; }; const getIfInWebview = (userAgent: NavigatorID["userAgent"]) => { if (/iphone|ipod|ipad/.test(userAgent) || userAgent.includes("wv")) return true; else return false; }; const useMobileDetect = () => { const userAgent = typeof navigator === "undefined" ? "SSR" : navigator.userAgent; return getIfInWebview(userAgent); }; const WebViewLayout: React.FC = ({ children }) => { const { data: currentUser, error } = useSWR(CURRENT_USER, () => userService.currentUser()); const isWebview = useMobileDetect(); if (!currentUser && !error) { return (

Loading your profile...

); } return (
{error || !isWebview ? (

You are not authorized to view this page.

) : ( children )}
); }; export default WebViewLayout;