| import React from 'react' | |
| import cx from 'classnames' | |
| import { SupportPortalVaIframe, SupportPortalVaIframeProps } from './SupportPortalVaIframe' | |
| import styles from './ArticleInlineLayout.module.scss' | |
| type Props = { | |
| breadcrumbs?: React.ReactNode | |
| intro?: React.ReactNode | |
| introCallOuts?: React.ReactNode | |
| topper?: React.ReactNode | |
| toc?: React.ReactNode | |
| children?: React.ReactNode | |
| className?: string | |
| supportPortalVaIframeProps?: SupportPortalVaIframeProps | |
| } | |
| export const ArticleInlineLayout = ({ | |
| breadcrumbs, | |
| intro, | |
| introCallOuts, | |
| topper, | |
| toc, | |
| children, | |
| className, | |
| supportPortalVaIframeProps, | |
| }: Props) => { | |
| return ( | |
| <div className={cx(styles.containerBox, className)}> | |
| {breadcrumbs && ( | |
| <div | |
| style={{ gridArea: 'breadcrumbs' }} | |
| className={cx('d-none d-xxl-block mt-3 mr-auto width-full')} | |
| > | |
| {breadcrumbs} | |
| </div> | |
| )} | |
| <div className={cx(styles.contentBox)}> | |
| {topper && <div style={{ gridArea: 'topper' }}>{topper}</div>} | |
| {intro && ( | |
| <div id="article-intro" style={{ gridArea: 'intro' }} className="f4"> | |
| {intro} | |
| </div> | |
| )} | |
| {introCallOuts && ( | |
| <div style={{ gridArea: 'intro' }} className="f4 mb-4"> | |
| {introCallOuts} | |
| </div> | |
| )} | |
| {toc && ( | |
| <div | |
| data-container="toc" | |
| style={{ gridArea: 'sidebar', alignSelf: 'flex-start' }} | |
| className={cx(styles.sidebarBox, 'border-bottom border-lg-0 pb-4 mb-5 pb-xl-0 mb-xl-0')} | |
| > | |
| {toc} | |
| </div> | |
| )} | |
| <div | |
| data-container="article" | |
| style={{ gridArea: 'content' }} | |
| data-search="article-body" | |
| className={cx(styles.articleContainer, className)} | |
| > | |
| {supportPortalVaIframeProps && | |
| supportPortalVaIframeProps.supportPortalUrl && | |
| supportPortalVaIframeProps.vaFlowUrlParameter && ( | |
| <SupportPortalVaIframe supportPortalVaIframeProps={supportPortalVaIframeProps} /> | |
| )} | |
| {children} | |
| </div> | |
| </div> | |
| </div> | |
| ) | |
| } | |