Merge pull request #943 from chaotixkilla/fix-transaction-filter-missing-cancelled
Fix transaction search filters
This commit is contained in:
commit
7164e1105b
4 changed files with 55 additions and 15 deletions
|
|
@ -19,7 +19,7 @@ const WALLET_SCORE_THRESHOLD = 10
|
||||||
|
|
||||||
const TRANSACTION_STATES = `
|
const TRANSACTION_STATES = `
|
||||||
case
|
case
|
||||||
when operator_completed then 'Cancelled'
|
when operator_completed and error = 'Operator cancel' then 'Cancelled'
|
||||||
when error is not null then 'Error'
|
when error is not null then 'Error'
|
||||||
when send_confirmed then 'Sent'
|
when send_confirmed then 'Sent'
|
||||||
when ((not send_confirmed) and (created <= now() - interval '${PENDING_INTERVAL}')) then 'Expired'
|
when ((not send_confirmed) and (created <= now() - interval '${PENDING_INTERVAL}')) then 'Expired'
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@ const REDEEMABLE_AGE = T.day / 1000
|
||||||
|
|
||||||
const CASH_OUT_TRANSACTION_STATES = `
|
const CASH_OUT_TRANSACTION_STATES = `
|
||||||
case
|
case
|
||||||
|
when error = 'Operator cancel' then 'Cancelled'
|
||||||
when error is not null then 'Error'
|
when error is not null then 'Error'
|
||||||
when dispense then 'Success'
|
when dispense then 'Success'
|
||||||
when (extract(epoch from (now() - greatest(created, confirmed_at))) * 1000) >= ${REDEEMABLE_AGE} then 'Expired'
|
when (extract(epoch from (now() - greatest(created, confirmed_at))) * 1000) >= ${REDEEMABLE_AGE} then 'Expired'
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,12 @@ import { chipStyles, styles } from './SearchFilter.styles'
|
||||||
const useChipStyles = makeStyles(chipStyles)
|
const useChipStyles = makeStyles(chipStyles)
|
||||||
const useStyles = makeStyles(styles)
|
const useStyles = makeStyles(styles)
|
||||||
|
|
||||||
const SearchFilter = ({ filters, onFilterDelete, setFilters, entries }) => {
|
const SearchFilter = ({
|
||||||
|
filters,
|
||||||
|
onFilterDelete,
|
||||||
|
deleteAllFilters,
|
||||||
|
entries
|
||||||
|
}) => {
|
||||||
const chipClasses = useChipStyles()
|
const chipClasses = useChipStyles()
|
||||||
const classes = useStyles()
|
const classes = useStyles()
|
||||||
|
|
||||||
|
|
@ -43,7 +48,7 @@ const SearchFilter = ({ filters, onFilterDelete, setFilters, entries }) => {
|
||||||
Icon={ReverseFilterIcon}
|
Icon={ReverseFilterIcon}
|
||||||
InverseIcon={FilterIcon}
|
InverseIcon={FilterIcon}
|
||||||
className={classes.deleteButton}
|
className={classes.deleteButton}
|
||||||
onClick={() => setFilters([])}>
|
onClick={deleteAllFilters}>
|
||||||
Delete filters
|
Delete filters
|
||||||
</ActionButton>
|
</ActionButton>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -114,6 +114,9 @@ const GET_TRANSACTIONS = gql`
|
||||||
}
|
}
|
||||||
`
|
`
|
||||||
|
|
||||||
|
const getFiltersObj = filters =>
|
||||||
|
R.reduce((s, f) => ({ ...s, [f.type]: f.value }), {}, filters)
|
||||||
|
|
||||||
const Transactions = () => {
|
const Transactions = () => {
|
||||||
const classes = useStyles()
|
const classes = useStyles()
|
||||||
const history = useHistory()
|
const history = useHistory()
|
||||||
|
|
@ -228,12 +231,7 @@ const Transactions = () => {
|
||||||
]
|
]
|
||||||
|
|
||||||
const onFilterChange = filters => {
|
const onFilterChange = filters => {
|
||||||
const filtersObject = R.compose(
|
const filtersObject = getFiltersObj(filters)
|
||||||
R.mergeAll,
|
|
||||||
R.map(f => ({
|
|
||||||
[f.type]: f.value
|
|
||||||
}))
|
|
||||||
)(filters)
|
|
||||||
|
|
||||||
setFilters(filters)
|
setFilters(filters)
|
||||||
|
|
||||||
|
|
@ -251,10 +249,46 @@ const Transactions = () => {
|
||||||
refetch && refetch()
|
refetch && refetch()
|
||||||
}
|
}
|
||||||
|
|
||||||
const onFilterDelete = filter =>
|
const onFilterDelete = filter => {
|
||||||
setFilters(
|
const newFilters = R.filter(
|
||||||
R.filter(f => !R.whereEq(R.pick(['type', 'value'], f), filter))(filters)
|
f => !R.whereEq(R.pick(['type', 'value'], f), filter)
|
||||||
)
|
)(filters)
|
||||||
|
|
||||||
|
setFilters(newFilters)
|
||||||
|
|
||||||
|
const filtersObject = getFiltersObj(newFilters)
|
||||||
|
|
||||||
|
setVariables({
|
||||||
|
limit: NUM_LOG_RESULTS,
|
||||||
|
txClass: filtersObject.type,
|
||||||
|
machineName: filtersObject.machine,
|
||||||
|
customerName: filtersObject.customer,
|
||||||
|
fiatCode: filtersObject.fiat,
|
||||||
|
cryptoCode: filtersObject.crypto,
|
||||||
|
toAddress: filtersObject.address,
|
||||||
|
status: filtersObject.status
|
||||||
|
})
|
||||||
|
|
||||||
|
refetch && refetch()
|
||||||
|
}
|
||||||
|
|
||||||
|
const deleteAllFilters = () => {
|
||||||
|
setFilters([])
|
||||||
|
const filtersObject = getFiltersObj([])
|
||||||
|
|
||||||
|
setVariables({
|
||||||
|
limit: NUM_LOG_RESULTS,
|
||||||
|
txClass: filtersObject.type,
|
||||||
|
machineName: filtersObject.machine,
|
||||||
|
customerName: filtersObject.customer,
|
||||||
|
fiatCode: filtersObject.fiat,
|
||||||
|
cryptoCode: filtersObject.crypto,
|
||||||
|
toAddress: filtersObject.address,
|
||||||
|
status: filtersObject.status
|
||||||
|
})
|
||||||
|
|
||||||
|
refetch && refetch()
|
||||||
|
}
|
||||||
|
|
||||||
const filterOptions = R.path(['transactionFilters'])(filtersResponse)
|
const filterOptions = R.path(['transactionFilters'])(filtersResponse)
|
||||||
|
|
||||||
|
|
@ -302,7 +336,7 @@ const Transactions = () => {
|
||||||
entries={txList.length}
|
entries={txList.length}
|
||||||
filters={filters}
|
filters={filters}
|
||||||
onFilterDelete={onFilterDelete}
|
onFilterDelete={onFilterDelete}
|
||||||
setFilters={setFilters}
|
deleteAllFilters={deleteAllFilters}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
<DataTable
|
<DataTable
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue