import { MainLayout } from "@components/layouts/main.tsx";
import { Handlers, PageProps } from "$fresh/server.ts";
import { AccessDeniedError } from "@lib/errors.ts";
import { getLogs, Log } from "@lib/log/index.ts";
import { formatDate } from "@lib/string.ts";
import { renderMarkdown } from "@lib/documents.ts";
const renderLog = (t: unknown) =>
  renderMarkdown(`\`\`\`js
${typeof t === "string" ? t : JSON.stringify(t, null, 2).trim()}
\`\`\``);
export const handler: Handlers = {
  async GET(_, ctx) {
    const logs = await getLogs();
    if (!("session" in ctx.state)) {
      throw new AccessDeniedError();
    }
    console.log({ logs });
    return ctx.render({
      logs: logs.map((l) => {
        return {
          ...l,
          html: l.args.map(renderLog).join("
"),
        };
      }),
    });
  },
};
function LogLine(
  { log }: {
    log: Log;
  },
) {
  return (