From d834d6bc742b0d817e6c629f364ee8e351c3cffa Mon Sep 17 00:00:00 2001 From: Paul Rosenzweig <paulrosenzweig@users.noreply.github.com> Date: Tue, 25 Jun 2019 13:30:36 -0400 Subject: [PATCH] allow LoadingAndErrorWrapper to be empty (#10250) --- .../src/metabase/components/LoadingAndErrorWrapper.jsx | 7 ++++++- .../components/LoadingAndErrorWrapper.unit.spec.js | 4 ++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/frontend/src/metabase/components/LoadingAndErrorWrapper.jsx b/frontend/src/metabase/components/LoadingAndErrorWrapper.jsx index 23c55716cc3..b2f90f8dfa9 100644 --- a/frontend/src/metabase/components/LoadingAndErrorWrapper.jsx +++ b/frontend/src/metabase/components/LoadingAndErrorWrapper.jsx @@ -109,7 +109,12 @@ export default class LoadingAndErrorWrapper extends Component { ); if (noWrapper && !error && !loading) { - return React.Children.only(this.getChildren()); + const children = this.getChildren(); + // special case for loading wrapper with null/undefined child + if (children == null) { + return null; + } + return React.Children.only(children); } return ( <div className={this.props.className} style={this.props.style}> diff --git a/frontend/test/metabase/components/LoadingAndErrorWrapper.unit.spec.js b/frontend/test/metabase/components/LoadingAndErrorWrapper.unit.spec.js index f5b38991500..ada32475f46 100644 --- a/frontend/test/metabase/components/LoadingAndErrorWrapper.unit.spec.js +++ b/frontend/test/metabase/components/LoadingAndErrorWrapper.unit.spec.js @@ -22,6 +22,10 @@ describe("LoadingAndErrorWrapper", () => { expect(wrapper.find(Child).length).toEqual(1); }); + it("shouldn't fail if loaded with null children and no wrapper", () => { + mount(<LoadingAndErrorWrapper loading={false} noWrapper />); + }); + it("should display a given scene during loading", () => { const Scene = () => <div>Fun load animation</div>; -- GitLab