import Head from "next/head"; import Container from "@mui/material/Container"; import { Stack } from "@mui/material"; import { DividerBox } from "@/components/base/boxes"; import { useCallback, useEffect, useState } from "react"; import { HF_FileEntry, HFRes } from "@/types"; import { basename } from "path"; export default function Home() { const [repo, setRepo] = useState('https://huggingface.co/datasets/banned-historical-archives/banned-historical-archives/tree/main'); const [path, setPath] = useState(''); const [entries, setEntries] = useState([]) const [next, setNext] = useState('') const update = useCallback( (async () => { const res = (await ((await fetch(`/api/get_file_list?repo=${encodeURIComponent(repo)}&path=${encodeURIComponent(path)}`)).json())) as HFRes; setEntries(res.entries); setNext(res.nextURL!); }), [repo, path] ) useEffect(() => { update() }, []) return ( <> nextjs-docker-starter setRepo(e.target.value)}/> setPath(e.target.value)}/> {entries.map(i =>
{ if (i.type =='directory') { setPath(i.path); setTimeout(update, 100); } }}>{basename(i.path)}
{i.size}
{i.type}
)} {next ? : null}
); }