import { component$, useContextProvider, Slot } from "@builder.io/qwik"; import { routeLoader$, type RequestHandler } from "@builder.io/qwik-city"; import jsyaml from "js-yaml"; import Navbar from "~/components/furniture/nav"; import Footer from "~/components/furniture/footer"; import { ChecklistContext } from "~/store/checklist-context"; import type { Sections } from "~/types/PSC"; export const useChecklists = routeLoader$(async () => { const remoteUrl = 'https://gist.githubusercontent.com/Lissy93/0c26e4255b6fabc2c027ac72a4428aeb/raw/c36fc0430df223534eaf76c035943f4b343915e4/personal-security-checklist.yml'; // TODO: Update this URL to point to the Git repository return fetch(remoteUrl) .then((res) => res.text()) .then((res) => jsyaml.load(res) as Sections) .catch(() => []); }); export const onGet: RequestHandler = async ({ cacheControl }) => { cacheControl({ staleWhileRevalidate: 60 * 60 * 24 * 7, maxAge: 5, }); }; export default component$(() => { const checklists = useChecklists(); useContextProvider(ChecklistContext, checklists); return ( <>