npm.io
0.2.1 • Published 6 months ago

@kitsuyui/react-timer

Licence
MIT
Version
0.2.1
Deps
0
Size
516 kB
Vulns
0
Weekly
0
Stars
1

@kitsuyui/react-timer

npm version

Simple timer React component.

Demo

Storybook: https://react-playground.docs.kitsuyui.com/storybook/

Installation

npm
npm install @kitsuyui/react-timer
yarn
yarn add @kitsuyui/react-timer
pnpm
pnpm add @kitsuyui/react-timer

Usage

import { TimerContainer, MinimalTimer } from '@kitsuyui/react-timer'

const Timer = () => {
  return (
    <TimerContainer>
      <TimerContext.Consumer>
        {(timer: TimerProps) => <MinimalTimer {...timer} />}
      </TimerContext.Consumer>
    </TimerContainer>
  )
}

TimerContainer is a component that provides TimerContext. Timers are pure components that do not depend on TimerContext. Accept TimerProps as props. So you can define your own Timer component by same interface.

export interface TimerValue {
  remaining: number
  running: boolean
}

export interface TimerActions {
  start(): void
  stop(): void
  toggle(): void
  reset(): void
  incrementTimerValue(value: number): void
  setTimerValue(value: number): void
}

export type TimerProps = TimerValue & TimerActions

License

MIT