google-map-react/develop/utils/props2Stream.js
Joe Maffei f5bb716291 Add UNSAFE_ prefix to deprecated lifecycle methods (#778)
* add UNSAFE_ prefix to deprecated lifecycle methods

* add missing line break
2019-09-20 19:41:26 +02:00

32 lines
879 B
JavaScript

import { Component } from 'react';
import { BehaviorSubject } from 'rxjs/BehaviorSubject';
import 'rxjs/add/operator/distinctUntilChanged';
import omit from './omit';
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
);
UNSAFE_componentWillReceiveProps(nextProps) {
this.props$.next(nextProps[propName]);
}
render() {
return factory({
...omit(this.props, [propName]),
[`${propName}$`]: this.props$,
});
}
};
};
export default createHelper(prop2Stream, 'prop2Stream');