google-map-react/develop/utils/props2Stream.js
Michael Diego d457d1cd29
Fix recompose (#547)
* Create our own createHelper, its not in recompose anymore

* Use our withStateSelector

* Proper apiKey usage

* Replace apiKey with bootstrapUrlKeys

* No need of true value in html

* Use lodash.omit instead in dev

* Remove unused file

* Remove unnecessary extra folder utils

* Upgrade recompose again

* Oops! Move lodash.omit to devDependencies

* Fix webpack files styles

* Make examples bigger in width
2018-03-21 16:54:15 -07:00

32 lines
877 B
JavaScript

import { Component } from 'react';
import omit from 'lodash.omit';
import { BehaviorSubject } from 'rxjs/BehaviorSubject';
import 'rxjs/add/operator/distinctUntilChanged';
import createHelper from './createHelper';
import createEagerFactory from './createEagerFactory';
const prop2Stream = (propName, comparator = (a, b) => a === b) =>
BaseComponent => {
const factory = createEagerFactory(BaseComponent);
return class extends Component {
props$ = new BehaviorSubject(this.props[propName]).distinctUntilChanged(
comparator
);
componentWillReceiveProps(nextProps) {
this.props$.next(nextProps[propName]);
}
render() {
return factory({
...omit(this.props, [propName]),
[`${propName}$`]: this.props$,
});
}
};
};
export default createHelper(prop2Stream, 'prop2Stream');