export default sources => {
  const _sources = {...sources,
    answer$: sources.engagement$.map(e => e && e.answer),
  }

  const inst = Instruct(_sources)
  const quest = Question(_sources)
  const ans = isolate(Answer,'answer')(_sources)
  const next = isolate(Next, 'next')(_sources)

  const childs = [inst, quest, ans, next]

  const queue$ = buildUpdate(
    sources.engagementKey$,
    ans.value$.map(answer => ({answer})),
  ).map(Engagements.action.update)

  const DOM = combineLatestToDiv(...childs.map(i => i.DOM))

  return {
    DOM,
    queue$,
    route$: next.route$,
  }
}
Beispiel #2
0
const FilteredView = sources => {
  const detail = Detail(sources)
  const list = AppList(sources)
  const mt = EmptyNotice({...sources, items$: sources.memberships$})

  return {
    DOM: combineLatestToDiv(mt.DOM, list.DOM, detail.DOM),
    route$: merge(list.route$, detail.route$.map(sources.router.createHref)),
    queue$: detail.queue$,
  }
}
Beispiel #3
0
export default sources => {
  const _sources = {...sources, ..._Fetch(sources)}

  const list = _List(_sources)
  const add = AddShift(_sources)
  const ed = _EditDialog({..._sources, edit$: list.edit$})
  return {
    DOM: combineLatestToDiv(list.DOM, add.DOM, ed.DOM),
    queue$: merge(add.queue$, list.queue$, ed.queue$),
  }
}
Beispiel #4
0
const _List = sources => {
  const childs = [
    isolate(_Glance,'glance')(sources),
    isolate(_Manage,'manage')(sources),
    isolate(_Engaged,'enaged')(sources),
  ]

  return {
    DOM: combineLatestToDiv(...childs.map(c => c.DOM)),
    route$: merge(...childs.map(c => c.route$))
      .map(sources.router.createHref),
  }
}
const NextStepsList = sources => {
  const todos = [
    isolate(ToDoAnswer,'answer')(sources),
    isolate(ToDoTeams,'teams')(sources),
    isolate(ToDoProfile,'profile')(sources),
  ]

  const childs = [Title(sources), ...todos, Done(sources)]

  return {
    DOM: combineLatestToDiv(...childs.map(c => c.DOM)),
    route$: $.merge(...todos.map(t => t.route$)),
  }
}
export default sources => {
  const _sources = {...sources,
    complete$: applicationComplete$$(sources),
  }

  const todos = [
    isolate(ToDoAnswer,'answer')(_sources),
    isolate(ToDoTeams,'teams')(_sources),
    isolate(ToDoProfile,'profile')(_sources),
  ]

  const childs = [Title(_sources), ...todos, Done(_sources)]

  return {
    DOM: combineLatestToDiv(...childs.map(c => c.DOM)),
    route$: merge(...todos.map(t => t.route$)),
  }
}