From d7b99282bad7fd6433030b3a1e6b1d31917cd72b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Ochman?= Date: Fri, 9 Nov 2018 23:17:44 +0100 Subject: [PATCH] Fix context not passed through from primary renderer --- CHANGELOG.md | 3 +++ src/Stage.js | 4 ++-- src/render.js | 4 ++-- test/Stage.test.js | 14 ++++++++++++-- 4 files changed, 19 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d6faa90..b59ac16 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,9 @@ and this project adheres to [Semantic Versioning](http://semver.org/). ## [Unreleased] +### Fixed +- Fixed context not passed through from primary renderer (`react-dom`) into `react-pixi-fiber` + ## [0.6.0] - 2018-11-10 diff --git a/src/Stage.js b/src/Stage.js index 9b42dcd..eabe750 100644 --- a/src/Stage.js +++ b/src/Stage.js @@ -70,7 +70,7 @@ class Stage extends React.Component { const stageProps = getDisplayObjectProps(this.props); applyProps(this._app.stage, {}, stageProps); - render({children}, this._app.stage); + render({children}, this._app.stage, undefined, this); } componentDidUpdate(prevProps, prevState) { @@ -90,7 +90,7 @@ class Stage extends React.Component { this._app.renderer.resize(currentWidth, currentHeight); } - render({children}, this._app.stage); + render({children}, this._app.stage, undefined, this); } componentWillUnmount() { diff --git a/src/render.js b/src/render.js index ef8ff51..f6ed55a 100644 --- a/src/render.js +++ b/src/render.js @@ -8,14 +8,14 @@ export const roots = new Map(); * element should be any instance of PIXI DisplayObject * containerTag should be an instance of PIXI root Container (i.e. the Stage) */ -export function render(element, containerTag, callback) { +export function render(element, containerTag, callback, parentComponent) { let root = roots.get(containerTag); if (!root) { root = ReactPixiFiber.createContainer(containerTag); roots.set(containerTag, root); } - ReactPixiFiber.updateContainer(element, root, undefined, callback); + ReactPixiFiber.updateContainer(element, root, parentComponent, callback); ReactPixiFiber.injectIntoDevTools({ findFiberByHostInstance: ReactPixiFiber.findFiberByHostInstance, diff --git a/test/Stage.test.js b/test/Stage.test.js index bed4ccb..847eb7f 100644 --- a/test/Stage.test.js +++ b/test/Stage.test.js @@ -176,7 +176,12 @@ describe("Stage", () => { const stage = instance._app.stage; expect(render).toHaveBeenCalledTimes(1); - expect(render).toHaveBeenCalledWith({children}, stage); + expect(render).toHaveBeenCalledWith( + {children}, + stage, + undefined, + instance + ); }); it("calls render on componentDidUpdate", () => { @@ -190,7 +195,12 @@ describe("Stage", () => { element.update({children2}); expect(render).toHaveBeenCalledTimes(1); - expect(render).toHaveBeenCalledWith({children2}, stage); + expect(render).toHaveBeenCalledWith( + {children2}, + stage, + undefined, + instance + ); }); it("calls unmount on componentWillUnmount", () => {