Skip to content

Commit

Permalink
Merge pull request #256 from liquality/lq-165/activity-filter-fixes
Browse files Browse the repository at this point in the history
Activity filter fixes
  • Loading branch information
bradleySuira authored Dec 3, 2022
2 parents 84e3a82 + 882ce8c commit 6021364
Showing 1 changed file with 19 additions and 11 deletions.
30 changes: 19 additions & 11 deletions packages/wallet-core/src/utils/history.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { CUSTOM_ERRORS, createInternalError } from '@liquality/error-parser';
import moment from 'moment';
import { CUSTOM_ERRORS, createInternalError } from '@liquality/error-parser';
import { getSwapProvider } from '../factory/swap';
import { HistoryItem, SendStatus, TransactionType } from '../store/types';

Expand Down Expand Up @@ -102,13 +102,15 @@ export const applyActivityFilters = (
filters: { types: TransactionType[]; statuses: string[]; dates: { start: string; end: string } }
) => {
const { types, statuses, dates } = filters;
let data = [...activity];

let filteredByType = [...activity];
if (types.length > 0) {
data = data.filter((i) => types.includes(i.type));
filteredByType = [...filteredByType].filter((i) => types.includes(i.type));
}

let fiteredByStatus = [...filteredByType];
if (statuses.length > 0) {
data = data.filter((i) => {
fiteredByStatus = [...fiteredByStatus].filter((i) => {
if (i.type === 'SWAP') {
const swapProvider = getSwapProvider(i.network, i.provider);
return statuses.includes(swapProvider.statuses[i.status].filterStatus);
Expand All @@ -122,21 +124,27 @@ export const applyActivityFilters = (
});
}

let filteredByStartDate = [...fiteredByStatus];
if (dates.start) {
const filter = moment(dates.start);
data = data.filter((i) => {
const startDateFilter = moment(dates.start);
filteredByStartDate = [...filteredByStartDate].filter((i) => {
const start = moment(i.startTime);
return filter >= start;
const diffInDays = start.diff(startDateFilter, 'days');

return diffInDays >= 0;
});
}

let filteredByEndDate = [...filteredByStartDate];
if (dates.end) {
const filter = moment(dates.end);
data = data.filter((i) => {
const endDateFilter = moment(dates.end);
filteredByEndDate = [...filteredByEndDate].filter((i) => {
const end = moment(i.startTime);
return filter <= end;
const diffInDays = end.diff(endDateFilter, 'days');

return diffInDays <= 0;
});
}

return data;
return filteredByEndDate;
};

0 comments on commit 6021364

Please sign in to comment.