UNPKG

@vlsergey/react-bootstrap-pagetable

Version:

Complex solution to work with pageable data, including sorting, filtering, actions, changing displayed columns, etc.

43 lines (42 loc) 1.71 kB
import { __values } from "tslib"; import { defaultFilterValueConverter } from '../FieldModel'; export default function fetchArgsToUrlParams(itemModel, urlParamsPrefix, currentSearch, fetchArgs) { var prefix = urlParamsPrefix || ''; var params = new URLSearchParams(currentSearch); params.set(prefix + "page", String(fetchArgs.page + 1)); params.set(prefix + "size", String(fetchArgs.size)); if (fetchArgs.sort) { params.set(prefix + "sort", fetchArgs.sort .map(function (_a) { var field = _a.field, direction = _a.direction; return "" + field + (direction === 'DESC' ? ',DESC' : ''); }) .join('')); } else { params.delete(prefix + "sort"); } itemModel.fields.forEach(function (_a) { var e_1, _b; var filterValueConverter = _a.filterValueConverter, key = _a.key; params.delete(prefix + key); var filterValue = (fetchArgs.filter || {})[key]; if (filterValue !== undefined) { var converter = filterValueConverter || defaultFilterValueConverter(); try { for (var _c = __values(converter.toStrings(filterValue)), _d = _c.next(); !_d.done; _d = _c.next()) { var value = _d.value; params.append(prefix + key, value); } } catch (e_1_1) { e_1 = { error: e_1_1 }; } finally { try { if (_d && !_d.done && (_b = _c.return)) _b.call(_c); } finally { if (e_1) throw e_1.error; } } } }); return params; }