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 44 45 46 47 48 49 50 51 52 | 82x 82x 82x 82x 82x 82x 82x 82x 1x 1x 1x 1x 1x 1x 82x | import React, { useCallback, FunctionComponent, ReactNode } from 'react';
import { preventDefault } from '../../common/dom';
import { TranslatedString } from '../../locale';
import { Button, ButtonSize } from '../button';
import Modal from './Modal';
import './ModalLink.scss';
import ModalTrigger, { ModalTriggerModalProps } from './ModalTrigger';
export interface ModalLinkProps {
header: ReactNode;
body: ReactNode;
}
const ModalLink: FunctionComponent<ModalLinkProps> = ({
children,
body,
header,
}) => {
const renderModal = useCallback((props: ModalTriggerModalProps) => (
<Modal
{ ...props }
additionalBodyClassName="modal--withText"
footer={ (
<Button
onClick={ props.onRequestClose }
size={ ButtonSize.Small }
>
<TranslatedString id="common.ok_action" />
</Button>
) }
header={ header }
shouldShowCloseButton={ true }
>
{ body }
</Modal>
), [header, body]);
return (
<ModalTrigger modal={ renderModal }>
{ ({ onClick }) => (
<a onClick={ preventDefault(onClick) }>
{ children }
</a>
) }
</ModalTrigger>
);
};
export default ModalLink;
|