All files / libs/ext/react/components/src/lib/bool-state BoolState.tsx

0% Statements 0/17
0% Branches 0/1
0% Functions 0/1
0% Lines 0/17

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18                                   
import { Fragment, type ReactNode } from 'react';

import { useBoolState } from '@amalia/ext/react/hooks';

export type BoolStateProps<TName extends string = 'state'> = {
  readonly initialState?: boolean | (() => boolean);
  readonly name?: TName;
  readonly children: (boolState: ReturnType<typeof useBoolState<TName>>) => ReactNode;
};

export const BoolState = function BoolState<TName extends string = 'state'>({
  initialState = false,
  name,
  children,
}: BoolStateProps<TName>) {
  return <Fragment>{children(useBoolState<TName>(initialState, name))}</Fragment>;
};