Skip to content

Instantly share code, notes, and snippets.

@ricsam
Last active April 25, 2019 09:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ricsam/b1c7fb6a69c42183b5b712fd86d448da to your computer and use it in GitHub Desktop.
Save ricsam/b1c7fb6a69c42183b5b712fd86d448da to your computer and use it in GitHub Desktop.
import hoist from 'hoist-non-react-statics';
import React from 'react';
const { Provider, Consumer } = React.createContext({});
export const PropsProvider = ({ props, children }) => {
return (
<Consumer>
{(providedProps) => {
const newProps = { ...providedProps, ...props };
return <Provider value={newProps}>{children}</Provider>;
}}
</Consumer>
);
};
export const withProps = (Component) => {
const WithProps = (ownProps) => {
return (
<Consumer>
{(providedProps) => {
const allProps = { ...providedProps, ...ownProps };
return <Component {...allProps} />;
}}
</Consumer>
);
};
hoist(WithProps, Component);
return WithProps;
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment