Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@skava/ui / src / forms / views / ShippingAddress / Form / state.tsx
Size: Mime:
import { observer } from 'xmobx/mobx-react'
import { action, observable } from 'xmobx/mobx'
import { isFunction } from 'exotic'

class ShippingAddressFormState {
  @observable shippingAddress = {}

  @action
  setShippingAddressForm(form) {
    this.shippingAddress = form
    console.log('[Shipping Address] setShippingAddressForm()', this)
  }

  @action.bound
  handleShippingAddressFormBlur = () => {
    const { validateForm, state, props } = this.shippingAddress
    const { onValidFormBlur } = props
    const isValidForm = validateForm()

    if (isValidForm === true) {
      console.log(
        '[Shipping Address] onBlur serialized data',
        state.toSerialized()
      )
      if (isFunction(onValidFormBlur)) {
        onValidFormBlur(props, state)
      }
    }
  }
}

// Object Creation
const shippingAddressFormState = new ShippingAddressFormState()

export { shippingAddressFormState }
export default shippingAddressFormState