mirror of
https://github.com/elisiariocouto/leggen.git
synced 2025-12-14 02:42:21 +00:00
feat: improve transactions API pagination and search
- Update backend /transactions endpoint to use PaginatedResponse - Change from limit/offset to page/per_page parameters for consistency - Implement server-side pagination with proper metadata - Add search debouncing to prevent excessive API calls (300ms delay) - Add First/Last page buttons to pagination controls - Fix pagination state reset when filters return 0 results - Reset pagination to page 1 when filters are applied - Add visual loading indicator during search debouncing - Update frontend types and API client to handle new response structure - Fix TypeScript errors and improve type safety
This commit is contained in:
@@ -70,12 +70,12 @@ export const apiClient = {
|
||||
perPage?: number;
|
||||
search?: string;
|
||||
summaryOnly?: boolean;
|
||||
}): Promise<Transaction[]> => {
|
||||
}): Promise<ApiResponse<Transaction[]>> => {
|
||||
const queryParams = new URLSearchParams();
|
||||
|
||||
if (params?.accountId) queryParams.append("account_id", params.accountId);
|
||||
if (params?.startDate) queryParams.append("start_date", params.startDate);
|
||||
if (params?.endDate) queryParams.append("end_date", params.endDate);
|
||||
if (params?.startDate) queryParams.append("date_from", params.startDate);
|
||||
if (params?.endDate) queryParams.append("date_to", params.endDate);
|
||||
if (params?.page) queryParams.append("page", params.page.toString());
|
||||
if (params?.perPage)
|
||||
queryParams.append("per_page", params.perPage.toString());
|
||||
@@ -87,7 +87,7 @@ export const apiClient = {
|
||||
const response = await api.get<ApiResponse<Transaction[]>>(
|
||||
`/transactions?${queryParams.toString()}`,
|
||||
);
|
||||
return response.data.data;
|
||||
return response.data;
|
||||
},
|
||||
|
||||
// Get transaction by ID
|
||||
|
||||
Reference in New Issue
Block a user