import { Head } from "$fresh/runtime.ts"; import { HandlerContext, Handlers, PageProps } from "$fresh/server.ts"; import DocSearch from "../../islands/DocSearch.tsx"; import { Doc } from "../../src/collect.ts"; import { docCollector } from "../../src/store/doc.ts"; async function GET(req: Request, ctx: HandlerContext): Promise { const authRequired = Deno.env.get("AUTH_REQUIRED") === "true"; if (authRequired) { const login = ctx.state["login"]; if (!login) { return new Response(null, { status: 302, headers: { "Location": "/login", "content-type": "text/plain", "Access-Control-Allow-Origin": "*", "Access-Control-Allow-Methods": "GET,HEAD,PUT,PATCH,POST,DELETE", "Access-Control-Allow-Headers": "Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With", }, }); } } const docs = docCollector.getDocs(); return await ctx.render({ docs }); } export const handler: Handlers = { GET, }; export default function Docs(props: PageProps<{ docs: Doc[] }>) { const { docs } = props.data; return ( <> Simple file server - Doc
); }