nextjs-tailwindcss-headless.../app/components/page.tsx

41 lines
1015 B
TypeScript
Raw Normal View History

2023-08-25 21:53:07 +08:00
import Link from "next/link";
import fs from "fs";
import path from "path";
import { ArrowDownIcon } from "@heroicons/react/24/outline";
2023-08-25 21:53:07 +08:00
async function getData() {
2023-09-14 09:21:45 +08:00
let dirs: string[] = [];
try {
fs.readdirSync(__dirname).filter((item) => {
const p = path.resolve(__dirname, item);
const stat = fs.statSync(p);
if (stat.isDirectory()) dirs.push(item);
});
} catch (e) {
console.error(e);
}
2023-08-25 21:53:07 +08:00
2023-09-14 09:21:45 +08:00
return dirs;
2023-08-25 21:53:07 +08:00
}
export default async function Page() {
2023-09-14 09:21:45 +08:00
const list = await getData();
return (
<div className="flex-1 flex flex-col justify-center items-start">
<div className="flex justify-center items-center gap-2">
<span>Components List</span>
<ArrowDownIcon width={18} height={18} />
</div>
<div className="flex flex-col justify-start">
{list.map((i) => {
return (
<li key={i}>
<Link href={`/components/${i}`}>{i}</Link>
</li>
);
})}
</div>
</div>
);
}