1.1.1 • Published 4 months ago

react-conditional-render-component v1.1.1

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

react-conditional-render-component

A simple and declarative way to handle conditional rendering in React, similar to Vue's v-if and v-else.

🚀 Installation

npm install react-conditional-render-component

or using Yarn:

yarn add react-conditional-render-component

📌 Usage

Basic Example

import React from "react";
import { Conditional, If, ElseIf, Else } from "react-conditional-render-component";

const App = () => {
  const user = { role: "admin" };

  return (
    <Conditional>
      <If condition={user.role === "admin"}>Welcome, Admin!</If>
      <ElseIf condition={user.role === "editor"}>Welcome, Editor!</ElseIf>
      <Else>Welcome, Guest!</Else>
    </Conditional>
  );
};

export default App;

📖 API

<Conditional>

Wraps all conditional blocks (<If>, <ElseIf>, <Else>). It ensures only the first matching condition is rendered.

<If condition={boolean}>

Renders its children if the condition is true.

<ElseIf condition={boolean}>

Renders its children if the previous conditions were false and this condition is true.

<Else>

Renders its children if no previous conditions matched.

🎯 Advanced Example

import React, { useState } from "react";
import { Conditional, If, ElseIf, Else } from "react-conditional-render-component";

const UserGreeting = () => {
  const [role, setRole] = useState("guest");

  return (
    <div>
      <select onChange={(e) => setRole(e.target.value)} value={role}>
        <option value="guest">Guest</option>

        <option value="editor1">Editor1</option>
        <option value="editor2">Editor2</option>
        <option value="editor3">Editor3</option>
        <option value="editor-unknown">Unknown Editor</option>

        <option value="admin">Admin</option>
      </select>

      <Conditional>
        <If condition={role === "admin"}>Welcome, Admin!</If>
        <ElseIf condition={role.includes("editor")}>
          <span> Welcome </span>
          <span>
            <Conditional>
              <If condition={role === "editor1"}>
                  Editor 1
              </If>
              <ElseIf condition={role === "editor2"}>
                  Editor 2
              </ElseIf>
              <ElseIf condition={role === "editor3"}>
                  Editor 3
              </ElseIf>
              <Else>
                Unknown Editor
              </Else>
            </Conditional>
          </span>
        </ElseIf>
        <Else>Welcome, Guest!</Else>
      </Conditional>
    </div>
  );
};

export default UserGreeting;

✅ Running Tests

If you're using Vitest, you can test the component like this:

npm test

📜 License

This project is licensed under the MIT License.


Made with ❤️ by Ahmed Gamal

1.1.1

4 months ago

1.1.0

4 months ago

1.0.0

4 months ago