😈 A higher-order component for keeping Immutable objects outside your presentational components
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
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
CODE_OF_CONDUCT.md
CONTRIBUTING.md
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.