UNPKG

@payfit/unity-components

Version:

51 lines (50 loc) 2.29 kB
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 };