@payfit/unity-components
Version:
51 lines (50 loc) • 2.29 kB
JavaScript
import { usePaginationContext as e } from "../PaginationContext.js";
import { forwardRef as t, useCallback as n, useRef as r } from "react";
import { uyTv as i } from "@payfit/unity-themes";
import { jsx as a } from "react/jsx-runtime";
import { useIntl as o } from "react-intl";
import { Link as s } from "react-aria-components/Link";
//#region src/components/pagination/parts/RawPaginationLink.tsx
var c = i({ base: [
"uy:min-w-300 uy:h-300 uy:p-25 uy:flex uy:justify-center uy:items-center uy:typography-action uy:rounded-pill uy:transition-colors",
"uy:enabled:text-content-neutral-enabled uy:enabled:bg-transparent uy:cursor-pointer",
"uy:data-[disabled]:text-content-neutral-disabled uy:data-[disabled]:bg-surface-neutral-lowest-disabled uy:data-[disabled]:cursor-not-allowed",
"uy:hover:text-content-neutral-hover uy:hover:bg-surface-neutral-lowest-hover",
"uy:active:text-content-neutral-pressed uy:active:bg-surface-neutral-lowest-pressed uy:data-[pressed]:text-content-neutral-pressed uy:data-[pressed]:bg-surface-neutral-lowest-pressed",
"uy:aria-[current=page]:bg-surface-neutral-lowest-selected",
"uy:focus-visible:outline-2 uy:focus-visible:outline-solid uy:focus-visible:outline-utility-focus-ring uy:focus-visible:outline-offset-2",
"uy:data-[focus-visible]:outline-2 uy:data-[focus-visible]:outline-solid uy:data-[focus-visible]:outline-utility-focus-ring uy:data-[focus-visible]:outline-offset-2"
] }), l = t(({ isCurrent: t, isDisabled: i, value: l, onPress: u, ...d }, f) => {
let p = o(), { currentPage: m, onKeyDown: h, pageRefs: g, onPageChange: _ } = e(), v = r(null), y = n((e) => {
v.current = e, e ? g.current.set(l, e) : g.current.delete(l), typeof f == "function" ? f(e) : f && (f.current = e);
}, [
l,
g,
f
]), b = t ?? m === l, x = n(() => {
d.href || _(l, m, l > m ? 1 : -1);
}, [
l,
m,
_,
d.href
]);
return /* @__PURE__ */ a(s, {
...d,
ref: y,
className: c(),
isDisabled: i,
onPress: u ?? x,
"aria-current": b ? "page" : void 0,
"aria-label": p.formatMessage({
id: "unity:component:pagination:link:label",
defaultMessage: "Page {page}"
}, { page: l }),
onKeyDown: (e) => {
h(e);
}
});
});
l.displayName = "RawPaginationLink";
//#endregion
export { l as RawPaginationLink, c as paginationLink };