From 9ca5cc222e7b2990422234f1204872ef212f488a Mon Sep 17 00:00:00 2001 From: Michael Hutchings Date: Sun, 6 Jun 2021 13:26:49 +0100 Subject: [PATCH] fix: update all values of animated array (#1430) --- packages/animated/src/AnimatedArray.ts | 2 +- targets/web/src/animated.test.tsx | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/packages/animated/src/AnimatedArray.ts b/packages/animated/src/AnimatedArray.ts index ef96877118..90aa945cc5 100644 --- a/packages/animated/src/AnimatedArray.ts +++ b/packages/animated/src/AnimatedArray.ts @@ -28,7 +28,7 @@ export class AnimatedArray< const payload = this.getPayload() // Reuse the payload when lengths are equal. if (source.length == payload.length) { - return payload.some((node, i) => node.setValue(source[i])) + return payload.map((node, i) => node.setValue(source[i])).some(Boolean) } // Remake the payload when length changes. super.setValue(source.map(makeAnimated)) diff --git a/targets/web/src/animated.test.tsx b/targets/web/src/animated.test.tsx index d84896060a..0fbe4cd0c3 100644 --- a/targets/web/src/animated.test.tsx +++ b/targets/web/src/animated.test.tsx @@ -139,6 +139,17 @@ describe('animated component', () => { 'scale(2) translate(10px,20px) translate3d(30px,40px,50px)' ) }) + it('updates all values of Animated arrays', () => { + const translate3d = spring([10, 20, 30] as const) + const { queryByTestId } = render( + + ) + const wrapper: any = queryByTestId('wrapper')! + expect(wrapper.style.transform).toBe('translate3d(10px,20px,30px)') + translate3d.set([11, 21, 31] as const) + mockRaf.step() + expect(wrapper.style.transform).toBe('translate3d(11px,21px,31px)') + }) it('sets default units to unit-less values passed as transform functions', () => { const { queryByTestId } = render(