Jesus sucks
This commit is contained in:
43
backend/frontend/node_modules/@restart/ui/esm/Anchor.js
generated
vendored
Normal file
43
backend/frontend/node_modules/@restart/ui/esm/Anchor.js
generated
vendored
Normal file
@@ -0,0 +1,43 @@
|
||||
const _excluded = ["onKeyDown"];
|
||||
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.indexOf(n) >= 0) continue; t[n] = r[n]; } return t; }
|
||||
/* eslint-disable jsx-a11y/no-static-element-interactions */
|
||||
/* eslint-disable jsx-a11y/anchor-has-content */
|
||||
|
||||
import * as React from 'react';
|
||||
import { useEventCallback } from '@restart/hooks';
|
||||
import { useButtonProps } from './Button';
|
||||
import { jsx as _jsx } from "react/jsx-runtime";
|
||||
export function isTrivialHref(href) {
|
||||
return !href || href.trim() === '#';
|
||||
}
|
||||
/**
|
||||
* An generic `<a>` component that covers a few A11y cases, ensuring that
|
||||
* cases where the `href` is missing or trivial like "#" are treated like buttons.
|
||||
*/
|
||||
const Anchor = /*#__PURE__*/React.forwardRef((_ref, ref) => {
|
||||
let {
|
||||
onKeyDown
|
||||
} = _ref,
|
||||
props = _objectWithoutPropertiesLoose(_ref, _excluded);
|
||||
const [buttonProps] = useButtonProps(Object.assign({
|
||||
tagName: 'a'
|
||||
}, props));
|
||||
const handleKeyDown = useEventCallback(e => {
|
||||
buttonProps.onKeyDown(e);
|
||||
onKeyDown == null ? void 0 : onKeyDown(e);
|
||||
});
|
||||
if (isTrivialHref(props.href) || props.role === 'button') {
|
||||
return /*#__PURE__*/_jsx("a", Object.assign({
|
||||
ref: ref
|
||||
}, props, buttonProps, {
|
||||
onKeyDown: handleKeyDown
|
||||
}));
|
||||
}
|
||||
return /*#__PURE__*/_jsx("a", Object.assign({
|
||||
ref: ref
|
||||
}, props, {
|
||||
onKeyDown: onKeyDown
|
||||
}));
|
||||
});
|
||||
Anchor.displayName = 'Anchor';
|
||||
export default Anchor;
|
||||
Reference in New Issue
Block a user