@cicada/render
Advanced tools
Comparing version
@@ -25,5 +25,5 @@ 'use strict'; | ||
var _createConnect = require('../createConnect'); | ||
var _connect = require('../connect'); | ||
var _createConnect2 = _interopRequireDefault(_createConnect); | ||
var _connect2 = _interopRequireDefault(_connect); | ||
@@ -95,4 +95,4 @@ var _createStateTree = require('../createStateTree'); | ||
}; | ||
var connect = (0, _createConnect2.default)(); | ||
var Button = connect(ButtonComponent, 'Button'); | ||
var Button = (0, _connect2.default)(ButtonComponent, 'Button'); | ||
var declarativeComponent = (0, _convertFragment3.default)(fragment, { Button: Button }, (0, _applyStateTreeSubscriber2.default)(_createStateTree2.default), _createAppearance2.default, _createBackground2.default, { utilities: { stateTree: stateTreeUtility } }); | ||
@@ -113,4 +113,3 @@ expect((0, _typeof3.default)(declarativeComponent.defaultListeners.onChange)).toBe('function'); | ||
var connect = (0, _createConnect2.default)(); | ||
var Button = connect(ButtonComponent, 'Button'); | ||
var Button = (0, _connect2.default)(ButtonComponent, 'Button'); | ||
var onChangeArgs = []; | ||
@@ -238,7 +237,6 @@ var onChange = function onChange() { | ||
var connect = (0, _createConnect2.default)(); | ||
var Button = connect(ButtonComponent, 'Button'); | ||
var Spy = connect(SpyComponent, 'Spy'); | ||
var Button = (0, _connect2.default)(ButtonComponent, 'Button'); | ||
var Spy = (0, _connect2.default)(SpyComponent, 'Spy'); | ||
var finalCreateTree = (0, _applyStateTreeSubscriber2.default)(_createStateTree2.default); | ||
var ButtonAndSpy = connect((0, _convertFragment3.default)(fragment, finalCreateTree, _createAppearance2.default, _createBackground2.default, { utilities: { stateTree: stateTreeUtility } }), 'ButtonAndSpy'); | ||
var ButtonAndSpy = (0, _connect2.default)((0, _convertFragment3.default)(fragment, finalCreateTree, _createAppearance2.default, _createBackground2.default, { utilities: { stateTree: stateTreeUtility } }), 'ButtonAndSpy'); | ||
@@ -324,7 +322,6 @@ var container = (0, _enzyme.mount)(_react2.default.createElement(_Render2.default, { | ||
var connect = (0, _createConnect2.default)(); | ||
var Button = connect(ButtonComponent, 'Button'); | ||
var Spy = connect(SpyComponent, 'Spy'); | ||
var Button = (0, _connect2.default)(ButtonComponent, 'Button'); | ||
var Spy = (0, _connect2.default)(SpyComponent, 'Spy'); | ||
var finalCreateTree = (0, _applyStateTreeSubscriber2.default)(_createStateTree2.default); | ||
var ButtonAndSpy = connect((0, _convertFragment3.default)(fragment, finalCreateTree, _createAppearance2.default, _createBackground2.default, { utilities: { stateTree: stateTreeUtility } }), 'ButtonAndSpy'); | ||
var ButtonAndSpy = (0, _connect2.default)((0, _convertFragment3.default)(fragment, finalCreateTree, _createAppearance2.default, _createBackground2.default, { utilities: { stateTree: stateTreeUtility } }), 'ButtonAndSpy'); | ||
@@ -376,6 +373,5 @@ var container = (0, _enzyme.mount)(_react2.default.createElement(_Render2.default, { | ||
var connect = (0, _createConnect2.default)(); | ||
var Button = connect(ButtonComponent, 'Button'); | ||
var Button = (0, _connect2.default)(ButtonComponent, 'Button'); | ||
var finalCreateTree = (0, _applyStateTreeSubscriber2.default)(_createStateTree2.default); | ||
var ButtonFrag = connect((0, _convertFragment3.default)(fragment, finalCreateTree, _createAppearance2.default, _createBackground2.default, { utilities: { stateTree: stateTreeUtility } }), 'ButtonFrag'); | ||
var ButtonFrag = (0, _connect2.default)((0, _convertFragment3.default)(fragment, finalCreateTree, _createAppearance2.default, _createBackground2.default, { utilities: { stateTree: stateTreeUtility } }), 'ButtonFrag'); | ||
@@ -382,0 +378,0 @@ test('simple delegate', function () { |
@@ -31,5 +31,5 @@ 'use strict'; | ||
var _createConnect = require('../../createConnect'); | ||
var _connect = require('../../connect'); | ||
var _createConnect2 = _interopRequireDefault(_createConnect); | ||
var _connect2 = _interopRequireDefault(_connect); | ||
@@ -91,6 +91,4 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
var connect = noop; | ||
var stateTree = {}; | ||
beforeEach(function () { | ||
connect = (0, _createConnect2.default)(); | ||
stateTree = (0, _applyStateTreeSubscriber2.default)(_createStateTree2.default)(); | ||
@@ -101,3 +99,3 @@ }); | ||
var container = (0, _enzyme.mount)(_react2.default.createElement(_Render2.default, { | ||
components: { Demo: connect(DemoComponent, 'Demo') }, | ||
components: { Demo: (0, _connect2.default)(DemoComponent, 'Demo') }, | ||
stateTree: stateTree, | ||
@@ -115,3 +113,3 @@ config: { | ||
var container = (0, _enzyme.mount)(_react2.default.createElement(_Render2.default, { | ||
components: { Demo: connect(DemoComponentWithIdentifier, 'Demo') }, | ||
components: { Demo: (0, _connect2.default)(DemoComponentWithIdentifier, 'Demo') }, | ||
stateTree: stateTree, | ||
@@ -142,3 +140,3 @@ config: { | ||
var container = (0, _enzyme.mount)(_react2.default.createElement(_Render2.default, { | ||
components: { Demo: connect(DemoComponent, 'Demo') }, | ||
components: { Demo: (0, _connect2.default)(DemoComponent, 'Demo') }, | ||
stateTree: (0, _applyStateTreeSubscriber2.default)(_createStateTree2.default)({ | ||
@@ -198,3 +196,3 @@ demo: { | ||
stateTree: stateTree, | ||
components: { Button: connect(Component, 'Button') }, | ||
components: { Button: (0, _connect2.default)(Component, 'Button') }, | ||
config: { | ||
@@ -255,3 +253,3 @@ type: 'Button', | ||
stateTree: stateTree, | ||
components: { Button: connect(Component, 'Button') }, | ||
components: { Button: (0, _connect2.default)(Component, 'Button') }, | ||
config: { | ||
@@ -315,3 +313,3 @@ type: 'Button', | ||
stateTree: stateTree, | ||
components: { Button: connect(Component, 'Button') }, | ||
components: { Button: (0, _connect2.default)(Component, 'Button') }, | ||
config: { | ||
@@ -377,3 +375,3 @@ type: 'Button', | ||
stateTree: stateTree, | ||
components: { Button: connect(Component, 'Button') }, | ||
components: { Button: (0, _connect2.default)(Component, 'Button') }, | ||
config: { | ||
@@ -434,3 +432,3 @@ type: 'Button', | ||
stateTree: stateTree, | ||
components: { Button: connect(Component, 'Button') }, | ||
components: { Button: (0, _connect2.default)(Component, 'Button') }, | ||
config: { | ||
@@ -492,3 +490,3 @@ type: 'Button', | ||
stateTree: stateTree, | ||
components: { Button: connect(Component, 'Button') }, | ||
components: { Button: (0, _connect2.default)(Component, 'Button') }, | ||
config: { | ||
@@ -495,0 +493,0 @@ type: 'Button', |
@@ -29,5 +29,5 @@ 'use strict'; | ||
var _createConnect = require('../../createConnect'); | ||
var _connect = require('../../connect'); | ||
var _createConnect2 = _interopRequireDefault(_createConnect); | ||
var _connect2 = _interopRequireDefault(_connect); | ||
@@ -80,3 +80,2 @@ var _createBackground = require('../../createBackground'); | ||
var stateTree = null; | ||
var connect = null; | ||
var appearance = null; | ||
@@ -86,3 +85,2 @@ beforeEach(function () { | ||
appearance = (0, _createAppearance2.default)(); | ||
connect = (0, _createConnect2.default)(); | ||
}); | ||
@@ -115,3 +113,3 @@ | ||
var Input = connect(DemoInput, 'Input'); | ||
var Input = (0, _connect2.default)(DemoInput, 'Input'); | ||
@@ -118,0 +116,0 @@ var container = (0, _enzyme.mount)(_react2.default.createElement(_Render2.default, { |
@@ -7,6 +7,2 @@ 'use strict'; | ||
var _reactDom = require('react-dom'); | ||
var _reactDom2 = _interopRequireDefault(_reactDom); | ||
var _propTypes = require('prop-types'); | ||
@@ -18,5 +14,5 @@ | ||
var _createConnect = require('../../createConnect'); | ||
var _connect = require('../../connect'); | ||
var _createConnect2 = _interopRequireDefault(_createConnect); | ||
var _connect2 = _interopRequireDefault(_connect); | ||
@@ -146,4 +142,2 @@ var _util = require('../../util'); | ||
var connect = (0, _createConnect2.default)(); | ||
var DynamicRender = (0, _createDynamicRender2.default)((0, _applyStateTreeSubscriber2.default)(_createStateTree2.default), _createAppearance2.default, _createBackground2.default, backgroundDef); | ||
@@ -163,3 +157,3 @@ | ||
var components = (0, _util.mapValues)({ Button: Button.Component, Input: Input.Component, DynamicRender: DynamicRender }, connect); | ||
var components = (0, _util.mapValues)({ Button: Button.Component, Input: Input.Component, DynamicRender: DynamicRender }, _connect2.default); | ||
@@ -222,3 +216,3 @@ var config = { | ||
components = (0, _util.mapValues)({ Button: Button.Component, Input: Input.Component, DynamicRender: DynamicRender }, connect); | ||
components = (0, _util.mapValues)({ Button: Button.Component, Input: Input.Component, DynamicRender: DynamicRender }, _connect2.default); | ||
@@ -225,0 +219,0 @@ var config = { |
@@ -25,5 +25,5 @@ 'use strict'; | ||
var _createConnect = require('../../createConnect'); | ||
var _connect = require('../../connect'); | ||
var _createConnect2 = _interopRequireDefault(_createConnect); | ||
var _connect2 = _interopRequireDefault(_connect); | ||
@@ -184,6 +184,5 @@ var _createStateTree = require('../../createStateTree'); | ||
var connect = (0, _createConnect2.default)(); | ||
var Button = connect(ButtonComponent, 'Button'); | ||
var Button = (0, _connect2.default)(ButtonComponent, 'Button'); | ||
var appliedCreateStateTree = (0, _applyStateTreeSubscriber2.default)(_createStateTree2.default); | ||
var FragmentButton = connect((0, _convertFragment2.default)(fragment, appliedCreateStateTree, _createAppearance2.default, _createBackground2.default, { utilities: { stateTree: stateTreeUtility } }), 'FragmentButton'); | ||
var FragmentButton = (0, _connect2.default)((0, _convertFragment2.default)(fragment, appliedCreateStateTree, _createAppearance2.default, _createBackground2.default, { utilities: { stateTree: stateTreeUtility } }), 'FragmentButton'); | ||
@@ -252,6 +251,5 @@ var config = { | ||
var connect = (0, _createConnect2.default)(); | ||
var baseComponents = (0, _util.mapValues)({ Input: InputComponent, Button: ButtonComponent }, connect); | ||
var baseComponents = (0, _util.mapValues)({ Input: InputComponent, Button: ButtonComponent }, _connect2.default); | ||
var fragmentComponents = (0, _util.mapValues)(fragments, function (fragment, name) { | ||
return connect((0, _convertFragment2.default)(fragment, (0, _applyStateTreeSubscriber2.default)(_createStateTree2.default), _createAppearance2.default, _createBackground2.default, { utilities: { stateTree: stateTreeUtility } }), name); | ||
return (0, _connect2.default)((0, _convertFragment2.default)(fragment, (0, _applyStateTreeSubscriber2.default)(_createStateTree2.default), _createAppearance2.default, _createBackground2.default, { utilities: { stateTree: stateTreeUtility } }), name); | ||
}); | ||
@@ -342,3 +340,5 @@ | ||
/* eslint-disable no-console */ | ||
(_console = console).log.apply(_console, ['on first name change'].concat(argv)); | ||
/* eslint-enable no-console */ | ||
} | ||
@@ -357,6 +357,5 @@ }] | ||
var connect = (0, _createConnect2.default)(); | ||
var baseComponents = (0, _util.mapValues)({ Input: InputComponent, Button: ButtonComponent }, connect); | ||
var baseComponents = (0, _util.mapValues)({ Input: InputComponent, Button: ButtonComponent }, _connect2.default); | ||
var fragmentComponents = (0, _util.mapValues)(perfFragments, function (fragment, name) { | ||
return connect((0, _convertFragment2.default)(fragment, (0, _applyStateTreeSubscriber2.default)(_createStateTree2.default), _createAppearance2.default, _createBackground2.default, { utilities: { stateTree: stateTreeUtility } }), name); | ||
return (0, _connect2.default)((0, _convertFragment2.default)(fragment, (0, _applyStateTreeSubscriber2.default)(_createStateTree2.default), _createAppearance2.default, _createBackground2.default, { utilities: { stateTree: stateTreeUtility } }), name); | ||
}); | ||
@@ -363,0 +362,0 @@ |
@@ -29,5 +29,5 @@ 'use strict'; | ||
var _createConnect = require('../../createConnect'); | ||
var _connect = require('../../connect'); | ||
var _createConnect2 = _interopRequireDefault(_createConnect); | ||
var _connect2 = _interopRequireDefault(_connect); | ||
@@ -53,7 +53,5 @@ var _createBackground = require('../../createBackground'); | ||
var appearance = null; | ||
var connect = null; | ||
beforeEach(function () { | ||
stateTree = (0, _applyStateTreeSubscriber2.default)(_createStateTree2.default)(); | ||
appearance = (0, _createAppearance2.default)(); | ||
connect = (0, _createConnect2.default)(); | ||
}); | ||
@@ -81,33 +79,82 @@ | ||
test('use stateTree in interpolation', function () { | ||
var container = (0, _enzyme.mount)(_react2.default.createElement(_Render2.default, { | ||
stateTree: stateTree, | ||
appearance: appearance, | ||
components: { Demo: connect(DemoComponent, 'Demo') }, | ||
background: (0, _createBackground2.default)({ | ||
jobs: { | ||
interpolation: interpolationJob | ||
}, | ||
utilities: { | ||
stateTree: stateTreeUtility | ||
var DemoChildComponent = { | ||
render: function render(_ref2) { | ||
var children = _ref2.children; | ||
return _react2.default.createElement( | ||
'div', | ||
null, | ||
children | ||
); | ||
} | ||
}; | ||
describe('use stateTree', function () { | ||
test('basic stateTree get', function () { | ||
var container = (0, _enzyme.mount)(_react2.default.createElement(_Render2.default, { | ||
stateTree: stateTree, | ||
appearance: appearance, | ||
components: { Demo: (0, _connect2.default)(DemoComponent, 'Demo') }, | ||
background: (0, _createBackground2.default)({ | ||
jobs: { | ||
interpolation: interpolationJob | ||
}, | ||
utilities: { | ||
stateTree: stateTreeUtility | ||
} | ||
}, stateTree, appearance), | ||
config: { | ||
children: [{ | ||
bind: 'demo', | ||
type: 'Demo' | ||
}, { | ||
type: 'div', | ||
interpolate: function interpolate(_ref3) { | ||
var s = _ref3.stateTree; | ||
return s.get('demo').value + 'bbb'; | ||
} | ||
}] | ||
} | ||
}, stateTree, appearance), | ||
config: { | ||
children: [{ | ||
bind: 'demo', | ||
type: 'Demo' | ||
}, { | ||
type: 'div', | ||
interpolate: function interpolate(_ref2) { | ||
var s = _ref2.stateTree; | ||
})); | ||
return s.get('demo').value + 'bbb'; | ||
stateTree.set('demo.value', 'aaa'); | ||
expect(stateTree.get('demo.value')).toBe('aaa'); | ||
expect(container.html()).toEqual('<div><div><div><div>aaa</div></div><div><div>aaabbb</div></div></div></div>'); | ||
}); | ||
test('use statePath in children', function () { | ||
var container = (0, _enzyme.mount)(_react2.default.createElement(_Render2.default, { | ||
stateTree: stateTree, | ||
appearance: appearance, | ||
components: { Demo: (0, _connect2.default)(DemoChildComponent, 'Demo') }, | ||
background: (0, _createBackground2.default)({ | ||
jobs: { | ||
interpolation: interpolationJob | ||
}, | ||
utilities: { | ||
stateTree: stateTreeUtility | ||
} | ||
}] | ||
} | ||
})); | ||
}, stateTree, appearance), | ||
config: { | ||
children: [{ | ||
bind: 'demo', | ||
type: 'Demo', | ||
children: [{ | ||
type: 'div', | ||
interpolate: function interpolate(_ref4) { | ||
var s = _ref4.stateTree, | ||
statePath = _ref4.statePath; | ||
stateTree.set('demo.value', 'aaa'); | ||
expect(stateTree.get('demo.value')).toBe('aaa'); | ||
expect(container.html()).toEqual('<div><div><div><div>aaa</div></div><div><div>aaabbb</div></div></div></div>'); | ||
return s.get(statePath).value + 'bbb'; | ||
} | ||
}] | ||
}] | ||
} | ||
})); | ||
stateTree.set('demo.value', 'aaa'); | ||
expect(stateTree.get('demo.value')).toBe('aaa'); | ||
expect(container.html()).toEqual('<div><div><div><div><div><div>aaabbb</div></div></div></div></div></div>'); | ||
}); | ||
}); |
@@ -33,5 +33,5 @@ 'use strict'; | ||
var _createConnect = require('../../createConnect'); | ||
var _connect = require('../../connect'); | ||
var _createConnect2 = _interopRequireDefault(_createConnect); | ||
var _connect2 = _interopRequireDefault(_connect); | ||
@@ -53,7 +53,5 @@ var _stateTree = require('../../background/utility/stateTree'); | ||
var appearance = null; | ||
var connect = null; | ||
beforeEach(function () { | ||
stateTree = (0, _applyStateTreeSubscriber2.default)(_createStateTree2.default)(); | ||
appearance = (0, _createAppearance2.default)(); | ||
connect = (0, _createConnect2.default)(); | ||
}); | ||
@@ -85,3 +83,3 @@ | ||
appearance: appearance, | ||
components: { Demo: connect(DemoComponent, 'Demo') }, | ||
components: { Demo: (0, _connect2.default)(DemoComponent, 'Demo') }, | ||
background: (0, _createBackground2.default)({ | ||
@@ -88,0 +86,0 @@ jobs: { |
@@ -41,5 +41,5 @@ 'use strict'; | ||
var _createConnect = require('../../createConnect'); | ||
var _connect = require('../../connect'); | ||
var _createConnect2 = _interopRequireDefault(_createConnect); | ||
var _connect2 = _interopRequireDefault(_connect); | ||
@@ -135,7 +135,5 @@ var _createBackground = require('../../createBackground'); | ||
var appearance = null; | ||
var connect = null; | ||
beforeEach(function () { | ||
stateTree = (0, _applyStateTreeSubscriber2.default)(_createStateTree2.default)({}); | ||
appearance = (0, _createAppearance2.default)(); | ||
connect = (0, _createConnect2.default)(); | ||
}); | ||
@@ -163,3 +161,3 @@ | ||
var Input = connect(DemoInput, 'Input'); | ||
var Input = (0, _connect2.default)(DemoInput, 'Input'); | ||
@@ -231,3 +229,3 @@ var container = (0, _enzyme.mount)(_react2.default.createElement(_Render2.default, { | ||
var Input = connect(DemoInput, 'Input'); | ||
var Input = (0, _connect2.default)(DemoInput, 'Input'); | ||
@@ -317,3 +315,3 @@ var container = (0, _enzyme.mount)(_react2.default.createElement(_Render2.default, { | ||
}; | ||
Input = connect(DemoInput, 'Input'); | ||
Input = (0, _connect2.default)(DemoInput, 'Input'); | ||
container = (0, _enzyme.mount)(_react2.default.createElement(_Render2.default, { | ||
@@ -442,3 +440,3 @@ stateTree: stateTreeWithInitial, | ||
var Input = connect(DemoInput, 'Input'); | ||
var Input = (0, _connect2.default)(DemoInput, 'Input'); | ||
@@ -531,3 +529,3 @@ var container = (0, _enzyme.mount)(_react2.default.createElement(_Render2.default, { | ||
var Input = connect(DemoInput, 'Input'); | ||
var Input = (0, _connect2.default)(DemoInput, 'Input'); | ||
@@ -581,3 +579,3 @@ var container = (0, _enzyme.mount)(_react2.default.createElement(_Render2.default, { | ||
var Input = connect(DemoInput, 'Input'); | ||
var Input = (0, _connect2.default)(DemoInput, 'Input'); | ||
@@ -641,3 +639,3 @@ var container = (0, _enzyme.mount)(_react2.default.createElement(_Render2.default, { | ||
var Input = connect(DemoInput, 'Input'); | ||
var Input = (0, _connect2.default)(DemoInput, 'Input'); | ||
var container = (0, _enzyme.mount)(_react2.default.createElement(_Render2.default, { | ||
@@ -688,3 +686,3 @@ stateTree: stateTree, | ||
var Input = connect(DemoInput, 'Input'); | ||
var Input = (0, _connect2.default)(DemoInput, 'Input'); | ||
@@ -691,0 +689,0 @@ var container = (0, _enzyme.mount)(_react2.default.createElement(_Render2.default, { |
@@ -29,5 +29,5 @@ 'use strict'; | ||
var _createConnect = require('../../createConnect'); | ||
var _connect = require('../../connect'); | ||
var _createConnect2 = _interopRequireDefault(_createConnect); | ||
var _connect2 = _interopRequireDefault(_connect); | ||
@@ -54,7 +54,5 @@ var _createBackground = require('../../createBackground'); | ||
var appearance = null; | ||
var connect = null; | ||
beforeEach(function () { | ||
stateTree = (0, _applyStateTreeSubscriber2.default)(_createStateTree2.default)(); | ||
appearance = (0, _createAppearance2.default)(); | ||
connect = (0, _createConnect2.default)(); | ||
}); | ||
@@ -86,3 +84,3 @@ | ||
appearance: appearance, | ||
components: { Demo: connect(DemoComponent, 'Demo') }, | ||
components: { Demo: (0, _connect2.default)(DemoComponent, 'Demo') }, | ||
config: { | ||
@@ -105,3 +103,3 @@ bind: 'demo', | ||
appearance: appearance, | ||
components: { Demo: connect(DemoComponent, 'Demo') }, | ||
components: { Demo: (0, _connect2.default)(DemoComponent, 'Demo') }, | ||
background: (0, _createBackground2.default)({ | ||
@@ -142,3 +140,3 @@ jobs: { | ||
appearance: appearance, | ||
components: { Demo: connect(DemoComponent, 'Demo') }, | ||
components: { Demo: (0, _connect2.default)(DemoComponent, 'Demo') }, | ||
background: (0, _createBackground2.default)({ | ||
@@ -145,0 +143,0 @@ jobs: { |
@@ -26,3 +26,3 @@ 'use strict'; | ||
function initialize(utilInstances, stateTree, appearance) { | ||
function initialize(utilInstances, _, appearance) { | ||
var idToInterpolate = {}; | ||
@@ -32,5 +32,8 @@ | ||
var children = _ref.children, | ||
interpolate = _ref.interpolate; | ||
interpolate = _ref.interpolate, | ||
getStatePath = _ref.getStatePath; | ||
idToInterpolate[id] = typeof interpolate === 'function' ? interpolate : createInterpolate(children, (0, _keys2.default)(utilInstances)); | ||
var fn = typeof interpolate === 'function' ? interpolate : createInterpolate(children, (0, _keys2.default)(utilInstances)); | ||
idToInterpolate[id] = { fn: fn, getStatePath: getStatePath }; | ||
} | ||
@@ -40,3 +43,5 @@ | ||
function run(id) { | ||
return idToInterpolate[id]((0, _extends3.default)({}, utilInstances)); | ||
return idToInterpolate[id].fn((0, _extends3.default)({}, utilInstances, { | ||
statePath: idToInterpolate[id].getStatePath() | ||
})); | ||
} | ||
@@ -43,0 +48,0 @@ |
@@ -12,2 +12,3 @@ 'use strict'; | ||
var primitiveComponent = exports.primitiveComponent = { | ||
a: DISPLAY_INLINE, | ||
br: DISPLAY_BLOCK, | ||
@@ -14,0 +15,0 @@ dd: DISPLAY_INLINE, |
@@ -28,3 +28,3 @@ 'use strict'; | ||
* createBackground 代码中做了三个重要的事情: | ||
* 1. 对外提供统一的 register 函数,这个函数是 createConnect 中对每个组件自动调用的。 | ||
* 1. 对外提供统一的 register 函数,这个函数是 connect 中对每个组件自动调用的。 | ||
* 在 register 函数中,再调用相关的 background 的 register。这样就建立了组件与 background 的链接。 | ||
@@ -31,0 +31,0 @@ * 在 validation 例子中,就是把用户在组件上填写的 validator register 到 validation 这个 background 中去。 |
@@ -260,4 +260,7 @@ 'use strict'; | ||
// 绑定 intercepter | ||
this.intercepters = (0, _util.mapValues)(defaultIntercepters, function (defaultIntercepter, name) { | ||
return (0, _util.inject)(intercepters[name] !== undefined ? intercepters[name] : defaultIntercepter, _this4.getInjectArg); | ||
/* eslint-disable no-nested-ternary */ | ||
this.intercepters = (0, _util.filter)((0, _util.mapValues)(defaultIntercepters, function (defaultIntercepter, name) { | ||
return intercepters[name] !== undefined ? (0, _util.inject)(intercepters[name], _this4.getInjectArg) : defaultIntercepter === undefined ? undefined : (0, _util.inject)(defaultIntercepter, _this4.getInjectArg); | ||
}), function (i) { | ||
return i !== undefined; | ||
}); | ||
@@ -279,4 +282,4 @@ } | ||
var nextState = defaultListener.apply(undefined, [_this5.getRenderArg(statePath)].concat(runtimeArgs)); | ||
if (nextState !== state) { | ||
_this5.context.stateTree.set(_this5.getResolvedStatePath(), nextState, _constant.REASON_DEFAULT_LISTENER); | ||
if (nextState !== undefined && nextState !== state) { | ||
_this5.context.stateTree.merge(_this5.getResolvedStatePath(), nextState, _constant.REASON_DEFAULT_LISTENER); | ||
} | ||
@@ -288,8 +291,4 @@ }; | ||
value: function getChildContext() { | ||
var _this6 = this; | ||
return { | ||
getStatePath: function getStatePath() { | ||
return _this6.getResolvedStatePath(); | ||
} | ||
getStatePath: this.getResolvedStatePath | ||
}; | ||
@@ -312,5 +311,7 @@ } | ||
key: 'componentWillReceiveProps', | ||
value: function componentWillReceiveProps() { | ||
value: function componentWillReceiveProps(nextProps) { | ||
// 不接受 config 动态变化 | ||
throw new Error('connected component received new props, statePath: ' + this.getResolvedStatePath()); | ||
/* eslint-disable no-console */ | ||
console.warn('connected component should never received new props, statePath: ' + this.getResolvedStatePath(), this.props, nextProps); | ||
/* eslint-enable no-console */ | ||
} | ||
@@ -369,9 +370,9 @@ }, { | ||
var _initialiseProps = function _initialiseProps() { | ||
var _this7 = this; | ||
var _this6 = this; | ||
this.getInjectArg = function () { | ||
// CAUTION 一定要在运行时再拿path,因为 path 可能会变 | ||
var currentStatePath = _this7.getResolvedStatePath(); | ||
var stateTree = _this7.context.stateTree; | ||
return (0, _extends3.default)({}, _this7.context.background.instances, { | ||
var currentStatePath = _this6.getResolvedStatePath(); | ||
var stateTree = _this6.context.stateTree; | ||
return (0, _extends3.default)({}, _this6.context.background.instances, { | ||
state: stateTree.get(currentStatePath), | ||
@@ -382,3 +383,3 @@ // 兼容以前的写法 | ||
statePath: new _common.StatePath(currentStatePath), | ||
rootStatePath: new _common.StatePath(_this7.getResolvedRootPath()) | ||
rootStatePath: new _common.StatePath(_this6.getResolvedRootPath()) | ||
}); | ||
@@ -390,9 +391,9 @@ }; | ||
return { | ||
state: _this7.context.stateTree.get(statePath || _this7.getResolvedStatePath()), | ||
props: _this7.props.props, | ||
children: _this7.props.children, | ||
listeners: _this7.listeners, | ||
intercepters: _this7.intercepters, | ||
context: _this7.context, | ||
instance: _this7.instance | ||
state: _this6.context.stateTree.get(statePath || _this6.getResolvedStatePath()), | ||
props: _this6.props.props, | ||
children: _this6.props.children, | ||
listeners: _this6.listeners, | ||
intercepters: _this6.intercepters, | ||
context: _this6.context, | ||
instance: _this6.instance | ||
}; | ||
@@ -402,4 +403,4 @@ }; | ||
this.getResolvedStatePath = function () { | ||
var reactContext = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _this7.context; | ||
var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _this7.props; | ||
var reactContext = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _this6.context; | ||
var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _this6.props; | ||
@@ -412,7 +413,7 @@ var _ref3 = reactContext || {}, | ||
return (0, _common.resolveStatePath)(getScopes(), _this7.bind, props.scopeIndex); | ||
return (0, _common.resolveStatePath)(getScopes(), _this6.bind, props.scopeIndex); | ||
}; | ||
this.getResolvedRootPath = function () { | ||
var _ref4 = _this7.context || {}, | ||
var _ref4 = _this6.context || {}, | ||
_ref4$getScopes = _ref4.getScopes, | ||
@@ -423,3 +424,3 @@ getScopes = _ref4$getScopes === undefined ? function () { | ||
return (0, _common.resolveStatePath)(getScopes(), '', _this7.props.scopeIndex); | ||
return (0, _common.resolveStatePath)(getScopes(), '', _this6.props.scopeIndex); | ||
}; | ||
@@ -429,9 +430,9 @@ | ||
// CAUTION 在这里判断是因为未来 React 的 shouldComponentUpdate 会失效 | ||
if (shouldComponentUpdate === undefined || shouldComponentUpdate(_this7.getRenderArg(), type, changes) !== false) { | ||
if (shouldComponentUpdate === undefined || shouldComponentUpdate(_this6.getRenderArg(), type, changes) !== false) { | ||
// CAUTION 不要把 version 记录到 state 上,我们要确保的是 render,所以记到 render 上 | ||
_this7.setState({ stateChange: _this7.state.stateChange++ }); | ||
_this6.setState({ stateChange: _this6.state.stateChange++ }); | ||
} | ||
// 新增的声明周期函数 | ||
if (type === _constant.CHANGE_STATETREE && typeof componentWillReceiveState === 'function') { | ||
componentWillReceiveState(_this7.getRenderArg(), changes); | ||
componentWillReceiveState(_this6.getRenderArg(), changes); | ||
} | ||
@@ -443,3 +444,2 @@ }; | ||
// TODO 考虑 Row.Col 的问题, identifier 没有 bind 的问题 | ||
(0, _assign2.default)(Wrapper, (0, _util.mapValues)(identifiers, createIdentifierComponent)); | ||
@@ -446,0 +446,0 @@ return Wrapper; |
@@ -45,5 +45,5 @@ 'use strict'; | ||
var generatePrimitiveId = (0, _util.createUniqueIdGenerator)('c'); | ||
function createPrimitiveWrapper(Tag, display) { | ||
var generatePrimitiveId = (0, _util.createUniqueIdGenerator)('c'); | ||
var wrappedRender = function wrappedRender(_ref) { | ||
@@ -64,3 +64,4 @@ var children = _ref.children, | ||
var background = _ref2.background, | ||
appearance = _ref2.appearance; | ||
appearance = _ref2.appearance, | ||
getStatePath = _ref2.getStatePath; | ||
(0, _classCallCheck3.default)(this, Primitive); | ||
@@ -70,2 +71,6 @@ | ||
_this.subscribe = function () { | ||
_this.setState({ version: _this.state.version++ }); | ||
}; | ||
_this.state = { | ||
@@ -76,3 +81,3 @@ version: 0 | ||
var _appearance$register = appearance.register(_this.id, config, _this.subscribe.bind(_this)), | ||
var _appearance$register = appearance.register(_this.id, config, _this.subscribe), | ||
unsubscribeAppearance = _appearance$register.cancel, | ||
@@ -84,3 +89,5 @@ hijack = _appearance$register.hijack; | ||
var _background$register = background.register(_this.id, config, {}), | ||
var _background$register = background.register(_this.id, (0, _extends3.default)({}, config, { | ||
getStatePath: getStatePath | ||
}), {}), | ||
cancel = _background$register.cancel; | ||
@@ -99,7 +106,2 @@ | ||
}, { | ||
key: 'subscribe', | ||
value: function subscribe() { | ||
this.setState({ version: this.state.version++ }); | ||
} | ||
}, { | ||
key: 'render', | ||
@@ -115,3 +117,3 @@ value: function render() { | ||
Primitive.contextTypes = { | ||
// 用于获取上面层级所有可用的 scope | ||
getStatePath: _propTypes2.default.func, | ||
background: _propTypes2.default.object.isRequired, | ||
@@ -118,0 +120,0 @@ appearance: _propTypes2.default.object.isRequired |
@@ -11,6 +11,2 @@ 'use strict'; | ||
var _keys = require('babel-runtime/core-js/object/keys'); | ||
var _keys2 = _interopRequireDefault(_keys); | ||
var _typeof2 = require('babel-runtime/helpers/typeof'); | ||
@@ -55,31 +51,2 @@ | ||
function createOriginContainer() { | ||
var originData = {}; | ||
return { | ||
insert: function insert(path, data) { | ||
if (originData[path] !== undefined) { | ||
// CAUTION 从这里开始组件的 statePath 就必须是唯一的了,所以页面上同一个 scope 下不能有相同的 bind | ||
throw new _errors.ErrorDuplicateOriginDataPath(path); | ||
} | ||
originData[path] = (0, _cloneDeep2.default)(data); | ||
}, | ||
get: function get(path, defaultValue) { | ||
var data = originData[path]; | ||
if (data === undefined) return defaultValue; | ||
return (typeof data === 'undefined' ? 'undefined' : (0, _typeof3.default)(data)) === 'object' ? (0, _cloneDeep2.default)(data) : data; | ||
}, | ||
remove: function remove(path) { | ||
delete originData[path]; | ||
}, | ||
has: function has(key) { | ||
return originData[key] !== undefined; | ||
}, | ||
keys: function keys() { | ||
return (0, _keys2.default)(originData); | ||
} | ||
}; | ||
} | ||
function createStateTree(initialStateTree) { | ||
@@ -86,0 +53,0 @@ var stateTree = (0, _cloneDeep2.default)(initialStateTree) || {}; |
@@ -81,3 +81,3 @@ 'use strict'; | ||
* | ||
* 阅读完 Render 代码后建议阅读 createConnect 代码。它主要负责从 context 上取数据给组件。 | ||
* 阅读完 Render 代码后建议阅读 connect 代码。它主要负责从 context 上取数据给组件。 | ||
*/ | ||
@@ -84,0 +84,0 @@ |
{ | ||
"name": "@cicada/render", | ||
"version": "1.0.0-alpha1", | ||
"version": "1.0.0-alpha10", | ||
"main": "./lib/index.js", | ||
@@ -12,12 +12,7 @@ "scripts": { | ||
"dependencies": { | ||
"@alipay/ajax": "^3.1.1", | ||
"deep-equal": "^1.0.1", | ||
"exist.js": "^0.3.0", | ||
"lodash": "^4.17.4", | ||
"modulex-url": "^1.0.8", | ||
"prop-types": "^15.5.10", | ||
"react": "^15.3.1", | ||
"react-dom": "^15.3.2", | ||
"select": "^1.1.0", | ||
"uuid": "^2.0.2" | ||
"react-dom": "^15.3.2" | ||
}, | ||
@@ -39,13 +34,2 @@ "babel": { | ||
} | ||
], | ||
[ | ||
"import", | ||
[ | ||
{ | ||
"libraryName": "antd" | ||
}, | ||
{ | ||
"libraryName": "antd-mobile" | ||
} | ||
] | ||
] | ||
@@ -76,3 +60,2 @@ ] | ||
"babel-loader": "^6.4.1", | ||
"babel-plugin-import": "^1.1.1", | ||
"babel-plugin-transform-builtin-extend": "^1.1.2", | ||
@@ -79,0 +62,0 @@ "babel-plugin-transform-runtime": "^6.9.0", |
329301
5.71%5
-50%15
-6.25%55
1.85%7865
4.77%5
-28.57%- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed