0.6.7 • Published 4 months ago

extra-react-hooks v0.6.7

Weekly downloads
-
License
MIT
Repository
github
Last release
4 months ago

extra-react-hooks

Install

npm install --save extra-react-hooks
# or
yarn add extra-react-hooks

API

interface IOptionState {
  selected: boolean
}

useToggle

function useToggle(initialState: boolean = false): [on: boolean, toggle: () => void]

useSingleSelection

function useSingleSelection<T>(
  options: NonEmptyArray<T>
, defaultSelectedIndex: number
): {
  selectedIndex: number
  optionStates: IOptionState[]
  select: (index: number) => void
}

useMultipleSelection

function useMultipleSelection<T>(
  options: NonEmptyArray<T>
, defaultSelectedIndexes: number[] = []
): {
  selectedIndexes: number[]
  optionStates: IOptionState[]
  toggle: (index: number) => void
  select: (index: number) => void
  unselect: (index: number) => void
}

useMount

function useMount(effect: EffectCallback): void

useMountAsync

function useMountAsync(effect: (signal: AbortSignal) => Promise<void>): void

useUnmount

function useUnmount(effect: () => void): void 

useEffectAsync

function useEffectAsync(
  effect: (signal: AbortSignal) => Promise<void>
, deps?: DependencyList
): void

useCallbackAsync

function useCallbackAsync<Args extends unknown[]>(
  callback: (...args: [...args: Args, signal: AbortSignal]) => Promise<void>
, deps: DependencyList
): (...args: Args) => void

useUpdateEffect

function useUpdateEffect(
  effect: EffectCallback
, deps?: React.DependencyList
): void

useStateCycle

function useStateCycle<T>(
  orderedStates: NonEmptyArray<T>
, initialStateIndex: number = 0
): [state: T, next: () => void]

useIsMounted

function useIsMounted(): () => boolean

useIsFirstRender

function useIsFirstRender(): () => boolean

useIncrement

function useIncrement(
  initialValue: number
): [value: number, increment: (step?: number) => void, reset: () => void]

useResizeObserver

function useResizeObserver(
  callback: ResizeObserverCallback
, refs: Array<RefObject<HTMLElement> | MutableRefObject<HTMLElement>>
, deps?: React.DependencyList
): void

useIntersectionObserver

function useIntersectionObserver(
  callback: IntersectionObserverCallback
, options: IntersectionObserverInit | undefined
, refs: Array<RefObject<HTMLElement> | MutableRefObject<HTMLElement>>
, deps?: React.DependencyList
): void
function useIntersectionObserver(
  callback: IntersectionObserverCallback
, refs: Array<RefObject<HTMLElement> | MutableRefObject<HTMLElement>>
, deps?: React.DependencyList
): void

useStep

function useStep<T>(
  steps: NonEmptyArray<T>
, initialStepIndex: number = 0
): [currentStep: T, next: () => void, previous: () => void]

useForceUpdate

function useForceUpdate(): () => void

useFiniteStateMachine

function useFiniteStateMachine<State extends string, Event extends string>(
  schema: IFiniteStateMachineSchema<State, Event>
, initialState: State
): ObservableFiniteStateMachine<State, Event>

The ObservableFiniteStateMachine comes from extra-fsm.

useRenderCounter

function useRenderCounter(): number

useIIFE

function useIIFE(iife: () => void, deps: React.DependencyList): void

useMemoWithCleanup

function useMemoWithCleanup<T>(
  factory: () => T
, cleanup: (value: T) => void
, deps?: React.DependencyList
): T

useGetSet

function useGetSet<T>(
  initialValue: T
): [get: () => T, set: (value: T) => void]
0.6.7

4 months ago

0.6.6

4 months ago

0.6.5

4 months ago

0.6.4

4 months ago

0.6.3

11 months ago

0.5.4

11 months ago

0.6.2

11 months ago

0.5.3

11 months ago

0.6.1

11 months ago

0.6.0

11 months ago

0.5.2

1 year ago

0.5.1

1 year ago

0.5.0

1 year ago

0.4.1

1 year ago

0.4.0

1 year ago

0.4.3

1 year ago

0.3.4

1 year ago

0.4.2

1 year ago

0.3.3

2 years ago

0.3.2

2 years ago

0.1.12

2 years ago

0.1.13

2 years ago

0.1.14

2 years ago

0.1.15

2 years ago

0.3.0

2 years ago

0.2.1

2 years ago

0.2.0

2 years ago

0.3.1

2 years ago

0.1.11

2 years ago

0.1.10

2 years ago

0.1.8

2 years ago

0.1.7

2 years ago

0.1.9

2 years ago

0.1.6

2 years ago

0.1.5

3 years ago

0.1.4

3 years ago

0.1.3

3 years ago

0.1.2

3 years ago

0.1.1

3 years ago

0.1.0

3 years ago