feat: refactor loadFirearms to use async/await and improve error handling

This commit is contained in:
2026-04-25 15:30:33 +08:00
parent 49fbcb221c
commit 9a65fd04c3
+9 -11
View File
@@ -36,21 +36,20 @@ export default function FirearmsPage() {
const [editingFirearm, setEditingFirearm] = useState<Firearm | null>(null) const [editingFirearm, setEditingFirearm] = useState<Firearm | null>(null)
const [deletingId, setDeletingId] = useState<number | null>(null) const [deletingId, setDeletingId] = useState<number | null>(null)
const loadFirearms = useCallback(() => { const loadFirearms = useCallback(async () => {
return FirearmApi.getFirearms({ const pagedData = await FirearmApi.getFirearms({
page: page - 1, page: page - 1,
size: 12, size: 12,
sortBy: "id", sortBy: "id",
direction: "ASC", direction: "ASC",
type: typeFilter === allTypeValue ? undefined : typeFilter, type: typeFilter === allTypeValue ? undefined : typeFilter,
}).then((pagedData) => {
setFirearms(pagedData.items)
setTotal(pagedData.totalElements)
}) })
setFirearms(pagedData.items)
setTotal(pagedData.totalElements)
}, [page, typeFilter]) }, [page, typeFilter])
useEffect(() => { useEffect(() => {
loadFirearms() void loadFirearms()
}, [loadFirearms]) }, [loadFirearms])
async function handleDelete(firearm: Firearm) { async function handleDelete(firearm: Firearm) {
@@ -61,7 +60,7 @@ export default function FirearmsPage() {
if (firearms.length === 1 && page > 1) { if (firearms.length === 1 && page > 1) {
setPage(page - 1) setPage(page - 1)
} else { } else {
loadFirearms() void loadFirearms()
} }
} catch { } catch {
message.error("武器删除失败,请稍后重试") message.error("武器删除失败,请稍后重试")
@@ -114,8 +113,7 @@ export default function FirearmsPage() {
okText="删除" okText="删除"
cancelText="取消" cancelText="取消"
okButtonProps={{ danger: true, loading: deletingId === firearm.id }} okButtonProps={{ danger: true, loading: deletingId === firearm.id }}
onConfirm={() => handleDelete(firearm)} onConfirm={() => handleDelete(firearm)}>
>
<Button type="link" danger size="small" loading={deletingId === firearm.id}> <Button type="link" danger size="small" loading={deletingId === firearm.id}>
</Button> </Button>
@@ -198,7 +196,7 @@ export default function FirearmsPage() {
onCancel={() => setCreateModalOpen(false)} onCancel={() => setCreateModalOpen(false)}
onSuccess={() => { onSuccess={() => {
setCreateModalOpen(false) setCreateModalOpen(false)
loadFirearms() void loadFirearms()
}} }}
/> />
@@ -208,7 +206,7 @@ export default function FirearmsPage() {
onCancel={() => setEditingFirearm(null)} onCancel={() => setEditingFirearm(null)}
onSuccess={() => { onSuccess={() => {
setEditingFirearm(null) setEditingFirearm(null)
loadFirearms() void loadFirearms()
}} }}
/> />
</> </>