feat: refactor loadFirearms to use async/await and improve error handling
This commit is contained in:
@@ -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)
|
setFirearms(pagedData.items)
|
||||||
setTotal(pagedData.totalElements)
|
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()
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
</>
|
</>
|
||||||
|
|||||||
Reference in New Issue
Block a user