Skip to content

Instantly share code, notes, and snippets.

@Jahans3
Last active January 25, 2018 02:09
Show Gist options
  • Save Jahans3/3990f8af5c89743829ebe7d702ec7a19 to your computer and use it in GitHub Desktop.
Save Jahans3/3990f8af5c89743829ebe7d702ec7a19 to your computer and use it in GitHub Desktop.
// WithWrapper.js
const withWrapper = (Component, name) => ({ wrapper, ...props }) => {
if (wrapper) {
return (
<div className={`${name}_wrapper`}>
<Component {...props} />
</div>
)
}
return <Component {...props} />
}
// Alert.js
import withWrapper from './withWrapper'
const name = 'alert'
const Alert = withWrapper(({ success, bar, wrapper, children }) => {
let CSSClass = name
if (success) CSSClass = CSSClass + '-success'
if (bar) CSSClass = CSSClass + '-bar'
return (
<div className={CSSClass}>{children}</div>
)
}, name)
// SomeComponent.js
<Alert wrapper>
<Alert success bar />
<Alert success bar />
</Alert>
<Alert success bar />
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment