import { Box, Link } from '@mui/material'; import { always, ifElse, isNil } from 'ramda'; import type { ReactElement } from 'react'; import PersistentTooltip from './PersistentTooltip'; interface ContentProps { description: ReactElement | null; examples: ReactElement | null; labelExamples: ReactElement | null; tips: ReactElement | null; } const RegexpHelpTooltipContent = ({ description, labelExamples, examples, tips }: ContentProps): JSX.Element => ( {description} {labelExamples} {examples} {tips} ); interface TooltipProps { description?: ReactElement; examples?: Array; labelExamples?: string; labelGetHelp?: string; labelSearchHelp: string; labelTips?: string; labelUrlTip?: string; urlTip?: string; } const RegexpHelpTooltip = ({ description, labelSearchHelp, labelExamples, examples, labelTips, labelGetHelp, urlTip, labelUrlTip }: TooltipProps): JSX.Element => { const displayElement = ( element: ReactElement ): ((prop: unknown) => ReactElement | null) => ifElse(isNil, always(null), always(element)); const content = ( {description})(description)} examples={displayElement()( examples )} labelExamples={displayElement(

{labelExamples}

)(labelExamples)} tips={displayElement( {`${labelTips}: `} {`${labelGetHelp} `} {labelUrlTip} )(labelTips && labelGetHelp && urlTip && labelUrlTip)} /> ); return ( {content} ); }; export default RegexpHelpTooltip;