diff --git a/new-lamassu-admin/src/pages/Commissions/Commissions.js b/new-lamassu-admin/src/pages/Commissions/Commissions.js index e8d1a91c..a6357a3e 100644 --- a/new-lamassu-admin/src/pages/Commissions/Commissions.js +++ b/new-lamassu-admin/src/pages/Commissions/Commissions.js @@ -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 ( <> @@ -119,6 +144,7 @@ const Commissions = ({ name: SCREEN_KEY }) => { currency={currency} data={data} error={error} + saveOverrides={saveOverridesFromList(overrides)} /> )} diff --git a/new-lamassu-admin/src/pages/Commissions/components/CommissionsList.js b/new-lamassu-admin/src/pages/Commissions/components/CommissionsList.js index 3505698c..2431f20c 100644 --- a/new-lamassu-admin/src/pages/Commissions/components/CommissionsList.js +++ b/new-lamassu-admin/src/pages/Commissions/components/CommissionsList.js @@ -90,6 +90,7 @@ const CommissionsList = memo( error={error?.message} name="comissionsList" enableEdit + save={saveOverrides} initialValues={overridesDefaults} validationSchema={getListCommissionsSchema()} data={R.compose( diff --git a/new-lamassu-admin/src/pages/Commissions/helper.js b/new-lamassu-admin/src/pages/Commissions/helper.js index ae5f2cb9..cdf11b9d 100644 --- a/new-lamassu-admin/src/pages/Commissions/helper.js +++ b/new-lamassu-admin/src/pages/Commissions/helper.js @@ -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 }