import { Handle } from "@atcute/lexicons"; import { Meta, MetaProvider } from "@solidjs/meta"; import { A, RouteSectionProps, useLocation, useNavigate } from "@solidjs/router"; import { createEffect, createSignal, ErrorBoundary, onMount, Show, Suspense } from "solid-js"; import { AccountManager } from "./components/account.jsx"; import { RecordEditor } from "./components/create.jsx"; import { DropdownMenu, MenuProvider, NavMenu } from "./components/dropdown.jsx"; import { agent } from "./components/login.jsx"; import { NavBar } from "./components/navbar.jsx"; import { Search, SearchButton, showSearch } from "./components/search.jsx"; import { themeEvent, ThemeSelection } from "./components/theme.jsx"; import { resolveHandle } from "./utils/api.js"; export const isTouchDevice = "ontouchstart" in window || navigator.maxTouchPoints > 1; export const [notif, setNotif] = createSignal<{ show: boolean; icon?: string; text?: string; }>({ show: false }); const headers: Record = { "did:plc:ia76kvnndjutgedggx2ibrem": "bunny.jpg", "did:plc:oisofpd7lj26yvgiivf3lxsi": "puppy.jpg", "did:plc:vwzwgnygau7ed7b7wt5ux7y2": "water.webp", "did:plc:uu5axsmbm2or2dngy4gwchec": "city.webp", "did:plc:aokggmp5jzj4nc5jifhiplqc": "bridge.jpg", "did:plc:bnqkww7bjxaacajzvu5gswdf": "forest.jpg", "did:plc:p2cp5gopk7mgjegy6wadk3ep": "aurora.jpg", }; const Layout = (props: RouteSectionProps) => { const location = useLocation(); const navigate = useNavigate(); let timeout: number; if (location.search.includes("hrt=true")) localStorage.setItem("hrt", "true"); else if (location.search.includes("hrt=false")) localStorage.setItem("hrt", "false"); createEffect(async () => { if (props.params.repo && !props.params.repo.startsWith("did:")) { const did = await resolveHandle(props.params.repo as Handle); navigate(location.pathname.replace(props.params.repo, did)); } }); createEffect(() => { if (notif().show) { clearTimeout(timeout); timeout = setTimeout(() => setNotif({ show: false }), 3000); } }); onMount(() => { window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change", themeEvent); }); return (
PDSls
Error: {err.message}
} > } > {props.children}
); }; export { Layout };