// License: LGPL-3.0-or-later
// npm
const h = require('snabbdom/h')
const R = require('ramda')
const notification = require('ff-core/notification')
const button = require('ff-core/button')
// local
const colorPicker = require('../../../components/color-picker.es6')
const fonts = require('../../../common/brand-fonts')


const message = 'This branding will be applied to your donate buttons, profile page, campaign pages and event pages'

var updatedTask = "Select a color and font to make your fundraising tools consistent with your brand."
const view = state =>
  h('section.branding.settings-pane.nonprofit-settings.hide', [
    h('header.pane-header', [h('h3', 'Branding')])
  ,  h('div.pane-inner.branding', [
      h('p.pastelBox--yellow.u-padding--10', message)
    , h('br')
    , h('div.branding-settings-wrapper', [
        colorPickWrap(state)
      , fontPicker(state)
      , form(state)
      ])
    , preview(state)
    ])
  , notification.view(state.notification)
  ])

const colorPickWrap = state =>
  h('div.color-wrapper', [
    h('p.title', 'Select Brand Color')
  , colorPicker.view(state.colorPicker)
  , h('div.colPick-wrapper.inner#colorpicker')
  ])

const fontPicker = state =>
  h('div.font-wrapper', [
    h('p.title', 'Select Brand Font')
  , fontListing(state)
  ])

const fontListing = state =>
  h('ul.inner', R.map(R.apply(fontRow(state)), R.toPairs(fonts)))

const fontRow = R.curry((state, key, font) =>
  h('li', {
    style: { fontFamily: font.family }
  , on: {click: [state.font$, R.merge(font, {key: key})]}
  }, font.name)
)

const form = state => {
  var btn = button({ buttonText: 'Save Branding' , loading$: state.loading$ })

  return h('form.branding-form', {
    on: {submit: ev => {ev.preventDefault(); state.submit$(state)}}
  }, [btn])
}

const preview = state =>
  h('div.preview-wrapper', [
    h('p.title', 'Preview')
  , previewDonateBtn(state)
  ])

const previewDonateBtn = state =>
  h('div.branded-donate-button-wrapper', [
    h('p.branded-donate-button', {
      style: {
        background: state.colorPicker.color$()
      , fontFamily: state.font$().family
      }
    }, 'Donate' )
  ])

module.exports = view