import {JSX, mergeProps, splitProps} from "solid-js"; import classNames from "./classnames"; import {Anchor} from "solid-bootstrap-core"; import {BsPrefixProps, BsPrefixRefForwardingComponent} from "./helpers"; import {Dynamic} from "solid-js/web"; export interface PageItemProps extends Omit, "ref">, BsPrefixProps { disabled?: boolean; active?: boolean; activeLabel?: string; href?: string; ref?: JSX.HTMLAttributes["ref"]; } const defaultProps: Partial = { active: false, disabled: false, activeLabel: "(current)", }; const PageItem: BsPrefixRefForwardingComponent<"li", PageItemProps> = (p: PageItemProps) => { const [local, props] = splitProps(mergeProps(defaultProps, p), [ "active", "disabled", "class", "style", "activeLabel", "children", "ref", ]); return (
  • {local.children} {local.active && local.activeLabel && ( {local.activeLabel} )}
  • ); }; export default PageItem; function createButton(name: string, defaultValue: JSX.Element, label = name) { function Button(props: PageItemProps) { const [_, rest] = splitProps(props, ["children"]); return ( {label} ); } Button.displayName = name; return Button; } export const First = createButton("First", "«"); export const Prev = createButton("Prev", "‹", "Previous"); export const Ellipsis = createButton("Ellipsis", "…", "More"); export const Next = createButton("Next", "›"); export const Last = createButton("Last", "»");