Esempio n. 1
0
const OkAndCancelAndRemove = sources => {
  const ok = RaisedButton({...sources,
    label$: sources.okLabel$ || just('OK'),
  })
  const remove = RaisedButton({...sources,
    label$: sources.removeLabel$ || just('Remove'),
    classNames$: just(['accent']),
  })
  const cancel = FlatButton({...sources,
    label$: sources.cancelLabel$ || just('Cancel'),
  })

  const doms = [ok, remove, cancel].map(c => c.DOM)

  return {
    DOM: combineLatest(
      sources.value$, ...doms,
      (val, okDOM, rDOM, cDOM) => div({},[
        okDOM,
        val && rDOM || null,
        cDOM,
      ])
    ),
    ok$: ok.click$,
    remove$: remove.click$,
    cancel$: cancel.click$,
  }
}
Esempio n. 2
0
const _Navs = sources => {
  const prev = FlatButton({...sources, label$: just('<')})
  const close = FlatButton({...sources, label$: just('CLOSE')})
  const next = FlatButton({...sources, label$: just('>')})

  const route$ = merge(
    sources.engagementKey$.map(k => [k, -1])
      .sample(prev.click$),
    sources.engagementKey$.map(k => [k, 0])
      .sample(close.click$),
    sources.engagementKey$.map(k => [k, 1])
      .sample(next.click$),
  )

  return {
    DOM: combineDOMsToDiv('.center', prev, close, next),
    route$,
  }
}
const MenuButton = sources => {
  const btn = FlatButton({...sources, label$: $.of(icon('menu'))})

  const isOpen$ = btn.click$.map(true).startWith(false)
  const children$ = sources.menuItems$ || $.just([])

  const menu = Menu({
    ...sources,
    isOpen$,
    children$,
    leftAlign$: $.of(false),
  })

  return {
    DOM: combineDOMsToDiv('', btn, menu),
  }
}