glass-app-manager
Version:
Informatica's Glass Framework CLI for bootstrapping
42 lines (36 loc) • 1.2 kB
JavaScript
//@flow
import * as React from "react";
type Props = {
breadcrumbs: Array<React.Node>,
buttonGroup?: React.Node,
children: React.Node,
};
const renderPageTitle = (
breadcrumbs: $PropertyType<Props, "breadcrumbs">,
buttonGroup: $PropertyType<Props, "buttonGroup">
) => {
return (
<header className="shell__page__title">
<ul className="shell__page__title__breadcrumbs">
{breadcrumbs.map((breadcrumb, index) => (
<li key={index} className="shell__page__title__breadcrumbs__breadcrumb">
{breadcrumb}
</li>
))}
</ul>
{buttonGroup ? <span className="button-group">{buttonGroup}</span> : null}
</header>
);
};
const Page = (props: Props) => {
const { breadcrumbs, buttonGroup, children, ...rest } = props;
return (
<React.Fragment>
{breadcrumbs ? renderPageTitle(breadcrumbs, buttonGroup) : null}
<div className="shell__page__content" {...rest}>
{children}
</div>
</React.Fragment>
);
};
export default Page;