JSPM

multi-condition

1.0.0
    • ESM via JSPM
    • ES Module Entrypoint
    • Export Map
    • Keywords
    • License
    • Repository URL
    • TypeScript Types
    • README
    • Created
    • Published
    • Downloads 99
    • Score
      100M100P100Q72581F
    • License MIT

    React component for multi-condition rendering. Perfect alternative for ternary operator. It's more readable and easier to maintain. Supports TypeScript.

    Package Exports

    • multi-condition
    • multi-condition/dist/index.js

    This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (multi-condition) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    Readme

    A component that replaces and extends use of ternary operator in JSX.

    Substitute A ? B : C

    For example this:

    {condition ? <ConditionTrue /> : <ConditionFalse />}

    Can be replaced with:

    import { Show, If, Else } from 'react-if';
    
    <Show>
      <If condition={true}>
        <ConditionTrue />
      </If>
      <Else>
        <ConditionFalse />
      </Else>
    </Show>

    Or this:

    {condition ? <ConditionTrue /> : null}

    Can be replaced with just:

    <Show>
      <If condition={true}>
        <ConditionTrue />
      </If>
    </Show>

    Or this:

    {firstCondition
      ? (
        secondCondition
          ? <FirstConditionTrueSecondFalse />
          : <FirstConditionTrueSecondFalse />
      ) : (
        <FirstConditionFalse />
      )
    }

    Can be replaced with:

    <Show>
      <If condition={firstCondition}>
        <Show>
          <If condition={secondCondition}>
            <FirstConditionTrueSecondTrue />
          </If>
          <Else>
            <FirstConditionTrueSecondFalse />
          </Else>
        </Show>
      </If>
      <Else>
        <FirstConditionFalse />
      </Else>

    Or this (same thing, less nesting):

    <Show>
      <Show>
        <If condition={firstCondition && SecondCondition}>
          <FirstConditionTrueSecondTrue />
        </If>
        <If condition={firstCondition && !SecondCondition}>
          <FirstConditionTrueSecondFalse />
        </If>
        <Else>
          <FirstConditionTrueSecondFalse />
        </Else>
      </Show>
      <Else>
        <FirstConditionFalse />
      </Else>
    </Show>

    Extend A ? B : C

    Additionally, this component presents new option to show more than one branch at the same time:

    <Show>
      <If condition={firstCondition}>
        <FirstConditionTrue />
      </If>
      <If condition={secondCondition}>
        <SecondConditionTrue />
      </If>
      <Else>
        <BothFalse />
      </Else>
    </Show>
    • If both conditions are true, both FirstConditionTrue and SecondConditionTrue will be shown.
    • If one of them is true, then one component will be shown.
    • If both conditions are false, then BothFalse will be shown.

    Different syntax

    Of course if you prefer you can also import If, Else and Show components together:

    import * as Show from 'react-if'
    
    <Show.Show>
      <Show.If condition={true}>
        <ConditionTrue />
      </Show.If>
      <Show.Else>
        <ConditionFalse />
      </Show.Else>
    </Show.Show>