// License: LGPL-3.0-or-later
const flyd = require('flyd')
const request = require('../common/request')
const flatMap = require('flyd/module/flatmap')
const R = require('ramda')

function init(prefix, fundraiserId) {
  var dupePath = prefix + `/${fundraiserId}/duplicate.json`
  var click$ = flyd.stream()
  var button = document.getElementById('js-duplicateFundraiser')

  button.addEventListener('click', click$) 

  const duplicate = () => {
    button.setAttribute('disabled', 'disabled')  
    button.innerHTML = 'Copying...'
    return flyd.map(R.prop('body'), request({path: dupePath, method: 'post'}).load)
  } 

  const response$ = flatMap(duplicate, click$)

  flyd.map(resp => window.location = prefix + `/${resp.id}`, response$)
}

module.exports = init