Как добавить пользовательские очереди кнопкой назад - PullRequest
4 голосов
/ 19 марта 2020

Я рассматриваю пример документации SweetAlert2, которая генерирует окно с шагами и включает кнопку go назад.

Я не могу найти способ настроить различные очереди так, как мне хочется. Согласно документации, его можно настроить с помощью .queue (), но он у меня не работает.

Кто-нибудь знает, как это сделать?

const steps = ['1', '2', '3']
const swalQueueStep = Swal.mixin({
  confirmButtonText: 'Forward',
  cancelButtonText: 'Back',
  progressSteps: steps,
  input: 'text',
  inputAttributes: {
    required: true
  },
  reverseButtons: true,
  validationMessage: 'This field is required'
})

async function backAndForth () {
  const values = []
  let currentStep

  for (currentStep = 0; currentStep < steps.length;) {
    const result = await swalQueueStep.fire({
      title: 'Question ' + steps[currentStep],
      inputValue: values[currentStep],
      showCancelButton: currentStep > 0,
      currentProgressStep: currentStep
    })

    if (result.value) {
      values[currentStep] = result.value
      currentStep++
    } else if (result.dismiss === 'cancel') {
      currentStep--
    } else {
      break
    }
  }

  if (currentStep === steps.length) {
    Swal.fire(JSON.stringify(values))
  }
}

backAndForth()
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@9"></script>
...