UNPKG

pagamio-frontend-commons-lib

Version:

Pagamio library for Frontend reusable components like the form engine and table container

32 lines (31 loc) 1.47 kB
export const isDefaultFilterValue = (value, key) => { // Special case for dateRangeType if (key === 'dateRangeType' && (value === '' || value === 'ALL_TIME')) { return true; } if (!value) return true; if (Array.isArray(value) && value.length === 0) return true; if (typeof value === 'string' && (value === '' || value === 'all' || value.toLowerCase() === 'all')) return true; return false; }; export const hasFilterChanges = (selectedFilters, appliedFilters) => { return JSON.stringify(selectedFilters) !== JSON.stringify(appliedFilters); }; export const hasSelectedFilterChanges = (selectedFilters, appliedFilters) => { const normalizedSelected = Object.entries(selectedFilters) .filter(([key, value]) => !isDefaultFilterValue(value, key)) .reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {}); const normalizedApplied = Object.entries(appliedFilters) .filter(([key, value]) => !isDefaultFilterValue(value, key)) .reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {}); return JSON.stringify(normalizedSelected) !== JSON.stringify(normalizedApplied); }; export const hasActiveFilters = (filters) => { return Object.entries(filters).some(([key, value]) => !isDefaultFilterValue(value, key)); }; export const hasAppliedFilters = (filters) => { return Object.entries(filters).some(([key, value]) => !isDefaultFilterValue(value, key)); };