feat: all coins on commissions
This commit is contained in:
parent
913d281798
commit
9595afb63a
12 changed files with 258 additions and 152 deletions
|
|
@ -45,9 +45,7 @@ const GET_INFO = gql`
|
|||
|
||||
const Wallet = ({ name: SCREEN_KEY }) => {
|
||||
const [editingSchema, setEditingSchema] = useState(null)
|
||||
const [cancelServiceConfiguration, setCancelServiceConfiguration] = useState(
|
||||
null
|
||||
)
|
||||
const [onChangeFunction, setOnChangeFunction] = useState(null)
|
||||
const [wizard, setWizard] = useState(false)
|
||||
const { data } = useQuery(GET_INFO)
|
||||
|
||||
|
|
@ -71,13 +69,16 @@ const Wallet = ({ name: SCREEN_KEY }) => {
|
|||
const cryptoCurrencies = data?.cryptoCurrencies ?? []
|
||||
const accounts = data?.accounts ?? []
|
||||
|
||||
const configureThirdPartyService = (it, cancel) => {
|
||||
if (!it) return
|
||||
const onChange = (previous, current, setValue) => {
|
||||
if (!current) return setValue(current)
|
||||
|
||||
if (!accounts[it]) {
|
||||
setEditingSchema(schemas[it])
|
||||
setCancelServiceConfiguration(() => () => cancel())
|
||||
if (!accounts[current] && schemas[current]) {
|
||||
setEditingSchema(schemas[current])
|
||||
setOnChangeFunction(() => () => setValue(current))
|
||||
return
|
||||
}
|
||||
|
||||
setValue(current)
|
||||
}
|
||||
|
||||
const shouldOverrideEdit = it => {
|
||||
|
|
@ -85,6 +86,15 @@ const Wallet = ({ name: SCREEN_KEY }) => {
|
|||
return !WalletSchema.isValidSync(namespaced)
|
||||
}
|
||||
|
||||
const wizardSave = it =>
|
||||
saveAccount({
|
||||
variables: { accounts: { [editingSchema.code]: it } }
|
||||
}).then(it => {
|
||||
onChangeFunction()
|
||||
setOnChangeFunction(null)
|
||||
return it
|
||||
})
|
||||
|
||||
return (
|
||||
<>
|
||||
<TitleSection title="Wallet Settings" />
|
||||
|
|
@ -100,11 +110,7 @@ const Wallet = ({ name: SCREEN_KEY }) => {
|
|||
editWidth={174}
|
||||
save={save}
|
||||
validationSchema={WalletSchema}
|
||||
elements={getElements(
|
||||
cryptoCurrencies,
|
||||
accountsConfig,
|
||||
configureThirdPartyService
|
||||
)}
|
||||
elements={getElements(cryptoCurrencies, accountsConfig, onChange)}
|
||||
/>
|
||||
{wizard && (
|
||||
<Wizard
|
||||
|
|
@ -122,17 +128,10 @@ const Wallet = ({ name: SCREEN_KEY }) => {
|
|||
<Modal
|
||||
title={`Edit ${editingSchema.name}`}
|
||||
width={478}
|
||||
handleClose={() => {
|
||||
cancelServiceConfiguration && cancelServiceConfiguration()
|
||||
setEditingSchema(null)
|
||||
}}
|
||||
handleClose={() => setEditingSchema(null)}
|
||||
open={true}>
|
||||
<FormRenderer
|
||||
save={it =>
|
||||
saveAccount({
|
||||
variables: { accounts: { [editingSchema.code]: it } }
|
||||
})
|
||||
}
|
||||
save={wizardSave}
|
||||
elements={editingSchema.elements}
|
||||
validationSchema={editingSchema.validationSchema}
|
||||
value={accounts[editingSchema.code]}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue