0.0.3 • Published 6 years ago

fold-render-props v0.0.3

Weekly downloads
-
License
MIT
Repository
-
Last release
6 years ago

fold-render-props

Fold multiple render prop components into a single component.

npm version Build Status codecov

Install

npm i fold-render-props -S

Basic Example

const ComponentA = props => {
  return props.children({
    name: props.name.toUpperCase()
  })
}

const ComponentB = props =>
  props.children({
    name: props.name.big()
  })


const ComponentC = props => {
  return props.children({
    name: props.name.repeat(3)
  })
}

const Folder = folder([
  (result, render) => (
    <ComponentA name={'⒜' + result.name + '⒜'} children={render} />
  ),
  (result, render) => (
    <ComponentB name={'⒝' + result.name + '⒝'} children={render} />
  ),
  (result, render) => (
    <ComponentC name={'⒞' + result.name + '⒞'} children={render} />
  )
])

// Usage
const MyComponent = (props) => (
  <div>
    <Folder name="thing">{r => <pre>{JSON.stringify(r)}</pre>}</Folder>
  </div>
)

This renders

<div>
  <pre>
    { "name": "⒜<BIG>⒝⒞THING⒞⒞THING⒞⒞THING⒞⒝</BIG>⒜" }
  </pre>
</div>
0.0.3

6 years ago

0.0.2

6 years ago