import { Box, Icon, Button, Scrollable } from '@rocket.chat/fuselage';
import { useToastMessageDispatch, useTranslation } from '@rocket.chat/ui-contexts';
import type { ComponentProps, ReactElement } from 'react';
import React, { useCallback } from 'react';
const defaultWrapperRenderer = (text: string): ReactElement => (
{text}
);
type TextCopyProps = {
text: string;
wrapper?: (text: string) => ReactElement;
} & ComponentProps;
const TextCopy = ({ text, wrapper = defaultWrapperRenderer, ...props }: TextCopyProps): ReactElement => {
const t = useTranslation();
const dispatchToastMessage = useToastMessageDispatch();
const onClick = useCallback(() => {
try {
navigator.clipboard.writeText(text);
dispatchToastMessage({ type: 'success', message: t('Copied') });
} catch (e) {
dispatchToastMessage({ type: 'error', message: e });
}
}, [dispatchToastMessage, t, text]);
return (
{wrapper(text)}
);
};
export default TextCopy;