Skip to content

Commit 5ce0de5

Browse files
committed
Merge branch 'dlmr-fix-memory-leak'
2 parents 42c53e7 + e506bbe commit 5ce0de5

File tree

3 files changed

+8
-21
lines changed

3 files changed

+8
-21
lines changed

src/index.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import _ from 'lodash';
22
import extendReactClass from './extendReactClass';
33
import wrapStatelessFunction from './wrapStatelessFunction';
4+
import makeConfiguration from './makeConfiguration';
45

56
/**
67
* @see https://github.com/gajus/react-css-modules#options
@@ -20,10 +21,12 @@ const isReactComponent = (maybeReactComponent: any): boolean => {
2021
const functionConstructor = (Component: Function, defaultStyles: Object, options: TypeOptions): Function => {
2122
let decoratedClass;
2223

24+
const configuration = makeConfiguration(options);
25+
2326
if (isReactComponent(Component)) {
24-
decoratedClass = extendReactClass(Component, defaultStyles, options);
27+
decoratedClass = extendReactClass(Component, defaultStyles, configuration);
2528
} else {
26-
decoratedClass = wrapStatelessFunction(Component, defaultStyles, options);
29+
decoratedClass = wrapStatelessFunction(Component, defaultStyles, configuration);
2730
}
2831

2932
if (Component.displayName) {

src/linkClass.js

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import React, {
33
ReactElement
44
} from 'react';
55
import objectUnfreeze from 'object-unfreeze';
6-
import makeConfiguration from './makeConfiguration';
76
import isIterable from './isIterable';
87
import parseStyleName from './parseStyleName';
98
import generateAppendClassName from './generateAppendClassName';
@@ -61,15 +60,13 @@ const linkElement = (element: ReactElement, styles: Object, configuration: Objec
6160
/**
6261
* @param {ReactElement} element
6362
* @param {Object} styles CSS modules class map.
64-
* @param {CSSModules~Options} userConfiguration
63+
* @param {CSSModules~Options} configuration
6564
*/
66-
export default (element: ReactElement, styles = {}, userConfiguration): ReactElement => {
65+
export default (element: ReactElement, styles = {}, configuration = {}): ReactElement => {
6766
// @see https://github.com/gajus/react-css-modules/pull/30
6867
if (!_.isObject(element)) {
6968
return element;
7069
}
7170

72-
const configuration = makeConfiguration(userConfiguration);
73-
7471
return linkElement(element, styles, configuration);
7572
};

src/makeConfiguration.js

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
11
import _ from 'lodash';
2-
import Map from './simple-map';
3-
4-
const userConfigurationIndex = new Map();
52

63
/**
74
* @typedef CSSModules~Options
@@ -15,15 +12,7 @@ const userConfigurationIndex = new Map();
1512
* @returns {CSSModules~Options}
1613
*/
1714
export default (userConfiguration = {}) => {
18-
let configuration;
19-
20-
configuration = userConfigurationIndex.get(userConfiguration);
21-
22-
if (configuration) {
23-
return configuration;
24-
}
25-
26-
configuration = {
15+
const configuration = {
2716
allowMultiple: false,
2817
errorWhenNotFound: true
2918
};
@@ -40,7 +29,5 @@ export default (userConfiguration = {}) => {
4029
configuration[name] = value;
4130
});
4231

43-
userConfigurationIndex.set(userConfiguration, configuration);
44-
4532
return configuration;
4633
};

0 commit comments

Comments
 (0)