one
Version:
One is a new React Framework that makes Vite serve both native and web.
50 lines (49 loc) • 1.29 kB
JavaScript
import { Link } from "../link/Link.mjs";
import { shouldHandleMouseEvent, useTabTrigger } from "./useTabTrigger.mjs";
import { useTabTrigger as useTabTrigger2 } from "./useTabTrigger.mjs";
import { jsx } from "react/jsx-runtime";
function TabTrigger({
asChild,
name,
href,
resetOnFocus,
...props
}) {
const {
trigger,
triggerProps
} = useTabTrigger({
name,
resetOnFocus,
...props
});
const resolvedHref = trigger?.resolvedHref ?? href;
if (!resolvedHref) {
return /* @__PURE__ */jsx("button", {
type: "button",
onClick: event => triggerProps.onPress?.(event),
children: props.children
});
}
return /* @__PURE__ */jsx(Link, {
...props,
href: resolvedHref,
asChild,
onPress: event => {
if (!shouldHandleMouseEvent(event)) return;
event.preventDefault();
triggerProps.onPress?.(event);
},
onLongPress: triggerProps.onLongPress,
"aria-current": trigger?.isFocused ? "page" : void 0,
...(asChild ? {
isFocused: Boolean(trigger?.isFocused)
} : null),
children: props.children
});
}
function isTabTrigger(child) {
return child.type === TabTrigger;
}
export { TabTrigger, isTabTrigger, useTabTrigger2 as useTabTrigger };
//# sourceMappingURL=TabTrigger.mjs.map