websync / components /input /InputClipboardCopy.tsx
Shivam
Initial commit: Web-SyncPlay moved into Streamer
d092f57
import { FC } from "react"
import IconClipboard from "../icon/IconClipboard"
interface Props {
value: string
className?: string
}
const InputClipboardCopy: FC<Props> = ({ value, className }) => {
return (
<div
className={"rounded flex flex-row items-center bg-dark-900 " + className}
>
<input
className={"rounded grow bg-dark-900 p-2 " + className}
value={value}
type={"text"}
readOnly={true}
onClick={(event) => {
const target = event.target as HTMLInputElement
target.select()
}}
/>
<button
className={
"p-2 bg-primary-900 hover:bg-primary-800 active:bg-primary-700 flex flex-row items-center rounded-r cursor-copy"
}
data-tooltip-content={"Click to copy"}
type={"button"}
onClick={() => {
navigator.clipboard
.writeText(value)
.then(() => {})
.catch((error) => {
console.error("Failed to copy", error)
})
}}
>
<IconClipboard /> Copy
</button>
</div>
)
}
export default InputClipboardCopy