import { useParams, useLocation } from "react-router-dom"; import StaticPage, { StaticPageProps } from "../../homepage/static-page"; import "./index.scss"; import { useLocale } from "../../hooks"; import { ObservatoryLayout } from "../layout"; import { OBSERVATORY_TITLE, OBSERVATORY_TITLE_FULL, } from "../../../../libs/constants"; import useSWR from "swr"; import { OBSERVATORY_API_URL } from "../../env"; import { Loading } from "../../ui/atoms/loading"; export const ITEMS = [ { slug: "observatory/docs/tests_and_scoring", title: "Tests & Scoring", }, { slug: "observatory/docs/faq", title: "FAQ", }, ]; export function ObservatoryDocsNav() { return ; } function RelatedTopics({ items, }: { items: { slug: string; title: string }[]; }) { const locale = useLocale(); const { pathname: locationPathname } = useLocation(); return ( ); } interface ObservatoryMatrixResultEntry { name: string; scoreModifier: number; description: { __html: string }; recommendation: { __html: string }; } interface ObservatoryMatrixEntry { name: string; title: string; mdnLink: string; results: ObservatoryMatrixResultEntry[]; } function ObservatoryMatrix({ data, }: { data?: ObservatoryMatrixEntry[] | null; }) { return ( <> {data && data?.map((entry) => { return ( {entry.title} See {entry.title} for guidance. Test result Description Modifier {entry.results.map((result) => { return ( {result.name} {result.scoreModifier} ); })} ); })} > ); } function TestAndScoringPage({ ...props }: StaticPageProps) { const { "*": slug } = useParams(); const { data, isLoading } = useSWR( `${OBSERVATORY_API_URL}/api/v2/recommendation_matrix`, async (url) => { const response = await fetch(url); if (!response.ok) { throw new Error(await response.text()); } let data = await response.json(); data.map((entry) => entry.results.map((result) => { result.description = { __html: result.description }; result.recommendation = { __html: result.recommendation }; return result; }) ); return data; }, { revalidateOnFocus: false, revalidateIfStale: false, revalidateOnReconnect: false, } ); let additionalToc = data?.map((entry) => ({ text: entry.title, id: entry.name, })); return isLoading ? ( ) : ( {slug === "tests_and_scoring" && ( <> > )}{" "} ); } function GenericDoc({ ...props }: StaticPageProps) { return ; } function ObservatoryDocs({ ...props }) { const { pathname } = useLocation(); const locale = useLocale(); const { "*": slug } = useParams(); const sidebarHeader = ; const fullSlug = `observatory/docs/${slug}`; const staticPageProps = { extraClasses: "plus-docs", locale, slug: fullSlug, title: OBSERVATORY_TITLE_FULL, sidebarHeader, fallbackData: props.hyData ? props : undefined, }; return ( i.slug === fullSlug)?.title ?? "Documentation", uri: pathname, }, ]} withSidebar={true} > {slug === "tests_and_scoring" ? ( ) : ( )} ); } export default ObservatoryDocs;
See {entry.title} for guidance.