feat: save new overrires from commissions list

This commit is contained in:
Jose Sousa 2020-11-17 17:32:28 +00:00 committed by Josh Harvey
parent e918a62994
commit 9d52b49083
3 changed files with 34 additions and 1 deletions

View file

@ -12,6 +12,7 @@ import { fromNamespace, toNamespace, namespaces } from 'src/utils/config'
import CommissionsDetails from './components/CommissionsDetails'
import CommissionsList from './components/CommissionsList'
import { removeCoinFromOverride } from './helper.js'
const GET_DATA = gql`
query getData {
@ -45,6 +46,7 @@ const styles = {
colorLabel: {
display: 'flex',
flexDirection: 'row',
alignSelf: 'flex-end',
alignItems: 'center',
marginLeft: 'auto',
'& div': {
@ -72,7 +74,8 @@ const Commissions = ({ name: SCREEN_KEY }) => {
const localeConfig =
data?.config && fromNamespace(namespaces.LOCALE)(data.config)
const currency = R.path(['fiatCurrency'])(localeConfig)
const currency = R.prop('fiatCurrency')(localeConfig)
const overrides = R.prop('overrides')(config)
const save = it => {
const config = toNamespace(SCREEN_KEY)(it.commissions[0])
@ -84,6 +87,28 @@ const Commissions = ({ name: SCREEN_KEY }) => {
return saveConfig({ variables: { config } })
}
const saveOverridesFromList = it => (_, override) => {
const cryptoOverriden = R.path(['cryptoCurrencies', 0], override)
const machineOverrides = R.map(removeCoinFromOverride(cryptoOverriden))(
R.filter(
c =>
c.machine === override.machine &&
!c.cryptoCurrencies.every(c => c === cryptoOverriden)
)(it)
)
const overrides = machineOverrides.concat(
R.filter(c => c.machine !== override.machine)(it)
)
const config = {
commissions_overrides: R.prepend(override, overrides)
}
return saveConfig({ variables: { config } })
}
return (
<>
<Box className={classes.titleWrapper}>
@ -119,6 +144,7 @@ const Commissions = ({ name: SCREEN_KEY }) => {
currency={currency}
data={data}
error={error}
saveOverrides={saveOverridesFromList(overrides)}
/>
)}
</>

View file

@ -90,6 +90,7 @@ const CommissionsList = memo(
error={error?.message}
name="comissionsList"
enableEdit
save={saveOverrides}
initialValues={overridesDefaults}
validationSchema={getListCommissionsSchema()}
data={R.compose(

View file

@ -576,6 +576,11 @@ const sortCommissionsBy = (prop, machines) => {
}
}
const removeCoinFromOverride = crypto => override =>
R.mergeRight(override, {
cryptoCurrencies: R.without([crypto], override.cryptoCurrencies)
})
export {
mainFields,
overrides,
@ -593,6 +598,7 @@ export {
byCoin,
sortCommissionsBy,
filterCommissions,
removeCoinFromOverride,
SHOW_ALL,
ORDER_OPTIONS
}