2.0.1 • Published 6 months ago

react-array-to-tree v2.0.1

Weekly downloads
1
License
MIT
Repository
github
Last release
6 months ago

react-array-to-tree

Make a nested tree of React components out of a flat array

Installation

npm i react-array-to-tree or yarn add react-array-to-tree

Usage

If you have a React application with multiple contexts you might end up with a deep nested tree of context providers, something like this:

const AppWithProviders = () => (
  <ThemeContext.Provider param1={value1}>
    <UserContext.Provider>
      <SomeOtherContext.Provider param2={value2} param3={value3}>
        <YetAnotherContext.Provider>
          <OneMoreContext.Provider>
            <AndOneMoreContext.Provider>
              <AndSoOnContext.Provider>
                <AndSoForthContext.Provider>
                  <App/>
                <AndSoForthContext.Provider>
              </AndSoOnContext.Provider>
            </AndOneMoreContext.Provider>
          </OneMoreContext.Provider>
        </YetAnotherContext.Provider>
      </YetAnotherContext.Provider>
    </UserContext.Provider>
  </ThemeContext.Provider>
)

To make the structure more flat you can use this library:

import reactArrayToTree from 'react-array-to-tree';

const Provider = reactArrayToTree([
  <ThemeContext.Provider param1={value1} />,
  <UserContext.Provider />
  <SomeOtherContext.Provider param2={value2} param3={value3} />,
  <YetAnotherContext.Provider />,
  <OneMoreContext.Provider />,
  <AndOneMoreContext.Provider />,
  <AndSoOnContext.Provider />,
  <AndSoForthContext.Provider />,
]);

const AppWithProviders = () => (
  <Provider>
    <App/>
  </Provider>
);
2.0.1

6 months ago

2.0.0

7 months ago

1.0.1

4 years ago

1.0.0

4 years ago