😈 A higher-order component for keeping Immutable objects outside your presentational components
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci
.github
docs
src
tests
website Upgrade docusaurus to 1.7.1 (#43) Jan 24, 2019
.all-contributorsrc
.babelrc Get tests passing Nov 19, 2018
.codecov.yml Update CI config (#3) Nov 19, 2018
.eslintignore
.eslintrc.js
.gitignore
.nvmrc
.yvmrc Get tests passing Nov 19, 2018
CODE_OF_CONDUCT.md
CONTRIBUTING.md Update contributors Nov 22, 2018
LICENSE
README.md
greenkeeper.json
package.json Update dependencies to enable Greenkeeper 🌴 (#48) Feb 11, 2019
yarn.lock

README.md

with-immutable-props-to-js

Logo

npm Builds npm downloads codecov Greenkeeper badge

All Contributors Slack workspace Maturity badge - level 3

A higher-order component for keeping Immutable objects outside your presentational components

Installation

yarn add with-immutable-props-to-js

or

npm install with-immutable-props-to-js

This library also lists react, react-dom, and immutable as peer dependencies, so make sure they are installed in your project as well.

Usage

import withImmutablePropsToJS from 'with-immutable-props-to-js'

If you're not using ECMAScript modules:

const withImmutablePropsToJS = require('with-immutable-props-to-js').default

Example:

import React from 'react'
import { connect } from 'react-redux'
import withImmutablePropsToJS from 'with-immutable-props-to-js'

const MyDumbComponent = props => {
   // ...
   // props.objectProp is turned into a plain JavaScript object
   // props.arrayProp is turn into a plain JavaScript array
}

MyDumbComponent.propTypes = {
   objectProp: PropTypes.object,
   arrayProp: PropTypes.array,
}

const mapStateToProps = state => ({
   objectProp: mySelectorThatReturnsImmutableMap(state),
   arrayProp: mySelectorThatReturnsImmutableList(state),
})

export default connect(mapStateToProps)(withImmutablePropsToJS(MyDumbComponent))

Motivation

You can read about the rationale for this higher-order component here.

Contributors

For information on how to contribute to this project, check out the contributing guide.

Thanks goes to these wonderful people (emoji key):


Michael Rose

💻 📖 🚇

Brandon Baksh

🚇

greenkeeper[bot]

🚇

Jake Bolam

📖 🚇

Sanchit Gera

📖

Siavash Mahmoudian

🚇

monicamm95

🎨

Danilo Matamoros

💻

This project follows the all-contributors specification. Contributions of any kind welcome!

Credits

Special thanks to Carol Skelly for donating the 'tophat' GitHub organization.