2021-12-29 13:33:36 +08:00
|
|
|
import React from "react";
|
2021-12-30 16:05:05 +08:00
|
|
|
import { usePagination } from "react-use-pagination";
|
2021-12-29 13:33:36 +08:00
|
|
|
|
2021-12-30 16:05:05 +08:00
|
|
|
import bots from "../../static/bots.json";
|
|
|
|
import { useFilteredObjs } from "../libs/store";
|
2021-12-30 22:46:15 +08:00
|
|
|
import Card from "./Card";
|
2021-12-30 16:05:05 +08:00
|
|
|
import Paginate from "./Paginate";
|
|
|
|
|
|
|
|
export default function Adapter(): JSX.Element {
|
|
|
|
const {
|
|
|
|
filter,
|
|
|
|
setFilter,
|
|
|
|
filteredObjs: filteredBots,
|
|
|
|
} = useFilteredObjs(bots);
|
|
|
|
|
|
|
|
const props = usePagination({
|
|
|
|
totalItems: filteredBots.length,
|
|
|
|
initialPageSize: 10,
|
|
|
|
});
|
|
|
|
const { startIndex, endIndex } = props;
|
|
|
|
const currentBots = filteredBots.slice(startIndex, endIndex + 1);
|
|
|
|
|
|
|
|
return (
|
|
|
|
<>
|
|
|
|
<div className="grid grid-cols-1 sm:grid-cols-2 gap-4 mt-4 px-4">
|
|
|
|
<input
|
|
|
|
className="w-full px-4 py-2 border rounded-full bg-light-nonepress-100 dark:bg-dark-nonepress-100"
|
|
|
|
value={filter}
|
|
|
|
placeholder="搜索机器人"
|
|
|
|
onChange={(event) => setFilter(event.target.value)}
|
|
|
|
/>
|
2021-12-30 22:46:15 +08:00
|
|
|
<button className="w-full rounded-lg bg-hero text-white">
|
2021-12-30 16:05:05 +08:00
|
|
|
发布机器人
|
|
|
|
</button>
|
|
|
|
</div>
|
|
|
|
<div className="grid grid-cols-1 p-4">
|
|
|
|
<Paginate {...props} />
|
|
|
|
</div>
|
2021-12-30 22:46:15 +08:00
|
|
|
<div className="grid grid-cols-1 sm:grid-cols-2 gap-4 px-4">
|
|
|
|
{currentBots.map((bot, index) => (
|
|
|
|
<Card key={index} {...bot} />
|
2021-12-30 16:05:05 +08:00
|
|
|
))}
|
|
|
|
</div>
|
|
|
|
<div className="grid grid-cols-1 p-4">
|
|
|
|
<Paginate {...props} />
|
|
|
|
</div>
|
|
|
|
</>
|
|
|
|
);
|
2021-12-29 13:33:36 +08:00
|
|
|
}
|