index.tsx 762 B

12345678910111213141516171819202122232425262728293031323334353637
  1. import { get } from "libs/http";
  2. import useGet from "libs/hooks/useGet";
  3. import NovelItem from "components/NovelItem";
  4. const Home = () => {
  5. const { data } = useGet<ListItem[]>("/api/list");
  6. return (
  7. <main className="container">
  8. <h2 className="novel-title">Popular This Week</h2>
  9. <ul className="novel-list">
  10. {(data?.data || []).map((item) => (
  11. <NovelItem
  12. key={item.uri}
  13. slug={item.uri}
  14. img={item.img}
  15. name={item.name}
  16. />
  17. ))}
  18. </ul>
  19. </main>
  20. );
  21. };
  22. export async function getServerSideProps() {
  23. const data = await get(`/api/list`);
  24. return {
  25. props: {
  26. fallback: {
  27. "/api/list": data,
  28. },
  29. },
  30. };
  31. }
  32. export default Home;