Merge pull request #943 from chaotixkilla/fix-transaction-filter-missing-cancelled

Fix transaction search filters
This commit is contained in:
Rafael Taranto 2021-11-24 17:43:16 +00:00 committed by GitHub
commit 7164e1105b
4 changed files with 55 additions and 15 deletions

View file

@ -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'

View file

@ -9,7 +9,8 @@ const BN = require('../bn')
const REDEEMABLE_AGE = T.day / 1000 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'

View file

@ -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>

View file

@ -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