Sha256: b5404c4425224d3b9653f13fc341187128baf0b7801bd0e3c71e76f182246294

Contents?: true

Size: 1.61 KB

Versions: 3

Compression:

Stored size: 1.61 KB

Contents

function updateAddressState(region, successCallback) {
  const countryId = $('#' + region + 'country select').val()
  const stateContainer = $('#' + region + 'state').parent()
  const stateSelect = $('#' + region + 'state select')
  const stateInput = $('#' + region + 'state input.state_name')

  if (!countryId) { return }

  fetch(Spree.routes.countries_api_v2 + '/' + countryId + '?include=states', {
    headers: Spree.apiV2Authentication()
  }).then((response) => {
    switch (response.status) {
      case 200:
        response.json().then((json) => {
          const states = json.included
          const statesRequired = json.data.attributes.states_required
          if (states.length > 0) {
            stateSelect.html('')
            $.each(states, function (_pos, state) {
              const opt = $(document.createElement('option'))
                .prop('value', state.id)
                .html(state.attributes.name)
              stateSelect.append(opt).trigger('change')
            })
            stateSelect.prop('disabled', false).show()
            stateSelect.select2()
            stateInput.hide().prop('disabled', true)
            stateContainer.show()
          } else {
            stateSelect.val(null).trigger('change')
            if (stateSelect.data('select2')) {
              stateSelect.select2('destroy')
            }
            stateSelect.hide()
            if (statesRequired) {
              stateInput.prop('disabled', false).show()
            } else {
              stateContainer.hide()
            }
          }
          if (successCallback) successCallback()
        })
        break
    }
  })
}

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
spree_backend-4.4.1 app/assets/javascripts/spree/backend/address_states.es6
spree_backend-4.4.0 app/assets/javascripts/spree/backend/address_states.es6
spree_backend-4.4.0.rc2 app/assets/javascripts/spree/backend/address_states.es6