Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | 1x 1x 1x 1x | import React, { useState, useEffect } from "react"; import type Breadcrumbs from "src/typings/breadcrumbs"; import { createList } from "src/components/breadcrumbs/breadcrumb-item"; /** @private */ interface Props extends React.HTMLAttributes<"div"> { breadcrumbs?: Breadcrumbs; } /** @private */ const empty: Breadcrumbs = Object.create(null); export default function Page({ children, className = "", breadcrumbs = empty, }: Props): JSX.Element { const [ breadcrumbItems, setBreadcrumbItems ] = useState<JSX.Element[]>([]); useEffect(() => { setBreadcrumbItems(createList(breadcrumbs)); }, [ breadcrumbs, setBreadcrumbItems ]); return ( <> <section className="d-flex flex-column h-100"> {breadcrumbItems.length > 0 && ( <nav className="navbar navbar-light bg-light flex-shrink-0 justify-content-start"> {breadcrumbItems} </nav> )} <div className="container-fluid flex-grow-1 d-flex"> <div className={"container flex-fill d-flex flex-column " + className}> {children} </div> </div> </section> </> ); } |