planSubmitTransformers.js 1020 Bytes
import { TRANSFORM_TYPES } from '@/config/plan-fields'
import { fenToYuan } from './planFieldTransformers'

const hasValue = (value) => value !== null && value !== undefined && value !== ''

export function transformWithdrawalStagesForSubmit(value) {
  if (!Array.isArray(value)) {
    return value
  }

  return value.map(stage => {
    if (!stage || typeof stage !== 'object') {
      return stage
    }

    return {
      ...stage,
      annual_withdrawal_amount: hasValue(stage.annual_withdrawal_amount)
        ? fenToYuan(stage.annual_withdrawal_amount)
        : stage.annual_withdrawal_amount
    }
  })
}

export function transformSubmitValue({ fieldKey, value, mapping, toYuan }) {
  if (!mapping || typeof mapping === 'string') {
    return value
  }

  if (typeof mapping.transform === 'function') {
    return mapping.transform(value, { fieldKey, mapping, toYuan })
  }

  if (mapping.transform === TRANSFORM_TYPES.FEN_TO_YUAN && hasValue(value)) {
    return toYuan(fieldKey, value)
  }

  return value
}