diff --git a/src/index.js b/src/index.js index 669120c..afa2611 100644 --- a/src/index.js +++ b/src/index.js @@ -9,7 +9,18 @@ const LOAD_STATE = { loaded: '__loaded__', }; -const ReactCodepen = props => { +const ReactCodepen = ({ + defaultTab = 'css,result', + height = 300, + preview = true, + editable = false, + themeId = 'dark', + version = 2, + loader, + user, + hash, + title, +}) => { const [loadState, setLoadState] = useState(LOAD_STATE.booting); const [error, setError] = useState(); const _isMounted = useRef(false); @@ -42,50 +53,40 @@ const ReactCodepen = props => { return () => (_isMounted.current = false); }, []); - const showLoader = - loadState === LOAD_STATE.loading && props.loader !== undefined; + const showLoader = loadState === LOAD_STATE.loading && loader !== undefined; const visibility = loadState === LOAD_STATE.loaded ? 'visible' : 'hidden'; - const penLink = `https://codepen.io/${props.user}/pen/${props.hash}/`; - const userProfileLink = `https://codepen.io/${props.user}`; + const penLink = `https://codepen.io/${user}/pen/${hash}/`; + const userProfileLink = `https://codepen.io/${user}`; const styles = { visibility }; return ( {showLoader && - React.createElement(props.loader, { + React.createElement(loader, { isLoading: loadState === LOAD_STATE.loading, error, })}

- See the Pen {props.title} - by {props.user} (@{props.user}) on{' '} + See the Pen {title} + by {user} (@{user}) on{' '} CodePen.

); }; -ReactCodepen.defaultProps = { - defaultTab: 'css,result', - height: 300, - preview: true, - editable: false, - themeId: 'dark', - version: 2, -}; - ReactCodepen.propTypes = { defaultTab: PropTypes.string, hash: PropTypes.string.isRequired,