Skip to content

Instantly share code, notes, and snippets.

@stolinski
Created April 23, 2019 17:40
Show Gist options
  • Save stolinski/2d9545e19dd67bda64143cb1aae04ac0 to your computer and use it in GitHub Desktop.
Save stolinski/2d9545e19dd67bda64143cb1aae04ac0 to your computer and use it in GitHub Desktop.

Revisions

  1. stolinski created this gist Apr 23, 2019.
    22 changes: 22 additions & 0 deletions providerCompose.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,22 @@

    function ProviderComposer({ contexts, children }) {
    return contexts.reduceRight(
    (kids, parent) =>
    React.cloneElement(parent, {
    children: kids,
    }),
    children
    );
    }

    function ContextProvider({ children }) {
    return (
    <ProviderComposer
    contexts={[<CheckoutProvider />, <LoginProvider />, <AlertProvider />]}
    >
    {children}
    </ProviderComposer>
    );
    }

    export { ContextProvider };