2019-06-20 19:37:28 +07:00
|
|
|
import FileCopy from '@material-ui/icons/FileCopy';
|
|
|
|
import React from 'react';
|
2020-03-08 22:45:07 +07:00
|
|
|
import { useTranslation } from 'react-i18next';
|
2019-06-20 19:37:28 +07:00
|
|
|
|
|
|
|
import { copyToClipBoardUtility } from '../../utils/cli-utils';
|
2019-10-03 23:17:04 +07:00
|
|
|
import Tooltip from '../../muiComponents/Tooltip';
|
2019-06-20 19:37:28 +07:00
|
|
|
|
|
|
|
import { ClipBoardCopy, ClipBoardCopyText, CopyIcon } from './styles';
|
|
|
|
|
|
|
|
interface Props {
|
|
|
|
text: string;
|
|
|
|
children?: React.ReactNode;
|
|
|
|
}
|
|
|
|
|
2019-10-11 03:20:05 +07:00
|
|
|
const renderText = (text: string, children: React.ReactNode): JSX.Element => {
|
2019-06-20 19:37:28 +07:00
|
|
|
if (children) {
|
|
|
|
return <ClipBoardCopyText>{children}</ClipBoardCopyText>;
|
|
|
|
}
|
|
|
|
|
|
|
|
return <ClipBoardCopyText>{text}</ClipBoardCopyText>;
|
|
|
|
};
|
|
|
|
|
|
|
|
const CopyToClipBoard: React.FC<Props> = ({ text, children }) => {
|
2020-03-08 22:45:07 +07:00
|
|
|
const { t } = useTranslation();
|
2019-06-20 19:37:28 +07:00
|
|
|
return (
|
|
|
|
<ClipBoardCopy>
|
|
|
|
{renderText(text, children)}
|
2020-03-08 22:45:07 +07:00
|
|
|
<Tooltip disableFocusListener={true} title={t('copy-to-clipboard')}>
|
|
|
|
<CopyIcon onClick={copyToClipBoardUtility(text)}>
|
|
|
|
<FileCopy />
|
|
|
|
</CopyIcon>
|
|
|
|
</Tooltip>
|
2019-06-20 19:37:28 +07:00
|
|
|
</ClipBoardCopy>
|
|
|
|
);
|
|
|
|
};
|
|
|
|
|
|
|
|
export default CopyToClipBoard;
|