@wordpress/components
Version:
UI components for WordPress.
8 lines (7 loc) • 1.81 kB
Source Map (JSON)
{
"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": ";AAGA,SAAS,mBAAmB;AAC5B,SAAS,uBAAuB;AAMhC,SAAS,wBAAwB;AACjC,OAAO,YAAY;AACnB,SAAS,oBAAoB;AAC7B,IAAM,0BAA0B,CAAC,UAAU,cAAc,IAAI,QAAQ,KAAK,SAAS;AAC5E,SAAS,mBAAmB,OAAO;AACxC,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA,KAAK;AAAA,IACL,gBAAgB;AAAA,IAChB,GAAG;AAAA,EACL,IAAI,iBAAiB,OAAO,kBAAkB;AAC9C,QAAM,cAAc,gBAAgB,IAAI;AACxC,QAAM;AAAA,IACJ;AAAA,EACF,IAAI,aAAa;AACjB,QAAM,cAAc,YAAY,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": []
}