Skip to content

Commit 45387e5

Browse files
authored
Fix fields for pix payout (#5428)
Co-authored-by: Creeperkatze <178587183+Creeperkatze@users.noreply.github.com>
1 parent e362de4 commit 45387e5

File tree

2 files changed

+42
-2
lines changed

2 files changed

+42
-2
lines changed

apps/frontend/src/components/ui/dashboard/withdraw-stages/MuralpayDetailsStage.vue

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@
100100
/>
101101
</div>
102102

103-
<div v-for="field in selectedRail?.fields" :key="field.name" class="flex flex-col gap-2.5">
103+
<div v-for="field in visibleFields" :key="field.name" class="flex flex-col gap-2.5">
104104
<label>
105105
<span class="text-md font-semibold text-contrast">
106106
{{ formatMessage(field.label) }}
@@ -398,6 +398,26 @@ const isBusinessEntity = computed(() => {
398398
return providerDataValue.kycData?.type === 'business'
399399
})
400400
401+
const visibleFields = computed(() => {
402+
const rail = selectedRail.value
403+
if (!rail) return []
404+
405+
return rail.fields.filter((field) => {
406+
if (!field.dependsOn) return true
407+
408+
const { field: dependsOnField, value: dependsOnValue } = field.dependsOn
409+
const currentValue = formData.value[dependsOnField]
410+
411+
if (!currentValue) return false
412+
413+
if (Array.isArray(dependsOnValue)) {
414+
return dependsOnValue.includes(currentValue)
415+
} else {
416+
return currentValue === dependsOnValue
417+
}
418+
})
419+
})
420+
401421
const allRequiredFieldsFilled = computed(() => {
402422
const rail = selectedRail.value
403423
if (!rail) return false
@@ -407,7 +427,7 @@ const allRequiredFieldsFilled = computed(() => {
407427
408428
if (rail.requiresBankName && !formData.value.bankName) return false
409429
410-
const requiredFields = rail.fields.filter((f) => f.required)
430+
const requiredFields = visibleFields.value.filter((f) => f.required)
411431
const allRequiredPresent = requiredFields.every((f) => {
412432
const value = formData.value[f.name]
413433
return value !== undefined && value !== null && value !== ''

apps/frontend/src/utils/muralpay-rails.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@ export interface FieldConfig {
1313
pattern?: string
1414
validate?: (value: string) => string | null
1515
autocomplete?: string
16+
dependsOn?: {
17+
field: string
18+
value?: string | string[]
19+
}
1620
}
1721

1822
export interface RailConfig {
@@ -330,6 +334,10 @@ export const MURALPAY_RAILS: Record<string, RailConfig> = {
330334
defaultMessage: 'Enter PIX email',
331335
}),
332336
autocomplete: 'email',
337+
dependsOn: {
338+
field: 'pixAccountType',
339+
value: 'EMAIL',
340+
},
333341
},
334342
{
335343
name: 'pixPhone',
@@ -341,6 +349,10 @@ export const MURALPAY_RAILS: Record<string, RailConfig> = {
341349
defaultMessage: '+55...',
342350
}),
343351
autocomplete: 'tel',
352+
dependsOn: {
353+
field: 'pixAccountType',
354+
value: 'PHONE',
355+
},
344356
},
345357
{
346358
name: 'branchCode',
@@ -352,6 +364,10 @@ export const MURALPAY_RAILS: Record<string, RailConfig> = {
352364
defaultMessage: 'Enter branch code',
353365
}),
354366
autocomplete: 'off',
367+
dependsOn: {
368+
field: 'pixAccountType',
369+
value: 'BANK_ACCOUNT',
370+
},
355371
},
356372
{
357373
name: 'documentNumber',
@@ -367,6 +383,10 @@ export const MURALPAY_RAILS: Record<string, RailConfig> = {
367383
defaultMessage: 'Brazilian tax identification number',
368384
}),
369385
autocomplete: 'off',
386+
dependsOn: {
387+
field: 'pixAccountType',
388+
value: 'DOCUMENT',
389+
},
370390
},
371391
],
372392
},

0 commit comments

Comments
 (0)