// License: LGPL-3.0-or-later
const R = require('ramda')
const h = require('flimflam/h')
const flyd = require('flimflam/flyd')
const wizard = require('flimflam/ui/wizard')
const carousel = require('./carousel')

// the api for this components is the same as the regular ff wizard.
// it wraps the wizard content in a carousel component which adds a horizontally
// scrolling animation whenever the wizard index changes.
// it also makes the heights of each wizard step the same.
const content = (state, content) => {
  const count = content.length
  const index = state.isCompleted$() ? (state.currentStep$() + 1) : state.currentStep$()
  return carousel({count, index, content})
}

const labels = (state, steps) => {
  const truncatedSteps = R.map(x => h('span.inline-block.truncate', x), steps)
  return wizard.labels(state, truncatedSteps)
}

module.exports = {init: wizard.init, labels, content}