react-facebook-next
Version:
Facebook components like a Login button, Like, Share, Comments or Embedded Post
78 lines (73 loc) • 1.7 kB
JSX
import React from 'react';
import PropTypes from 'prop-types';
import Parser from './Parser';
import getCurrentHref from './utils/getCurrentHref';
export default function Page(props) {
const {
className,
style,
href = getCurrentHref(),
tabs,
hideCover,
width,
height,
showFacepile,
hideCTA,
smallHeader,
adaptContainerWidth,
children,
onParse,
} = props;
return (
<Parser className={className} onParse={onParse}>
<div
className="fb-page"
style={style}
data-tabs={tabs}
data-hide-cover={hideCover}
data-show-facepile={showFacepile}
data-hide-cta={hideCTA}
data-href={href}
data-small-header={smallHeader}
data-adapt-container-width={adaptContainerWidth}
data-height={height}
data-width={width}
>
{children}
</div>
</Parser>
);
}
Page.propTypes = {
className: PropTypes.string,
href: PropTypes.string.isRequired,
tabs: PropTypes.string,
hideCover: PropTypes.bool,
height: PropTypes.oneOfType([
PropTypes.number.isRequired,
PropTypes.string.isRequired,
]),
width: PropTypes.oneOfType([
PropTypes.number.isRequired,
PropTypes.string.isRequired,
]),
showFacepile: PropTypes.bool,
hideCTA: PropTypes.bool,
smallHeader: PropTypes.bool,
adaptContainerWidth: PropTypes.bool,
children: PropTypes.node,
onParse: PropTypes.func,
};
Page.defaultProps = {
width: 340,
height: 500,
tabs: 'timeline',
hideCover: false,
showFacepile: true,
hideCTA: false,
smallHeader: false,
adaptContainerWidth: true,
children: undefined,
className: undefined,
onParse: undefined,
};