refactor: separate filter for LSPS1 and LSPS7
This commit is contained in:
+1
-1
@@ -1199,7 +1199,7 @@
|
||||
"views.ActivityFilter.swapState.successful": "Successful",
|
||||
"views.ActivityFilter.swapState.failed": "Failed",
|
||||
"views.ActivityFilter.swapState.refunded": "Refunded",
|
||||
"views.ActivityFilter.lsps1OrderState.completed": "Completed",
|
||||
"views.ActivityFilter.lsps1State.completed": "Completed",
|
||||
"views.ActivityToCsv.title": "Download Activity",
|
||||
"views.ActivityToCsv.csvDownloaded": "CSV file has been downloaded",
|
||||
"views.ActivityToCsv.csvDownloadFailed": "Failed to download CSV file",
|
||||
|
||||
+31
-10
@@ -31,6 +31,7 @@ export interface Filter {
|
||||
sent: boolean;
|
||||
swaps: boolean;
|
||||
lsps1: boolean;
|
||||
lsps7: boolean;
|
||||
received: boolean;
|
||||
unpaid: boolean;
|
||||
inTransit: boolean;
|
||||
@@ -49,7 +50,12 @@ export interface Filter {
|
||||
failed: boolean;
|
||||
refunded: boolean;
|
||||
};
|
||||
lsps1OrderState: {
|
||||
lsps1State: {
|
||||
CREATED: boolean;
|
||||
COMPLETED: boolean;
|
||||
FAILED: boolean;
|
||||
};
|
||||
lsps7State: {
|
||||
CREATED: boolean;
|
||||
COMPLETED: boolean;
|
||||
FAILED: boolean;
|
||||
@@ -63,6 +69,7 @@ export const DEFAULT_FILTERS = {
|
||||
sent: true,
|
||||
swaps: true,
|
||||
lsps1: true,
|
||||
lsps7: true,
|
||||
received: true,
|
||||
unpaid: true,
|
||||
inTransit: false,
|
||||
@@ -83,7 +90,12 @@ export const DEFAULT_FILTERS = {
|
||||
failed: true,
|
||||
refunded: true
|
||||
},
|
||||
lsps1OrderState: {
|
||||
lsps1State: {
|
||||
CREATED: true,
|
||||
COMPLETED: true,
|
||||
FAILED: true
|
||||
},
|
||||
lsps7State: {
|
||||
CREATED: true,
|
||||
COMPLETED: true,
|
||||
FAILED: true
|
||||
@@ -134,6 +146,7 @@ export default class ActivityStore {
|
||||
cashu: true,
|
||||
swaps: true,
|
||||
lsps1: true,
|
||||
lsps7: true,
|
||||
sent: false,
|
||||
received: true,
|
||||
unpaid: false,
|
||||
@@ -148,7 +161,8 @@ export default class ActivityStore {
|
||||
endDate: undefined,
|
||||
memo: '',
|
||||
swapState: { ...DEFAULT_FILTERS.swapState },
|
||||
lsps1OrderState: { ...DEFAULT_FILTERS.lsps1OrderState }
|
||||
lsps1State: { ...DEFAULT_FILTERS.lsps1State },
|
||||
lsps7State: { ...DEFAULT_FILTERS.lsps7State }
|
||||
};
|
||||
await Storage.setItem(ACTIVITY_FILTERS_KEY, this.filters);
|
||||
};
|
||||
@@ -225,7 +239,6 @@ export default class ActivityStore {
|
||||
|
||||
if (res.service === 'LSPS7') {
|
||||
const payment = orderData?.payment;
|
||||
console.log(payment);
|
||||
const fee =
|
||||
payment?.bolt11?.order_total_sat ||
|
||||
payment?.fee_total_sat ||
|
||||
@@ -361,9 +374,13 @@ export default class ActivityStore {
|
||||
...DEFAULT_FILTERS.swapState,
|
||||
...(parsedFilters.swapState || {})
|
||||
},
|
||||
lsps1OrderState: {
|
||||
...DEFAULT_FILTERS.lsps1OrderState,
|
||||
...(parsedFilters.lsps1OrderState || {})
|
||||
lsps1State: {
|
||||
...DEFAULT_FILTERS.lsps1State,
|
||||
...(parsedFilters.lsps1State || {})
|
||||
},
|
||||
lsps7State: {
|
||||
...DEFAULT_FILTERS.lsps7State,
|
||||
...(parsedFilters.lsps7State || {})
|
||||
}
|
||||
};
|
||||
} else {
|
||||
@@ -386,9 +403,13 @@ export default class ActivityStore {
|
||||
...DEFAULT_FILTERS.swapState,
|
||||
...filters.swapState
|
||||
},
|
||||
lsps1OrderState: {
|
||||
...DEFAULT_FILTERS.lsps1OrderState,
|
||||
...filters.lsps1OrderState
|
||||
lsps1State: {
|
||||
...DEFAULT_FILTERS.lsps1State,
|
||||
...filters.lsps1State
|
||||
},
|
||||
lsps7State: {
|
||||
...DEFAULT_FILTERS.lsps7State,
|
||||
...filters.lsps7State
|
||||
}
|
||||
};
|
||||
this.filteredActivity = ActivityFilterUtils.filterActivities(
|
||||
|
||||
@@ -82,25 +82,37 @@ class ActivityFilterUtils {
|
||||
|
||||
if (filter.lsps1 == false) {
|
||||
filteredActivity = filteredActivity.filter(
|
||||
(activity) =>
|
||||
activity.model !== 'LSPS1Order' &&
|
||||
activity.model !== 'LSPS7Order'
|
||||
(activity) => activity.model !== 'LSPS1Order'
|
||||
);
|
||||
} else {
|
||||
filteredActivity = filteredActivity.filter((activity) => {
|
||||
if (
|
||||
activity.model !== 'LSPS1Order' &&
|
||||
activity.model !== 'LSPS7Order'
|
||||
)
|
||||
return true;
|
||||
if (activity.model !== 'LSPS1Order') return true;
|
||||
|
||||
const state = activity.state;
|
||||
if (filter.lsps1OrderState.CREATED && state === 'CREATED')
|
||||
if (filter.lsps1State.CREATED && state === 'CREATED')
|
||||
return true;
|
||||
if (filter.lsps1OrderState.COMPLETED && state === 'COMPLETED')
|
||||
if (filter.lsps1State.COMPLETED && state === 'COMPLETED')
|
||||
return true;
|
||||
if (filter.lsps1OrderState.FAILED && state === 'FAILED')
|
||||
if (filter.lsps1State.FAILED && state === 'FAILED') return true;
|
||||
|
||||
return false;
|
||||
});
|
||||
}
|
||||
|
||||
if (filter.lsps7 === false) {
|
||||
filteredActivity = filteredActivity.filter(
|
||||
(activity) => activity.model !== 'LSPS7Order'
|
||||
);
|
||||
} else {
|
||||
filteredActivity = filteredActivity.filter((activity) => {
|
||||
if (activity.model !== 'LSPS7Order') return true;
|
||||
|
||||
const state = activity.state;
|
||||
if (filter.lsps7State.CREATED && state === 'CREATED')
|
||||
return true;
|
||||
if (filter.lsps7State.COMPLETED && state === 'COMPLETED')
|
||||
return true;
|
||||
if (filter.lsps7State.FAILED && state === 'FAILED') return true;
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
@@ -46,6 +46,7 @@ interface ActivityFilterState {
|
||||
services: boolean;
|
||||
swaps: boolean;
|
||||
lsps1: boolean;
|
||||
lsps7: boolean;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -63,7 +64,8 @@ export default class ActivityFilter extends React.Component<
|
||||
expandedSections: {
|
||||
services: false,
|
||||
swaps: false,
|
||||
lsps1: false
|
||||
lsps1: false,
|
||||
lsps7: false
|
||||
}
|
||||
};
|
||||
|
||||
@@ -75,15 +77,23 @@ export default class ActivityFilter extends React.Component<
|
||||
const newFilters = JSON.parse(JSON.stringify(filters));
|
||||
|
||||
if (path === 'services') {
|
||||
const isTurningOn = !(filters.swaps || filters.lsps1);
|
||||
const isTurningOn = !(
|
||||
filters.swaps ||
|
||||
filters.lsps1 ||
|
||||
filters.lsps7
|
||||
);
|
||||
newFilters.swaps = isTurningOn;
|
||||
newFilters.lsps1 = isTurningOn;
|
||||
newFilters.lsps7 = isTurningOn;
|
||||
|
||||
Object.keys(newFilters.swapState).forEach((key) => {
|
||||
(newFilters.swapState as any)[key] = isTurningOn;
|
||||
});
|
||||
Object.keys(newFilters.lsps1OrderState).forEach((key) => {
|
||||
(newFilters.lsps1OrderState as any)[key] = isTurningOn;
|
||||
Object.keys(newFilters.lsps1State).forEach((key) => {
|
||||
(newFilters.lsps1State as any)[key] = isTurningOn;
|
||||
});
|
||||
Object.keys(newFilters.lsps7State).forEach((key) => {
|
||||
(newFilters.lsps7State as any)[key] = isTurningOn;
|
||||
});
|
||||
|
||||
if (!isTurningOn) {
|
||||
@@ -91,7 +101,8 @@ export default class ActivityFilter extends React.Component<
|
||||
expandedSections: {
|
||||
...prevState.expandedSections,
|
||||
swaps: false,
|
||||
lsps1: false
|
||||
lsps1: false,
|
||||
lsps7: false
|
||||
}
|
||||
}));
|
||||
}
|
||||
@@ -102,14 +113,16 @@ export default class ActivityFilter extends React.Component<
|
||||
|
||||
if (isTurningOn) {
|
||||
if (parent === 'swapState') newFilters.swaps = true;
|
||||
if (parent === 'lsps1OrderState') newFilters.lsps1 = true;
|
||||
if (parent === 'lsps1State') newFilters.lsps1 = true;
|
||||
if (parent === 'lsps7State') newFilters.lsps7 = true;
|
||||
} else {
|
||||
const allChildrenOff = Object.values(newFilters[parent]).every(
|
||||
(item) => item === false
|
||||
);
|
||||
if (allChildrenOff) {
|
||||
if (parent === 'swapState') newFilters.swaps = false;
|
||||
if (parent === 'lsps1OrderState') newFilters.lsps1 = false;
|
||||
if (parent === 'lsps1State') newFilters.lsps1 = false;
|
||||
if (parent === 'lsps7State') newFilters.lsps7 = false;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@@ -123,8 +136,13 @@ export default class ActivityFilter extends React.Component<
|
||||
});
|
||||
}
|
||||
if (key === 'lsps1') {
|
||||
Object.keys(newFilters.lsps1OrderState).forEach((key) => {
|
||||
(newFilters.lsps1OrderState as any)[key] = isTurningOn;
|
||||
Object.keys(newFilters.lsps1State).forEach((key) => {
|
||||
(newFilters.lsps1State as any)[key] = isTurningOn;
|
||||
});
|
||||
}
|
||||
if (key === 'lsps7') {
|
||||
Object.keys(newFilters.lsps7State).forEach((key) => {
|
||||
(newFilters.lsps7State as any)[key] = isTurningOn;
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -178,6 +196,7 @@ export default class ActivityFilter extends React.Component<
|
||||
cashu,
|
||||
swaps,
|
||||
lsps1,
|
||||
lsps7,
|
||||
sent,
|
||||
received,
|
||||
unpaid,
|
||||
@@ -346,7 +365,7 @@ export default class ActivityFilter extends React.Component<
|
||||
]
|
||||
},
|
||||
{
|
||||
label: localeString('views.LSPS1.lsps1Orders'),
|
||||
label: localeString('views.LSPS1.type'),
|
||||
value: lsps1,
|
||||
var: 'lsps1',
|
||||
section: 'lsps1',
|
||||
@@ -355,21 +374,50 @@ export default class ActivityFilter extends React.Component<
|
||||
label: localeString(
|
||||
'views.ActivityFilter.swapState.created'
|
||||
),
|
||||
var: ['lsps1OrderState', 'CREATED'],
|
||||
var: ['lsps1State', 'CREATED'],
|
||||
type: 'Toggle'
|
||||
},
|
||||
{
|
||||
label: localeString(
|
||||
'views.ActivityFilter.lsps1OrderState.completed'
|
||||
'views.ActivityFilter.lsps1State.completed'
|
||||
),
|
||||
var: ['lsps1OrderState', 'COMPLETED'],
|
||||
var: ['lsps1State', 'COMPLETED'],
|
||||
type: 'Toggle'
|
||||
},
|
||||
{
|
||||
label: localeString(
|
||||
'views.ActivityFilter.swapState.failed'
|
||||
),
|
||||
var: ['lsps1OrderState', 'FAILED'],
|
||||
var: ['lsps1State', 'FAILED'],
|
||||
type: 'Toggle'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
label: localeString('views.LSPS7.type'),
|
||||
value: lsps7,
|
||||
var: 'lsps7',
|
||||
section: 'lsps7',
|
||||
children: [
|
||||
{
|
||||
label: localeString(
|
||||
'views.ActivityFilter.swapState.created'
|
||||
),
|
||||
var: ['lsps7State', 'CREATED'],
|
||||
type: 'Toggle'
|
||||
},
|
||||
{
|
||||
label: localeString(
|
||||
'views.ActivityFilter.lsps1State.completed'
|
||||
),
|
||||
var: ['lsps7State', 'COMPLETED'],
|
||||
type: 'Toggle'
|
||||
},
|
||||
{
|
||||
label: localeString(
|
||||
'views.ActivityFilter.swapState.failed'
|
||||
),
|
||||
var: ['lsps7State', 'FAILED'],
|
||||
type: 'Toggle'
|
||||
}
|
||||
]
|
||||
@@ -567,7 +615,9 @@ export default class ActivityFilter extends React.Component<
|
||||
</ListItem.Title>
|
||||
</ListItem.Content>
|
||||
<Switch
|
||||
value={swaps || lsps1}
|
||||
value={
|
||||
swaps || lsps1 || lsps7
|
||||
}
|
||||
onValueChange={() =>
|
||||
this.handleToggle(
|
||||
'services'
|
||||
|
||||
Reference in New Issue
Block a user