import "./layout.css"; import { useState } from "react"; import * as Dialog from "@radix-ui/react-dialog"; import { Outlet, useNavigate } from "react-router-dom"; import { Helmet } from "react-helmet"; import { FormattedMessage } from "react-intl"; import { Menu, MenuItem } from "@szhsin/react-menu"; import { hexToBech32 } from "@snort/shared"; import { Icon } from "element/icon"; import { useLogin, useLoginEvents } from "hooks/login"; import { Profile } from "element/profile"; import { NewStreamDialog } from "element/new-stream"; import { LoginSignup } from "element/login-signup"; import { Login } from "index"; import { useLang } from "hooks/lang"; import { AllLocales } from "intl"; export function LayoutPage() { const navigate = useNavigate(); const login = useLogin(); const [showLogin, setShowLogin] = useState(false); const { lang, setLang } = useLang(); useLoginEvents(login?.pubkey, true); function langSelector() { return (
{lang.includes("-") ? lang.split("-")[0] : lang}
} align="end" gap={5}> {AllLocales.sort().map(l => ( setLang(l)} key={l}> {new Intl.DisplayNames([l], { type: "language", }).of(l)} ))}
); } function loggedIn() { if (!login) return; return ( <> {(!__SINGLE_PUBLISHER || __SINGLE_PUBLISHER === login.pubkey) && ( )} } align="end" gap={5}> navigate(`/p/${hexToBech32("npub", login.pubkey)}`)}> navigate("/settings")}> navigate("/widgets")}> Login.logout()}> ); } function loggedOut() { if (login) return; function handleLogin() { setShowLogin(true); } return ( setShowLogin(false)} /> ); } return (
Home - zap.stream
navigate("/")}>
{/*
*/}
{/* Future menu items go here */}
{langSelector()} {loggedIn()} {loggedOut()}
); }