import { memo, useCallback } from "react"; import equal from "react-fast-compare"; import * as icons from "@/components/icons"; import { Base, BaseProps } from "./base"; export type PasteProps = Omit & { onClipboardRead: (text: string) => void; }; export function RawPaste({ iconOnly, onClipboardRead, ...props }: PasteProps) { const onClick: BaseProps["onClick"] = useCallback(() => { navigator.clipboard .readText() .then(onClipboardRead) .catch(e => { if (e instanceof Error) { // eslint-disable-next-line no-alert alert(e.message); } }); }, [onClipboardRead]); return ( } {...{ iconOnly, onClick }} labelText="Paste" /> ); } export const Paste = memo(RawPaste, equal);