refactor: simplify user API calls by removing pageSize parameter in multiple components
CI/CD - ERP Distribution / Build & Deploy Frontend (pull_request) Failing after 11m52s
CI/CD - ERP Distribution / Build & Deploy Backend (pull_request) Failing after 13m5s

This commit is contained in:
Kalana B. Thilakarathna
2026-10-19 02:44:19 +05:30
parent 531b3a7fef
commit 7a21cde217
26 changed files with 50 additions and 49 deletions
@@ -228,6 +228,7 @@ function emptyDashboardData(): DashboardData {
lowStock: [], movements: [], warehouseBalances: [], lowStock: [], movements: [], warehouseBalances: [],
outstandingAmount: 0, outstandingInvoiceCount: 0, outstandingAmount: 0, outstandingInvoiceCount: 0,
draftInvoiceCount: 0, printedInvoiceCount: 0, finalizedInvoiceCount: 0, draftInvoiceCount: 0, printedInvoiceCount: 0, finalizedInvoiceCount: 0,
poStatusChart: [], paymentStatusChart: [], movementTypeChart: [], monthlySales: [],
} }
} }
@@ -60,7 +60,7 @@ export function DriverSheet({ open, onClose, driver, onSuccess }: DriverSheetPro
useEffect(() => { useEffect(() => {
if (open) { if (open) {
usersApi.list({ pageSize: 100 }).then((res) => setUsersList(getPaginatedItems(res))).catch((err) => usersApi.list().then((res) => setUsersList(res)).catch((err) =>
toast.add({ title: 'Failed to load users', description: getApiError(err), type: 'error' }) toast.add({ title: 'Failed to load users', description: getApiError(err), type: 'error' })
) )
@@ -89,11 +89,11 @@ export function RegionManageEntrySheet({ open, onClose, onSuccess, initial }: Re
Promise.all([ Promise.all([
regionsApi.list({ page: 1, pageSize: 200 }), regionsApi.list({ page: 1, pageSize: 200 }),
usersApi.list({ page: 1, pageSize: 200 }), usersApi.list(),
]) ])
.then(([r, u]) => { .then(([r, u]) => {
setRegionsList(getPaginatedItems(r).filter((x) => x.isActive)) setRegionsList(getPaginatedItems(r).filter((x) => x.isActive))
setAgencyUsers(getPaginatedItems(u).filter((x) => x.roleName === 'RegionalAgency')) setAgencyUsers(u.filter((x) => x.roleName === 'RegionalAgency'))
}) })
.catch((err) => toast.add({ title: 'Failed to load reference data', description: getApiError(err), type: 'error' })) .catch((err) => toast.add({ title: 'Failed to load reference data', description: getApiError(err), type: 'error' }))
}, [open, initial]) }, [open, initial])
@@ -81,8 +81,8 @@ export function RegionManageListClient() {
}, [fetchData]) }, [fetchData])
useEffect(() => { useEffect(() => {
usersApi.list({ page: 1, pageSize: 200 }) usersApi.list()
.then((res) => setAgencyUsers(getPaginatedItems(res))) .then((res) => setAgencyUsers(res))
.catch(() => toast.add({ title: 'Failed to load users', type: 'error' })) .catch(() => toast.add({ title: 'Failed to load users', type: 'error' }))
}, []) }, [])
@@ -45,13 +45,13 @@ export function RegionManagerDialog({ open, onClose, region }: RegionManagerDial
setCurrent(null) setCurrent(null)
Promise.all([ Promise.all([
regionsApi.getManager(region.id).catch(() => null), // 404 = no manager yet regionsApi.getManager(region.id).catch(() => null), // 404 = no manager yet
usersApi.list({ pageSize: 500 }), usersApi.list(),
]) ])
.then(([manager, userRes]) => { .then(([manager, userRes]) => {
if (cancelled) return if (cancelled) return
setCurrent(manager) setCurrent(manager)
setSelected(manager?.userId ?? '') setSelected(manager?.userId ?? '')
setCandidates(getPaginatedItems(userRes).filter((u) => u.isActive && u.roleName === MANAGER_ROLE)) setCandidates(userRes.filter((u) => u.isActive && u.roleName === MANAGER_ROLE))
}) })
.catch((err) => toast.add({ title: 'Failed to load users', description: getApiError(err), type: 'error' })) .catch((err) => toast.add({ title: 'Failed to load users', description: getApiError(err), type: 'error' }))
.finally(() => !cancelled && setLoading(false)) .finally(() => !cancelled && setLoading(false))
@@ -46,8 +46,8 @@ export function RouteManageSheet({ open, onClose, route, onSuccess }: RouteManag
setOwnerUserId(route.ownerUserId ?? '') setOwnerUserId(route.ownerUserId ?? '')
setStoreFilter('') setStoreFilter('')
usersApi.list({ page: 1, pageSize: 200 }) usersApi.list()
.then((res) => setSalesReps(getPaginatedItems(res).filter((u) => u.roleName === 'SalesRep'))) .then((res) => setSalesReps(res.filter((u) => u.roleName === 'SalesRep')))
.catch(() => toast.add({ title: 'Failed to load sales reps', type: 'error' })) .catch(() => toast.add({ title: 'Failed to load sales reps', type: 'error' }))
storesApi.list({ page: 1, pageSize: 200 }) storesApi.list({ page: 1, pageSize: 200 })
@@ -46,10 +46,10 @@ export function RoutesClient() {
}, [fetchData, page, pageSize]) }, [fetchData, page, pageSize])
useEffect(() => { useEffect(() => {
usersApi.list({ page: 1, pageSize: 200 }) usersApi.list()
.then((res) => { .then((res) => {
const map: Record<string, string> = {} const map: Record<string, string> = {}
for (const u of getPaginatedItems(res)) map[u.id] = u.fullName for (const u of res) map[u.id] = u.fullName
setUserNameById(map) setUserNameById(map)
}) })
.catch(() => toast.add({ title: 'Failed to load users', type: 'error' })) .catch(() => toast.add({ title: 'Failed to load users', type: 'error' }))
@@ -48,8 +48,8 @@ export function ConfirmLoadingSheetDialog({ open, onClose, onSuccess, sheet }: C
useEffect(() => { useEffect(() => {
if (!open) return if (!open) return
form.reset({ confirmedByUserId: '' }) form.reset({ confirmedByUserId: '' })
usersApi.list({ pageSize: 200 }) usersApi.list()
.then((res) => setUsersList(getPaginatedItems(res))) .then((res) => setUsersList(res))
.catch((err) => toast.add({ title: 'Failed to load users', description: getApiError(err), type: 'error' })) .catch((err) => toast.add({ title: 'Failed to load users', description: getApiError(err), type: 'error' }))
}, [open]) }, [open])
@@ -168,7 +168,7 @@ function LoadingSheetForm() {
regionsApi.list({ pageSize: 200 }), regionsApi.list({ pageSize: 200 }),
warehousesApi.list({ pageSize: 200 }), warehousesApi.list({ pageSize: 200 }),
ridesApi.list({ status: isEdit ? undefined : 'Open', pageSize: 200 }), ridesApi.list({ status: isEdit ? undefined : 'Open', pageSize: 200 }),
usersApi.list({ pageSize: 200 }), usersApi.list(),
itemsApi.list({ pageSize: 500 }), itemsApi.list({ pageSize: 500 }),
]) ])
.then(([regionsRes, warehousesRes, ridesRes, usersRes, itemsRes]) => { .then(([regionsRes, warehousesRes, ridesRes, usersRes, itemsRes]) => {
@@ -176,7 +176,7 @@ function LoadingSheetForm() {
setRegionsList(getPaginatedItems(regionsRes)) setRegionsList(getPaginatedItems(regionsRes))
setWarehousesList(getPaginatedItems(warehousesRes)) setWarehousesList(getPaginatedItems(warehousesRes))
setRidesList(getPaginatedItems(ridesRes)) setRidesList(getPaginatedItems(ridesRes))
setUsersList(getPaginatedItems(usersRes)) setUsersList(usersRes)
}) })
.catch((err) => toast.add({ title: 'Failed to load reference data', description: getApiError(err), type: 'error' })) .catch((err) => toast.add({ title: 'Failed to load reference data', description: getApiError(err), type: 'error' }))
}, [isEdit]) }, [isEdit])
@@ -148,14 +148,14 @@ export default function NewGrnPage() {
useEffect(() => { useEffect(() => {
Promise.all([ Promise.all([
warehousesApi.list({ pageSize: 200 }), warehousesApi.list({ pageSize: 200 }),
usersApi.list({ pageSize: 200 }), usersApi.list(),
suppliersApi.list(), suppliersApi.list(),
itemsApi.list({ pageSize: 200 }), itemsApi.list({ pageSize: 200 }),
purchaseOrdersApi.list({ pageSize: 200 }), purchaseOrdersApi.list({ pageSize: 200 }),
]) ])
.then(([ws, us, ss, its, pos]) => { .then(([ws, us, ss, its, pos]) => {
setWarehousesList(getPaginatedItems(ws)) setWarehousesList(getPaginatedItems(ws))
setUsersList(getPaginatedItems(us)) setUsersList(us)
setSuppliersList(ss) setSuppliersList(ss)
setItemsList(getPaginatedItems(its)) setItemsList(getPaginatedItems(its))
// Only POs that can still receive goods // Only POs that can still receive goods
@@ -66,8 +66,8 @@ export function PurchaseReturnDialog({ open, onClose, onSuccess, order, existing
useEffect(() => { useEffect(() => {
if (!open) return if (!open) return
form.reset({ reason: '', createdByUserId: '', items: [defaultItem()] }) form.reset({ reason: '', createdByUserId: '', items: [defaultItem()] })
usersApi.list({ pageSize: 200 }) usersApi.list()
.then((res) => setUsersList(getPaginatedItems(res))) .then((res) => setUsersList(res))
.catch((err) => toast.add({ title: 'Failed to load users', description: getApiError(err), type: 'error' })) .catch((err) => toast.add({ title: 'Failed to load users', description: getApiError(err), type: 'error' }))
}, [open]) }, [open])
@@ -79,12 +79,12 @@ export default function NewPurchaseOrderPage() {
Promise.all([ Promise.all([
suppliersApi.list(), suppliersApi.list(),
itemsApi.list({ pageSize: 200 }), itemsApi.list({ pageSize: 200 }),
usersApi.list({ pageSize: 200 }), usersApi.list(),
]) ])
.then(([suppliersRes, itemsRes, usersRes]) => { .then(([suppliersRes, itemsRes, usersRes]) => {
setSuppliersList(suppliersRes) setSuppliersList(suppliersRes)
setItemsList(getPaginatedItems(itemsRes)) setItemsList(getPaginatedItems(itemsRes))
setUsersList(getPaginatedItems(usersRes)) setUsersList(usersRes)
}) })
.catch((err) => { .catch((err) => {
toast.add({ title: 'Failed to load reference data', description: getApiError(err), type: 'error' }) toast.add({ title: 'Failed to load reference data', description: getApiError(err), type: 'error' })
@@ -50,8 +50,8 @@ export function ClaimSettleDialog({ open, onClose, onSuccess, claim }: ClaimSett
useEffect(() => { useEffect(() => {
if (!open) return if (!open) return
form.reset({ settlementAmount: 0, settledByUserId: '' }) form.reset({ settlementAmount: 0, settledByUserId: '' })
usersApi.list({ pageSize: 200 }) usersApi.list()
.then((res) => setUsersList(getPaginatedItems(res))) .then((res) => setUsersList(res))
.catch((err) => toast.add({ title: 'Failed to load users', description: getApiError(err), type: 'error' })) .catch((err) => toast.add({ title: 'Failed to load users', description: getApiError(err), type: 'error' }))
}, [open]) }, [open])
@@ -51,8 +51,8 @@ export function ClaimSheet({ open, onClose, onSuccess, claim }: ClaimSheetProps)
useEffect(() => { useEffect(() => {
if (!open) return if (!open) return
form.reset({ agencyUserId: claim?.agencyUserId ?? '', details: claim?.details ?? '' }) form.reset({ agencyUserId: claim?.agencyUserId ?? '', details: claim?.details ?? '' })
usersApi.list({ pageSize: 200 }) usersApi.list()
.then((res) => setUsersList(getPaginatedItems(res))) .then((res) => setUsersList(res))
.catch((err) => toast.add({ title: 'Failed to load users', description: getApiError(err), type: 'error' })) .catch((err) => toast.add({ title: 'Failed to load users', description: getApiError(err), type: 'error' }))
}, [open, claim]) }, [open, claim])
@@ -53,9 +53,9 @@ export function ClaimsClient() {
try { try {
const [claimsList, usersRes] = await Promise.all([ const [claimsList, usersRes] = await Promise.all([
claimsApi.list(), claimsApi.list(),
usersApi.list({ pageSize: 200 }), usersApi.list(),
]) ])
setUserNameById(new Map(getPaginatedItems(usersRes).map((u) => [u.id, u.fullName]))) setUserNameById(new Map(usersRes.map((u) => [u.id, u.fullName])))
setData(claimsList) setData(claimsList)
} catch (err) { } catch (err) {
toast.add({ title: 'Failed to load claims', description: getApiError(err), type: 'error' }) toast.add({ title: 'Failed to load claims', description: getApiError(err), type: 'error' })
@@ -88,12 +88,12 @@ export function OrderReturnDialog({ open, onClose, onSuccess }: OrderReturnDialo
Promise.all([ Promise.all([
shopPosApi.list({ pageSize: 200 }), shopPosApi.list({ pageSize: 200 }),
itemsApi.list({ pageSize: 200 }), itemsApi.list({ pageSize: 200 }),
usersApi.list({ pageSize: 200 }), usersApi.list(),
]) ])
.then(([posRes, itemsRes, usersRes]) => { .then(([posRes, itemsRes, usersRes]) => {
setShopPOList(getPaginatedItems(posRes)) setShopPOList(getPaginatedItems(posRes))
setItemsList(getPaginatedItems(itemsRes)) setItemsList(getPaginatedItems(itemsRes))
setUsersList(getPaginatedItems(usersRes)) setUsersList(usersRes)
}) })
.catch((err) => toast.add({ title: 'Failed to load reference data', description: getApiError(err), type: 'error' })) .catch((err) => toast.add({ title: 'Failed to load reference data', description: getApiError(err), type: 'error' }))
}, [open]) }, [open])
@@ -84,12 +84,12 @@ export function SupplierClaimDialog({ open, onClose, onSuccess, claim }: Supplie
if (!open) return if (!open) return
Promise.all([ Promise.all([
purchaseOrdersApi.list({ pageSize: 200 }), purchaseOrdersApi.list({ pageSize: 200 }),
usersApi.list({ pageSize: 200 }), usersApi.list(),
]) ])
.then(([posRes, usersRes]) => { .then(([posRes, usersRes]) => {
const orderList = getPaginatedItems(posRes) const orderList = getPaginatedItems(posRes)
setOrdersList(orderList) setOrdersList(orderList)
setUsersList(getPaginatedItems(usersRes)) setUsersList(usersRes)
if (claim) { if (claim) {
form.reset({ form.reset({
@@ -57,8 +57,8 @@ export function SupplierClaimResolveDialog({ open, onClose, onSuccess, claim, mo
useEffect(() => { useEffect(() => {
if (!open) return if (!open) return
form.reset({ resolutionType: 'Replacement', resolutionAmount: 0, resolutionNotes: '', userId: '' }) form.reset({ resolutionType: 'Replacement', resolutionAmount: 0, resolutionNotes: '', userId: '' })
usersApi.list({ pageSize: 200 }) usersApi.list()
.then((res) => setUsersList(getPaginatedItems(res))) .then((res) => setUsersList(res))
.catch((err) => toast.add({ title: 'Failed to load users', description: getApiError(err), type: 'error' })) .catch((err) => toast.add({ title: 'Failed to load users', description: getApiError(err), type: 'error' }))
}, [open, mode]) }, [open, mode])
@@ -43,8 +43,8 @@ export function SalesVisitsClient() {
routesApi.list({ page: 1, pageSize: 200 }) routesApi.list({ page: 1, pageSize: 200 })
.then((res) => setRouteList(getPaginatedItems(res).filter((r) => r.isActive))) .then((res) => setRouteList(getPaginatedItems(res).filter((r) => r.isActive)))
.catch(() => toast.add({ title: 'Failed to load routes', type: 'error' })) .catch(() => toast.add({ title: 'Failed to load routes', type: 'error' }))
usersApi.list({ pageSize: 200 }) usersApi.list()
.then((res) => setUsersList(getPaginatedItems(res))) .then((res) => setUsersList(res))
.catch(() => toast.add({ title: 'Failed to load users', type: 'error' })) .catch(() => toast.add({ title: 'Failed to load users', type: 'error' }))
}, []) }, [])
@@ -76,11 +76,11 @@ export default function EditShopPOPage() {
) )
useEffect(() => { useEffect(() => {
Promise.all([shopPosApi.get(id), itemsApi.list({ pageSize: 200 }), usersApi.list({ pageSize: 200 })]) Promise.all([shopPosApi.get(id), itemsApi.list({ pageSize: 200 }), usersApi.list()])
.then(([poRes, items, users]) => { .then(([poRes, items, users]) => {
setPo(poRes) setPo(poRes)
setItemsList(getPaginatedItems(items)) setItemsList(getPaginatedItems(items))
setUsersList(getPaginatedItems(users)) setUsersList(users)
form.reset({ form.reset({
items: poRes.items items: poRes.items
.filter((i) => i.isActive) .filter((i) => i.isActive)
@@ -50,8 +50,8 @@ export function CancelShopPODialog({ open, onClose, onSuccess, po }: CancelShopP
useEffect(() => { useEffect(() => {
if (!open) return if (!open) return
form.reset({ cancelledByUserId: '', reason: '' }) form.reset({ cancelledByUserId: '', reason: '' })
usersApi.list({ pageSize: 200 }) usersApi.list()
.then((res) => setUsersList(getPaginatedItems(res))) .then((res) => setUsersList(res))
.catch((err) => toast.add({ title: 'Failed to load users', description: getApiError(err), type: 'error' })) .catch((err) => toast.add({ title: 'Failed to load users', description: getApiError(err), type: 'error' }))
}, [open]) }, [open])
@@ -48,8 +48,8 @@ export function ConfirmShopPODialog({ open, onClose, onSuccess, po }: ConfirmSho
useEffect(() => { useEffect(() => {
if (!open) return if (!open) return
form.reset({ confirmedByUserId: '' }) form.reset({ confirmedByUserId: '' })
usersApi.list({ pageSize: 200 }) usersApi.list()
.then((res) => setUsersList(getPaginatedItems(res))) .then((res) => setUsersList(res))
.catch((err) => toast.add({ title: 'Failed to load users', description: getApiError(err), type: 'error' })) .catch((err) => toast.add({ title: 'Failed to load users', description: getApiError(err), type: 'error' }))
}, [open]) }, [open])
@@ -67,12 +67,12 @@ export function SalesClient() {
useEffect(() => { useEffect(() => {
Promise.all([ Promise.all([
usersApi.list({ pageSize: 200 }), usersApi.list(),
routesApi.list({ pageSize: 200 }), routesApi.list({ pageSize: 200 }),
storesApi.list({ pageSize: 200 }), storesApi.list({ pageSize: 200 }),
]) ])
.then(([u, r, s]) => { .then(([u, r, s]) => {
setAgentsList(getPaginatedItems(u)) setAgentsList(u)
setRoutesList(getPaginatedItems(r)) setRoutesList(getPaginatedItems(r))
setStoresList(getPaginatedItems(s)) setStoresList(getPaginatedItems(s))
}) })
@@ -110,12 +110,12 @@ export default function NewShopPOPage() {
Promise.all([ Promise.all([
storesApi.list({ pageSize: 200 }), storesApi.list({ pageSize: 200 }),
itemsApi.list({ pageSize: 200 }), itemsApi.list({ pageSize: 200 }),
usersApi.list({ pageSize: 200 }), usersApi.list(),
]) ])
.then(([stores, items, users]) => { .then(([stores, items, users]) => {
setStoresList(getPaginatedItems(stores)) setStoresList(getPaginatedItems(stores))
setItemsList(getPaginatedItems(items)) setItemsList(getPaginatedItems(items))
setUsersList(getPaginatedItems(users)) setUsersList(users)
}) })
.catch((err) => { .catch((err) => {
toast.add({ title: 'Failed to load reference data', description: getApiError(err), type: 'error' }) toast.add({ title: 'Failed to load reference data', description: getApiError(err), type: 'error' })
@@ -55,8 +55,8 @@ export function InvoiceActionDialog({ open, onClose, onSuccess, invoice, mode }:
useEffect(() => { useEffect(() => {
if (!open) return if (!open) return
form.reset({ userId: '' }) form.reset({ userId: '' })
usersApi.list({ pageSize: 200 }) usersApi.list()
.then((res) => setUsersList(getPaginatedItems(res))) .then((res) => setUsersList(res))
.catch((err) => toast.add({ title: 'Failed to load users', description: getApiError(err), type: 'error' })) .catch((err) => toast.add({ title: 'Failed to load users', description: getApiError(err), type: 'error' }))
}, [open]) }, [open])
@@ -51,8 +51,8 @@ export function StockAdjustDialog({ open, onClose, onSuccess, balance }: StockAd
useEffect(() => { useEffect(() => {
if (!open) return if (!open) return
form.reset({ quantity: 0, reasonCode: '', adjustedByUserId: '' }) form.reset({ quantity: 0, reasonCode: '', adjustedByUserId: '' })
usersApi.list({ pageSize: 200 }) usersApi.list()
.then((res) => setUsersList(getPaginatedItems(res))) .then((res) => setUsersList(res))
.catch((err) => toast.add({ title: 'Failed to load users', description: getApiError(err), type: 'error' })) .catch((err) => toast.add({ title: 'Failed to load users', description: getApiError(err), type: 'error' }))
}, [open]) }, [open])