------------------------------------------
backend.toto@1
------------------------------------------
id: toto@1
collection: [tata@0,tat@1,tata@2]
layout: 'modeX'
------------------------------------------
------------------------------------------
widgets.toto@1
------------------------------------------
id: toto@1
extend: tata@0,
selecteds: {tata@0: true,tat@1:false,tata@2:false}
------------------------------------------
------------------------------------------
widgets.tata@0
------------------------------------------
id: tata@0
extend: true,
selected: true
------------------------------------------
class App
render () {
}
widget.js
export default ConnectBackend ((toto, ownProps) => return {
collection: toto.get('collection')
})(Toto);
class Toto extend Widget
static LoadingComponent (props) {
return
}
render () {
this.props.collection.map (id => )
}
}
const TataWithBackend = ConnectBackend ((tata) => {
return {
info: tata.get('info')
}
})(Tata)
export default ConnectParentWidget ((toto,ownProps) => return {
extend: toto.extend === ownProps.id
selected: toto.get ('selecteds.$(ownProps.id)')
})(TataWithBackend)
const getParentWidget = (state, props) =>
state.get ('widgets.${props.parendId}')
const selected = (state, props) =>
state.get ('selected')
const withSelectedInParent = createSelector(
[ getParentInBackend, selected ],
(parent,selected) => {
return parent
}
)
w
state = {
widgets: {
parent : state.get ('widgets.${ownProps.parendId}')
}
}
Connect ((state,ownProps) => {
return {
state.widgets.parent.
state.backend.
Connect ((state,props) => {
return {
extend: state.get ('widgets.${props.parendId}.extend') === ownProps.id,
extend: getParentWidget(state, props,'extend') === ownProps.id,
extend: getParentWidget(state, props, 'path') === ownProps.id,
extend: state.widgets.parent.get('extend') === ownProps.id
selected state.get ('widgets.${ownProps.parentId}).get ('selecteds.$(ownProps.id)'),
selected: withSelectedInParent(state,props)
mode: state.get ('backend.${ownProps.parentId}.layout),
mode: getParentBackend(state,props,'layout')
xxx: getBackend(state,props,'layout')
yyy:getWidget (state,props,'xxxx)
}
return {
extend: withWidget(state,ownProps,'extend') === ownProps.id
}
}
const withBackend = expr => (state,ownProps) => withBackend (ownProps)(expr)
( Connect (withBackend((x) => x.extend === ownProps.id, 'extent').withWidget(...).withBackend()) )
class Tata
render () {
this.props.info, this.props.extended
}