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?.map((example) => example)}
)(
examples
)}
labelExamples={displayElement({labelExamples}
)(labelExamples)}
tips={displayElement(
{`${labelTips}: `}
{`${labelGetHelp} `}
{labelUrlTip}
)(labelTips && labelGetHelp && urlTip && labelUrlTip)}
/>
);
return (
{content}
);
};
export default RegexpHelpTooltip;