import { useEffect, useMemo, useState } from "react" import { Link, useSearchParams } from "react-router-dom" import { Button, Card, Col, Pagination, Row, Space, Tag, Typography } from "antd" import { ModificationApi } from "@/api" import { Modification } from "@/types" const pageSize = 12 export default function ModCodesPage() { const [searchParams] = useSearchParams() const firearmId = useMemo(() => searchParams.get("firearmId") || undefined, [searchParams]) const [page, setPage] = useState(1) const [modifications, setModifications] = useState([]) const [total, setTotal] = useState(0) useEffect(() => { ModificationApi.getModifications({ page: page - 1, size: pageSize, sortBy: "id", direction: "ASC", firearmId, }).then((pagedData) => { setModifications(pagedData.items) setTotal(pagedData.totalElements) }) }, [page, firearmId]) useEffect(() => { setPage(1) }, [firearmId]) return ( <>
改枪码列表 {firearmId && ( 武器 ID: {firearmId} )}
{modifications.map((modification) => (
改枪码: {modification.code}
作者: {modification.author || "未知"} {modification.tags.length > 0 && (
{modification.tags.map((tag) => ( {tag} ))}
)} {modification.note || "暂无备注"} {modification.videoUrl && ( )}
))} {modifications.length === 0 && ( 暂无改枪码数据 )}
{ setPage(nextPage) }} showSizeChanger={false} />
) }