diff --git a/packages/client/src/state/stateBinding.js b/packages/client/src/state/stateBinding.js index 57e9b82c92..8a055a8a62 100644 --- a/packages/client/src/state/stateBinding.js +++ b/packages/client/src/state/stateBinding.js @@ -24,7 +24,6 @@ export const setupBinding = (store, rootProps, coreApi, context, rootPath) => { const boundProps = []; const contextBoundProps = []; const componentEventHandlers = []; - const boundArrays = []; for(let propName in props) { @@ -76,21 +75,10 @@ export const setupBinding = (store, rootProps, coreApi, context, rootPath) => { } initialProps[propName] = doNothing; - } else if(Array.isArray(val)) { - const arrayOfBindings = []; - for(let element of val){ - arrayOfBindings.push(getBindings(element, {...element})); - } - - boundArrays.push({ - arrayOfBindings, - propName - }); - } - + } } - return {contextBoundProps, boundProps, componentEventHandlers, boundArrays, initialProps}; + return {contextBoundProps, boundProps, componentEventHandlers, initialProps}; } @@ -98,8 +86,7 @@ export const setupBinding = (store, rootProps, coreApi, context, rootPath) => { const bind = (rootBindings) => (component) => { if(rootBindings.boundProps.length === 0 - && rootBindings.componentEventHandlers.length === 0 - && rootBindings.boundArrays.length === 0) return; + && rootBindings.componentEventHandlers.length === 0) return; const handlerTypes = eventHandlers(store, coreApi, rootPath); @@ -108,7 +95,7 @@ export const setupBinding = (store, rootProps, coreApi, context, rootPath) => { const getPropsFromBindings = (s, bindings) => { - const {boundProps, componentEventHandlers, boundArrays} = bindings; + const {boundProps, componentEventHandlers} = bindings; const newProps = {...bindings.initialProps}; for(let boundProp of boundProps) { @@ -159,18 +146,6 @@ export const setupBinding = (store, rootProps, coreApi, context, rootPath) => { } - for(let boundArray of boundArrays) { - let index = 0; - if(!newProps[boundArray.propName]) - newProps[boundArray.propName] = []; - for(let bindings of boundArray.arrayOfBindings){ - newProps[boundArray.propName][index] = getPropsFromBindings( - s, - bindings); - index++; - } - } - return newProps; } @@ -189,7 +164,6 @@ export const setupBinding = (store, rootProps, coreApi, context, rootPath) => { initialProps:rootInitialProps, bind:bind(bindings), boundProps:bindings.boundProps, - boundArrays: bindings.boundArrays, contextBoundProps: bindings.contextBoundProps }; diff --git a/packages/client/tests/stateBinding.spec.js b/packages/client/tests/stateBinding.spec.js index f34be14419..b5f33a9fd6 100644 --- a/packages/client/tests/stateBinding.spec.js +++ b/packages/client/tests/stateBinding.spec.js @@ -74,59 +74,6 @@ describe("setupBinding", () => { }); - it("should update bound array props when updated ", () => { - - const {component, store, props} = testSetup(); - - const {bind} = testSetupBinding(store, props, component); - bind(component); - - store.update(s => { - s.FirstName = "Bobby"; - s.LastName = "Thedog"; - s.Customer = { - Name: "ACME inc", - Address: "" - }; - s.addressToSet = "123 Main Street"; - s.ArrayVal1 = "item 1 - version 1"; - s.ArrayVal2 = "item 2 - version 1"; - s.ArrayVal3 = "inner array item"; - return s; - }); - - expect(component.props.arrayWithInnerBinding[0].innerBound).toBe("item 1 - version 1"); - expect(component.props.arrayWithInnerBinding[1].innerBound).toBe("item 2 - version 1"); - expect(component.props.arrayWithInnerBinding[0].innerUnbound).toBe("not bound 1"); - expect(component.props.arrayWithInnerBinding[1].innerUnbound).toBe("not bound 2"); - - }); - - it("should update bound nested (2nd level) array props when updated ", () => { - - const {component, store, props} = testSetup(); - - const {bind} = testSetupBinding(store, props, component); - bind(component); - - store.update(s => { - s.FirstName = "Bobby"; - s.LastName = "Thedog"; - s.Customer = { - Name: "ACME inc", - Address: "" - }; - s.addressToSet = "123 Main Street"; - s.ArrayVal1 = "item 1 - version 1"; - s.ArrayVal2 = "item 2 - version 1"; - s.ArrayVal3 = "inner array item"; - return s; - }); - - expect(component.props.arrayWithInnerBinding[2].innerArray[0].innerInnerBound).toBe("inner array item"); - - }); - it("should update event handlers on state change", () => { const {component, store, props} = testSetup(); @@ -235,23 +182,6 @@ const testSetup = () => { path: "Customer.Address", value: binding("addressOverride", "", "event") }) - ], - arrayWithInnerBinding: [ - { - innerBound: binding("ArrayVal1"), - innerUnbound: "not bound 1" - }, - { - innerBound: binding("ArrayVal2"), - innerUnbound: "not bound 2" - }, - { - innerArray: [ - { - innerInnerBound: binding("ArrayVal3") - } - ] - } ] }