37 lines
1,016 B
Text
37 lines
1,016 B
Text
|
// License: LGPL-3.0-or-later
|
||
|
const flyd = require('flyd')
|
||
|
const R = require('ramda')
|
||
|
const flatMap = require('flyd/module/flatmap')
|
||
|
const request = require('../../common/request')
|
||
|
const serialize = require('form-serialize')
|
||
|
require('../../components/address-autocomplete')
|
||
|
|
||
|
const submit$ = flyd.stream()
|
||
|
document.querySelector('.js-submit')
|
||
|
.addEventListener('submit', ev => {
|
||
|
ev.preventDefault()
|
||
|
submit$(ev)
|
||
|
})
|
||
|
|
||
|
flyd.map(()=> appl.def('loading', true), submit$)
|
||
|
|
||
|
const postRequest = ev => {
|
||
|
return request({
|
||
|
method: "POST"
|
||
|
, path: `/nonprofits/${app.nonprofit_id}/custom_supporter`
|
||
|
, send: {supporter: serialize(ev.currentTarget, {hash: true})}
|
||
|
}).load
|
||
|
}
|
||
|
|
||
|
const getReqBody = flyd.map(R.prop('body'))
|
||
|
|
||
|
const response$ = getReqBody(flatMap(postRequest, submit$))
|
||
|
|
||
|
flyd.map(()=> {
|
||
|
document.querySelector('.finishedMessage').className = 'finishedMessage'
|
||
|
document.querySelector('.js-submit').className = 'js-submit hide'
|
||
|
}, response$)
|
||
|
|
||
|
flyd.map(()=> appl.def('loading', false), response$)
|
||
|
|