// License: LGPL-3.0-or-later const modal = require('ff-core/modal') const h = require('snabbdom/h') const validated = require('ff-core/validated-form') const button = require('ff-core/button') const R = require('ramda') module.exports = state => modal({ title: h('h4.modalTitle', 'Email') , id$: state.modalID$ , thisID: 'composeGmailModal' , body: body(state) }) const fieldset = (name, placeholder, field) => h('fieldset.group.u-marginTop--10', [ h('label.u-inlineBlock.col-2.u-paddingTop--5', utils.capitalize(name) + ': ') , h('div.col-right-10.u-margin--0', [ field(h('textarea.u-margin--0', {props: {rows: '1', name, placeholder}})) ]) ]) const group = (labelText, spanContent) => h('div.group.u-marginBottom--10',[ h('label.u-inlineBlock.col-2', `${labelText}: `) , h('span.col-right--10', [spanContent]) ]) const body = state => { var gmail = state.gmail var to = state.supporter$().email var from = gmail.from$() var field = validated.field(gmail.composeForm) return validated.form(gmail.composeForm, h('form', [ group('From' , h('span', [ gmail.from$() + '' , h('a.u-small.u-paddingLeft--10', {props: {href: '#'}, on: {click: gmail.newSignIn$}} , '(Switch account)') ]) ) , group('To', to + '') , h('input', {props: {type: 'hidden', name: 'from', value: gmail.from$()}}) , field(h('input', {props: {type: 'hidden', name: 'to', value: to}})) , fieldset('cc', 'Cc (separate with commas)', field) , fieldset('bcc', 'Bcc (separate with commas)', field) , fieldset('subject', 'Subject (required)', field) , field(h('textarea.u-marginTop--10', {props: {name: 'body', placeholder: 'Message', rows: '10'}})) , h('div.u-marginTop--20.u-centered', [ button({buttonText: 'Send', loadingText: 'Sending...', loading$: state.loading$, error: state.error$}) ]) ])) }