Sha256: 2c2c95c132fbea2509470587e91f1d5602817c63f0d01d870f4d8e822691a9ba

Contents?: true

Size: 1.79 KB

Versions: 12

Compression:

Stored size: 1.79 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
          const stateSelectValue = stateSelect.val();
          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()
            if (stateSelectValue !== undefined) {
              stateSelect.val(stateSelectValue).trigger('change')
            }
            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

12 entries across 12 versions & 1 rubygems

Version Path
spree_backend-4.8.4 app/assets/javascripts/spree/backend/address_states.es6
spree_backend-4.8.3 app/assets/javascripts/spree/backend/address_states.es6
spree_backend-4.8.2 app/assets/javascripts/spree/backend/address_states.es6
spree_backend-4.8.1 app/assets/javascripts/spree/backend/address_states.es6
spree_backend-4.7.2 app/assets/javascripts/spree/backend/address_states.es6
spree_backend-4.6.2 app/assets/javascripts/spree/backend/address_states.es6
spree_backend-4.7.1 app/assets/javascripts/spree/backend/address_states.es6
spree_backend-4.7.0 app/assets/javascripts/spree/backend/address_states.es6
spree_backend-4.6.1 app/assets/javascripts/spree/backend/address_states.es6
spree_backend-4.6.0 app/assets/javascripts/spree/backend/address_states.es6
spree_backend-4.5.1 app/assets/javascripts/spree/backend/address_states.es6
spree_backend-4.5.0 app/assets/javascripts/spree/backend/address_states.es6