UNPKG

@wordpress/components

Version:
8 lines (7 loc) 3.1 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": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,qBAAmC;AACnC,qBAA4C;AAC5C,mBAA4B;AAC5B,kBAAmB;AAKnB,oBAAuB;AACvB,qBAAoB;AACpB,yBAA4B;AACrB,IAAM,kBAAkB,WAAS;AACtC,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,CAAC,aAAa,cAAc,QAAI,yBAAS,IAAI;AACnD,QAAM,mBAAe,uBAAO,MAAS;AACrC,QAAM,cAAU,mCAAmB,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,gCAAU,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,eAAW,gBAAG,SAAS,QAAI,gBAAG,MAAM;AAClD,SAAoB,uCAAAA,KAAK,eAAAC,SAAS;AAAA,IAChC,OAAO;AAAA,IACP,aAAa;AAAA,IACb,MAAM;AAAA,IACN,UAAuB,uCAAAD,KAAK,sBAAQ;AAAA,MAClC,MAAM;AAAA,MACN,cAAc;AAAA,MACd,KAAK;AAAA,MACL,MAAM,WAAW,qBAAQ;AAAA,MACzB,aAAa;AAAA,IACf,CAAC;AAAA,EACH,CAAC;AACH;", "names": ["_jsx", "Tooltip"] }