Files
bflows-bandi-fe/src/helpers/getQueryParamsForPaginatedEndpoint.js
2025-03-31 16:14:27 +02:00

37 lines
1.1 KiB
JavaScript

import { isEmpty, pathOr } from 'ramda';
import formatDateString from './formatDateString';
const getQueryParamsForPaginatedEndpoint = (lazyState, statuses, sortByCol = 'applicationId') => {
let sortBy = {
columnName: sortByCol,
sortDesc: true
};
if (lazyState.sortField) {
sortBy = {
columnName: lazyState.sortField,
sortDesc: lazyState.sortOrder === -1
}
}
return {
globalFilters: {
page: lazyState.page ? lazyState.page + 1 : 1,
limit: lazyState.rows,
sortBy
},
status: statuses,
filters: Object.keys(lazyState.filters).reduce((acc, cur) => {
const value = pathOr('', ['filters', cur, 'value'], lazyState);
const matchMode = pathOr('', ['filters', cur, 'matchMode'], lazyState);
if (!isEmpty(value)) {
acc[cur] = typeof value.getMonth === 'function'
? {value: formatDateString(value), matchMode}
: lazyState.filters[cur];
}
return acc;
}, {}),
}
}
export default getQueryParamsForPaginatedEndpoint;