1.0.0 • Published 6 years ago
react-funk-patrol v1.0.0
React Funk Patrol
Components based on functional programming types.
Types
Maybe
The Maybe
component takes a value and renders the something
prop if that value is anything other than null
or undefined
.
The children
prop is passed to both nothing
and something
, so you can manipulate any children
of the Maybe
accordingly.
Prop | Type | Purpose | Default |
---|---|---|---|
of | any | of is given to an isNothing function to determine if it's either null or undefined | |
nothing | function | This is rendered when of is either null or undefined | () => null |
something | function | This is rendered when of is anything other than null or undefined | () => null |
Example
<Maybe
of={someValue}
nothing={({ children }) => (
<div>
<p>I render if `someValue` is actually nothing</p>
{children}
</div>
)}
something={({ children }) => (
<div>
<p>
I will render so long as `someValue` is not `null` or `undefined`
</p>
{children}
</div>
)}
>
<p>
I am passed to `nothing` and `something` as the `children` prop.
</p>
</Maybe>
Either
The <Either>
takes a value and renders either the left
render prop or the right
render prop based on whether it's truthy or falsy. Beware, this utilizes Boolean coercion, so 0
will result in the left
being rendered.
The children
prop is passed to both left
and right
, so you can manipulate any children
of the Either
accordingly.
Prop | Type | Purpose | Default |
---|---|---|---|
of | any | of is coerced into a Boolean to determine whether left (false) or right (true) is rendered | |
left | Component | rendered when of is falsy | () => null |
right | Component | rendered when of is truthy | () => null |
Example
<Either
of={something}
left={({ children }) => (
<div>
<p>'Left'</p>
{children}
</div>
)}
right={({ children }) => (
<div>
<p>'Right'</p>
{children}
</div>
)}
>
<p>
Since I am the `children`, I can be displayed regardless of whether `of` is truthy or falsy.
</p>
</Either>