Sha256: a86235022cd2c8f11fb3c7be30a8d09a4de450e3281cca4dca750c5f674090ef
Contents?: true
Size: 891 Bytes
Versions: 26
Compression:
Stored size: 891 Bytes
Contents
import { useRef } from '../use-ref.mjs'; import { readlineWidth } from '../utils.mjs'; import { lines } from './lines.mjs'; import { finite, infinite } from './position.mjs'; export function usePagination({ items, active, renderItem, pageSize, loop = true, }) { const state = useRef({ position: 0, lastActive: 0 }); const position = loop ? infinite({ active, lastActive: state.current.lastActive, total: items.length, pageSize, pointer: state.current.position, }) : finite({ active, total: items.length, pageSize, }); state.current.position = position; state.current.lastActive = active; return lines({ items, width: readlineWidth(), renderItem, active, position, pageSize, }).join('\n'); }
Version data entries
26 entries across 26 versions & 1 rubygems