mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2025-05-14 07:04:45 -04:00
32 lines
1,009 B
TypeScript
32 lines
1,009 B
TypeScript
/*
|
|
SPDX-FileCopyrightText: 2020 The HedgeDoc developers (see AUTHORS file)
|
|
|
|
SPDX-License-Identifier: AGPL-3.0-only
|
|
*/
|
|
|
|
import React, { Fragment, useRef } from 'react'
|
|
import { Button } from 'react-bootstrap'
|
|
import { Variant } from 'react-bootstrap/types'
|
|
import { useTranslation } from 'react-i18next'
|
|
import { ForkAwesomeIcon } from '../../fork-awesome/fork-awesome-icon'
|
|
import { CopyOverlay } from '../copy-overlay'
|
|
|
|
export interface CopyToClipboardButtonProps {
|
|
content: string
|
|
size?: 'sm' | 'lg'
|
|
variant?: Variant
|
|
}
|
|
|
|
export const CopyToClipboardButton: React.FC<CopyToClipboardButtonProps> = ({ content, size = 'sm', variant = 'dark' }) => {
|
|
const { t } = useTranslation()
|
|
const button = useRef<HTMLButtonElement>(null)
|
|
|
|
return (
|
|
<Fragment>
|
|
<Button ref={button} size={size} variant={variant} title={t('renderer.highlightCode.copyCode')}>
|
|
<ForkAwesomeIcon icon='files-o'/>
|
|
</Button>
|
|
<CopyOverlay content={content} clickComponent={button}/>
|
|
</Fragment>
|
|
)
|
|
}
|