UNPKG

@wordpress/components

Version:
8 lines (7 loc) 3.05 kB
{ "version": 3, "sources": ["../../src/color-picker/color-copy-button.tsx"], "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useCopyToClipboard } from '@wordpress/compose';\nimport { useState, useEffect, useRef } from '@wordpress/element';\nimport { copy, check } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { Button } from '../button';\nimport Tooltip from '../tooltip';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const ColorCopyButton = props => {\n const {\n color,\n colorType\n } = props;\n const [copiedColor, setCopiedColor] = useState(null);\n const copyTimerRef = useRef(undefined);\n const copyRef = useCopyToClipboard(() => {\n switch (colorType) {\n case 'hsl':\n {\n return color.toHslString();\n }\n case 'rgb':\n {\n return color.toRgbString();\n }\n default:\n case 'hex':\n {\n return color.toHex();\n }\n }\n }, () => {\n if (copyTimerRef.current) {\n clearTimeout(copyTimerRef.current);\n }\n setCopiedColor(color.toHex());\n copyTimerRef.current = setTimeout(() => {\n setCopiedColor(null);\n copyTimerRef.current = undefined;\n }, 3000);\n });\n useEffect(() => {\n // Clear copyTimerRef on component unmount.\n return () => {\n if (copyTimerRef.current) {\n clearTimeout(copyTimerRef.current);\n }\n };\n }, []);\n const isCopied = copiedColor === color.toHex();\n const label = isCopied ? __('Copied!') : __('Copy');\n return /*#__PURE__*/_jsx(Tooltip, {\n delay: 0,\n hideOnClick: false,\n text: label,\n children: /*#__PURE__*/_jsx(Button, {\n size: \"compact\",\n \"aria-label\": label,\n ref: copyRef,\n icon: isCopied ? check : copy,\n showTooltip: false\n })\n });\n};"], "mappings": ";AAGA,SAAS,0BAA0B;AACnC,SAAS,UAAU,WAAW,cAAc;AAC5C,SAAS,MAAM,aAAa;AAC5B,SAAS,UAAU;AAKnB,SAAS,cAAc;AACvB,OAAO,aAAa;AACpB,SAAS,OAAO,YAAY;AACrB,IAAM,kBAAkB,WAAS;AACtC,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,CAAC,aAAa,cAAc,IAAI,SAAS,IAAI;AACnD,QAAM,eAAe,OAAO,MAAS;AACrC,QAAM,UAAU,mBAAmB,MAAM;AACvC,YAAQ,WAAW;AAAA,MACjB,KAAK,OACH;AACE,eAAO,MAAM,YAAY;AAAA,MAC3B;AAAA,MACF,KAAK,OACH;AACE,eAAO,MAAM,YAAY;AAAA,MAC3B;AAAA,MACF;AAAA,MACA,KAAK,OACH;AACE,eAAO,MAAM,MAAM;AAAA,MACrB;AAAA,IACJ;AAAA,EACF,GAAG,MAAM;AACP,QAAI,aAAa,SAAS;AACxB,mBAAa,aAAa,OAAO;AAAA,IACnC;AACA,mBAAe,MAAM,MAAM,CAAC;AAC5B,iBAAa,UAAU,WAAW,MAAM;AACtC,qBAAe,IAAI;AACnB,mBAAa,UAAU;AAAA,IACzB,GAAG,GAAI;AAAA,EACT,CAAC;AACD,YAAU,MAAM;AAEd,WAAO,MAAM;AACX,UAAI,aAAa,SAAS;AACxB,qBAAa,aAAa,OAAO;AAAA,MACnC;AAAA,IACF;AAAA,EACF,GAAG,CAAC,CAAC;AACL,QAAM,WAAW,gBAAgB,MAAM,MAAM;AAC7C,QAAM,QAAQ,WAAW,GAAG,SAAS,IAAI,GAAG,MAAM;AAClD,SAAoB,qBAAK,SAAS;AAAA,IAChC,OAAO;AAAA,IACP,aAAa;AAAA,IACb,MAAM;AAAA,IACN,UAAuB,qBAAK,QAAQ;AAAA,MAClC,MAAM;AAAA,MACN,cAAc;AAAA,MACd,KAAK;AAAA,MACL,MAAM,WAAW,QAAQ;AAAA,MACzB,aAAa;AAAA,IACf,CAAC;AAAA,EACH,CAAC;AACH;", "names": [] }