Sha256: 53c27376fcd342152de0cfe711b339daa78df29745498f29246b83ea8dacd428

Contents?: true

Size: 1.5 KB

Versions: 4

Compression:

Stored size: 1.5 KB

Contents

import { RequestInterceptor } from "@rails/request.js"
import { FetchRequest } from "@rails/request.js"
import { navigator } from "@hotwired/turbo"

//
// Inject Authorization & Content-Type into @rails/request.js requests.
RequestInterceptor.register(async (request) => {
  request.addHeader("Authorization", `Bearer ${OAUTH_TOKEN}`)
})

//
// Setup Turbo Progress bar on @rails/request.js requests.
export function showProgressBar() {
  navigator.delegate.adapter.progressBar.setValue(0)
  navigator.delegate.adapter.progressBar.show()
}

export function hideProgressBar() {
  navigator.delegate.adapter.progressBar.setValue(1)
  navigator.delegate.adapter.progressBar.hide()
}

export function withProgress(request) {
  new Promise(resolve => {
    showProgressBar()
    resolve(request.then(hideProgressBar))
  })
  return request
}

export function get (url, options) {
  const request = new FetchRequest("get", url, options)
  return withProgress(request.perform())
}

export function post (url, options) {
  const request = new FetchRequest("post", url, options)
  return withProgress(request.perform())
}

export function put (url, options) {
  const request = new FetchRequest("put", url, options)
  return withProgress(request.perform())
}

export function patch (url, options) {
  const request = new FetchRequest("patch", url, options)
  return withProgress(request.perform())
}

export function destroy (url, options) {
  const request = new FetchRequest("delete", url, options)
  return withProgress(request.perform())
}

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
spree_backend-4.4.1 app/javascript/spree/dashboard/utilities/request_utility.js
spree_backend-4.4.0 app/javascript/spree/dashboard/utilities/request_utility.js
spree_backend-4.4.0.rc2 app/javascript/spree/dashboard/utilities/request_utility.js
spree_backend-4.4.0.rc1 app/javascript/spree/dashboard/utilities/request_utility.js