44 lines
980 B
TypeScript
44 lines
980 B
TypeScript
/// <reference path="../types/jsx.d.ts" />
|
|
import { React } from "../deps.ts";
|
|
import Base from "./_base.tsx";
|
|
import type { IPackage } from "../db.ts";
|
|
|
|
import { Main, Menu } from "./_default.tsx";
|
|
import { RenderFile, EntryList, BrowseHeader } from "./_browse.tsx";
|
|
|
|
export default async function index({
|
|
pkg,
|
|
version,
|
|
files,
|
|
directories,
|
|
readme,
|
|
path,
|
|
}: {
|
|
pkg: IPackage;
|
|
version?: string;
|
|
files: { name: string; size: number }[];
|
|
directories: { name: string }[];
|
|
readme?: string;
|
|
path: string;
|
|
}) {
|
|
if (!pkg)
|
|
return (
|
|
<Base>
|
|
<h1>Not found</h1>
|
|
</Base>
|
|
);
|
|
|
|
return (
|
|
<Base title={"DenReg - " + pkg.name}>
|
|
<Main>
|
|
<BrowseHeader pkg={pkg} version={version} path={path} />
|
|
|
|
<EntryList directories={directories} files={files} />
|
|
|
|
{readme && <RenderFile content={readme} ext={".md"} />}
|
|
</Main>
|
|
<Menu></Menu>
|
|
</Base>
|
|
);
|
|
}
|