From 6fc9982c24cccb0bd53292e25601ac42ba02a568 Mon Sep 17 00:00:00 2001 From: Paul Henschel Date: Wed, 20 Feb 2019 16:14:56 -0500 Subject: [PATCH 1/2] share code between hooks and classes --- src/classes.js | 23 +++++++++++++++++++++++ src/targets/konva/index.js | 4 ++++ src/targets/native/index.js | 4 ++++ src/targets/universal/index.js | 4 ++++ src/targets/web/index.js | 4 ++++ 5 files changed, 39 insertions(+) create mode 100644 src/classes.js diff --git a/src/classes.js b/src/classes.js new file mode 100644 index 0000000000..05ee3f462a --- /dev/null +++ b/src/classes.js @@ -0,0 +1,23 @@ +import React from 'react' +import { useSpring } from './useSpring' +import { useTrail } from './useTrail' +import { useTransition } from './useTransition' +import { is } from './shared/helpers' + +export function Spring({ children, ...props }) { + const spring = useSpring(props) + return children(spring) +} + +export function Trail({ items, children, ...props }) { + const trails = useTrail(items.length, props) + return items.map((item, index) => children(item)(trails[index])) +} + +export function Transition({ items, keys = null, children, ...props }) { + const transitions = useTransition(items, keys, props) + return transitions.map(({ item, key, props, slot }, index) => { + const el = children(item, slot, index)(props) + return + }) +} diff --git a/src/targets/konva/index.js b/src/targets/konva/index.js index 7623188aaa..543683c157 100644 --- a/src/targets/konva/index.js +++ b/src/targets/konva/index.js @@ -10,6 +10,7 @@ import { useTrail } from '../../useTrail' import { useTransition } from '../../useTransition' import { useChain } from '../../useChain' import { useSprings } from '../../useSprings' +import { Spring, Trail, Transition } from '../../classes' Globals.injectDefaultElement('Group') Globals.injectInterpolation(createInterpolation) @@ -66,4 +67,7 @@ export { useTransition, useChain, useSprings, + Spring, + Trail, + Transition, } diff --git a/src/targets/native/index.js b/src/targets/native/index.js index b0d7673c86..e85461cee3 100644 --- a/src/targets/native/index.js +++ b/src/targets/native/index.js @@ -13,6 +13,7 @@ import { useTrail } from '../../useTrail' import { useTransition } from '../../useTransition' import { useChain } from '../../useChain' import { useSprings } from '../../useSprings' +import { Spring, Trail, Transition } from '../../classes' Globals.injectDefaultElement(View) Globals.injectInterpolation(createInterpolation) @@ -43,4 +44,7 @@ export { useTransition, useChain, useSprings, + Spring, + Trail, + Transition, } diff --git a/src/targets/universal/index.js b/src/targets/universal/index.js index a009e58815..5a633ab1b0 100644 --- a/src/targets/universal/index.js +++ b/src/targets/universal/index.js @@ -8,6 +8,7 @@ import { useTrail } from '../../useTrail' import { useTransition } from '../../useTransition' import { useChain } from '../../useChain' import { useSprings } from '../../useSprings' +import { Spring, Trail, Transition } from '../../classes' // Problem: https://github.com/animatedjs/animated/pull/102 // Solution: https://stackoverflow.com/questions/638565/parsing-scientific-notation-sensibly/658662 @@ -44,4 +45,7 @@ export { useTransition, useChain, useSprings, + Spring, + Trail, + Transition, } diff --git a/src/targets/web/index.js b/src/targets/web/index.js index 671f49fee8..3c7dfa5480 100644 --- a/src/targets/web/index.js +++ b/src/targets/web/index.js @@ -8,6 +8,7 @@ import { useTrail } from '../../useTrail' import { useTransition } from '../../useTransition' import { useChain } from '../../useChain' import { useSprings } from '../../useSprings' +import { Spring, Trail, Transition } from '../../classes' const domElements = [ 'a', @@ -162,4 +163,7 @@ export { useTransition, useChain, useSprings, + Spring, + Trail, + Transition, } From c7e924b0b39d5f6fb3274f3e4b529852db86f5ff Mon Sep 17 00:00:00 2001 From: Paul Henschel Date: Wed, 20 Feb 2019 16:23:06 -0500 Subject: [PATCH 2/2] web/globals missing --- src/targets/konva/index.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/targets/konva/index.ts b/src/targets/konva/index.ts index c643a05e29..e8de484e87 100644 --- a/src/targets/konva/index.ts +++ b/src/targets/konva/index.ts @@ -14,6 +14,7 @@ import { useSprings } from '../../useSprings' import { useTrail } from '../../useTrail' import { useTransition } from '../../useTransition' import { Spring, Trail, Transition } from '../../classes' +import './globals' Globals.injectDefaultElement('Group') Globals.injectInterpolation(createInterpolation)