one
Version:
One is a React framework for web, iOS, and Android apps.
40 lines (37 loc) • 1.18 kB
JavaScript
import { Link } from "../link/Link.mjs";
import { shouldHandleMouseEvent, useTabTrigger, 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