useCounter

Manage numeric counter state with increment, decrement, set, and reset handlers.

Import

import { useCounter } from '@tidbcloud/uikit'

Usage

import { useCounter } from '@tidbcloud/uikit'
import { Button, Group, Text } from '@tidbcloud/uikit'
 
function Demo() {
  const [count, handlers] = useCounter(0, { min: 0, max: 10 })
 
  return (
    <>
      <Text>Count: {count}</Text>
      <Group>
        <Button onClick={handlers.increment}>Increment</Button>
        <Button onClick={handlers.decrement}>Decrement</Button>
        <Button onClick={() => handlers.set(5)}>Set 5</Button>
        <Button onClick={handlers.reset}>Reset</Button>
      </Group>
    </>
  )
}

Options

  • min – minimum value (will not go below)
  • max – maximum value (will not go above)

Definition

interface UseCounterOptions {
  min?: number
  max?: number
}
 
interface UseCounterHandlers {
  increment: () => void
  decrement: () => void
  set: (value: number) => void
  reset: () => void
}
 
type UseCounterReturnValue = [number, UseCounterHandlers]
 
function useCounter(initialValue?: number, options?: UseCounterOptions): UseCounterReturnValue