UNPKG

@wordpress/components

Version:
8 lines (7 loc) 1.86 kB
{ "version": 3, "sources": ["../../../src/navigator/navigator-button/hook.ts"], "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useCallback } from '@wordpress/element';\nimport { escapeAttribute } from '@wordpress/escape-html';\n\n/**\n * Internal dependencies\n */\n\nimport { useContextSystem } from '../../context';\nimport Button from '../../button';\nimport { useNavigator } from '../use-navigator';\nconst cssSelectorForAttribute = (attrName, attrValue) => `[${attrName}=\"${attrValue}\"]`;\nexport function useNavigatorButton(props) {\n const {\n path,\n onClick,\n as = Button,\n attributeName = 'id',\n ...otherProps\n } = useContextSystem(props, 'Navigator.Button');\n const escapedPath = escapeAttribute(path);\n const {\n goTo\n } = useNavigator();\n const handleClick = useCallback(e => {\n e.preventDefault();\n goTo(escapedPath, {\n focusTargetSelector: cssSelectorForAttribute(attributeName, escapedPath)\n });\n onClick?.(e);\n }, [goTo, onClick, attributeName, escapedPath]);\n return {\n as,\n onClick: handleClick,\n ...otherProps,\n [attributeName]: escapedPath\n };\n}"], "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,qBAA4B;AAC5B,yBAAgC;AAMhC,qBAAiC;AACjC,oBAAmB;AACnB,2BAA6B;AAC7B,IAAM,0BAA0B,CAAC,UAAU,cAAc,IAAI,QAAQ,KAAK,SAAS;AAC5E,SAAS,mBAAmB,OAAO;AACxC,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA,KAAK,cAAAA;AAAA,IACL,gBAAgB;AAAA,IAChB,GAAG;AAAA,EACL,QAAI,iCAAiB,OAAO,kBAAkB;AAC9C,QAAM,kBAAc,oCAAgB,IAAI;AACxC,QAAM;AAAA,IACJ;AAAA,EACF,QAAI,mCAAa;AACjB,QAAM,kBAAc,4BAAY,OAAK;AACnC,MAAE,eAAe;AACjB,SAAK,aAAa;AAAA,MAChB,qBAAqB,wBAAwB,eAAe,WAAW;AAAA,IACzE,CAAC;AACD,cAAU,CAAC;AAAA,EACb,GAAG,CAAC,MAAM,SAAS,eAAe,WAAW,CAAC;AAC9C,SAAO;AAAA,IACL;AAAA,IACA,SAAS;AAAA,IACT,GAAG;AAAA,IACH,CAAC,aAAa,GAAG;AAAA,EACnB;AACF;", "names": ["Button"] }