From ec6dae583531bead90d50244f8018a2fe302be48 Mon Sep 17 00:00:00 2001 From: Tim Weise Date: Sun, 22 Mar 2020 21:45:38 +0100 Subject: [PATCH 1/3] replace controller prop passing with context api --- src/Controller.js | 18 +++++++----------- src/Scene.js | 13 +++++++++++-- 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/src/Controller.js b/src/Controller.js index 5a37f4a..e44c7b4 100644 --- a/src/Controller.js +++ b/src/Controller.js @@ -12,9 +12,7 @@ export type ControllerProps = { } -export type ControllerState = { - controller: ?any, -} +const ControllerContext = React.createContext(null); class Controller extends React.Component { controller: any; @@ -42,14 +40,12 @@ class Controller extends React.Component { return children; } - return React.Children.map(children, (child) => { - if (child.type.displayName !== 'Scene') { - return child; - } - const props = {...child.props, controller}; - return ; - }); + return ( + + {children} + + ); } } -export { Controller }; +export { Controller, ControllerContext }; diff --git a/src/Scene.js b/src/Scene.js index b5418bd..0b2f134 100644 --- a/src/Scene.js +++ b/src/Scene.js @@ -1,5 +1,6 @@ // @flow import { default as React } from 'react'; +import { ControllerContext } from './Controller'; import ScrollMagic from './lib/scrollmagic'; import debugAddIndicators from './lib/debug.addIndicators.js'; @@ -228,7 +229,7 @@ class SceneBase extends React.PureComponent { } } -class Scene extends React.PureComponent { +class SceneWrapper extends React.PureComponent { static displayName = 'Scene'; render() { @@ -246,4 +247,12 @@ class Scene extends React.PureComponent { } } -export { Scene }; +export const Scene = ({ children, ...props }) => ( + + {controller => ( + + {children} + + )} + +); \ No newline at end of file From d93ca7b2c0485b808d5a7bc6a7af789267cc3217 Mon Sep 17 00:00:00 2001 From: Tim Weise Date: Sun, 22 Mar 2020 21:51:52 +0100 Subject: [PATCH 2/3] add lost ControllerState type --- src/Controller.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/Controller.js b/src/Controller.js index e44c7b4..ba784ed 100644 --- a/src/Controller.js +++ b/src/Controller.js @@ -12,6 +12,10 @@ export type ControllerProps = { } +export type ControllerState = { + controller: ?any +} + const ControllerContext = React.createContext(null); class Controller extends React.Component { From 21051b860ff471c661dd824d61c2cec69f5b3589 Mon Sep 17 00:00:00 2001 From: Tim Weise Date: Sun, 22 Mar 2020 21:52:53 +0100 Subject: [PATCH 3/3] adapt comma syntax --- src/Controller.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Controller.js b/src/Controller.js index ba784ed..cdb29df 100644 --- a/src/Controller.js +++ b/src/Controller.js @@ -13,7 +13,7 @@ export type ControllerProps = { } export type ControllerState = { - controller: ?any + controller: ?any, } const ControllerContext = React.createContext(null);