@react-control/flow
TypeScript icon, indicating that this package has built-in type declarations

1.0.3 • Public • Published

MIT License npm JSR open issues

Installation:

npm add @react-control/flow
yarn add @react-control/flow
bun add @react-control/flow

Provided components:

Show

import { ReactNode, FC } from 'react'

type TruthyValue<T> = NonNullable<Exclude<T, false | 0>>

export type ShowProps<T> = {
  when: T
  fallback?: ReactNode | ReactNode[]
  children: FC<TruthyValue<T>> | ReactNode | ReactNode[]
}

For

Component that renders children for each item in the of prop. This component is similar to Array.prototype.map method.

import { ReactNode } from 'react'

type OrNull<T> = T | null

export type ForProps<T> = {
  of: OrNull<T[] | readonly T[]>
  children: (item: T, index?: number) => ReactNode | ReactNode[]
  keyMapper?: (item: T, index?: number) => string | number
  loading?: boolean
  slots?: {
    loading?: ReactNode | ReactNode[]
    empty?: ReactNode | ReactNode[]
  }
}

SwitchMap

Conditional rendering component that renders some of the children depending on the case prop. Also, you can use default prop to render something while case is not equal to any key of the children object.

import { ReactNode } from 'react'

type SwitchMapProps<T extends string> = {
  case: T
  default?: ReactNode | ReactNode[]
  children: Partial<Record<T, ReactNode | ReactNode[]>>
}

Dependencies (0)

    Dev Dependencies (14)

    Package Sidebar

    Install

    npm i @react-control/flow

    Weekly Downloads

    0

    Version

    1.0.3

    License

    MIT

    Unpacked Size

    16 kB

    Total Files

    28

    Last publish

    Collaborators

    • reutenkoivan