Skip to content

Commit aef2bad

Browse files
authored
fix: use immer will throw error in IE11 (#120)
* fix: use immer will throw error * fix: fix lint * fix: fix by the comment * fix: fix lint error * chore: update version
1 parent bba4e12 commit aef2bad

File tree

4 files changed

+17
-9
lines changed

4 files changed

+17
-9
lines changed

examples/counter/package.json

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
"dependencies": {
66
"@ice/store": "^1.3.4",
77
"react": "^16.8.6",
8+
"react-app-polyfill": "^1.0.6",
89
"react-dom": "^16.8.6"
910
},
1011
"devDependencies": {
@@ -23,12 +24,14 @@
2324
"production": [
2425
">0.2%",
2526
"not dead",
26-
"not op_mini all"
27+
"not op_mini all",
28+
"ie 11"
2729
],
2830
"development": [
2931
"last 1 chrome version",
3032
"last 1 firefox version",
31-
"last 1 safari version"
33+
"last 1 safari version",
34+
"ie 11"
3235
]
3336
}
3437
}

examples/counter/src/index.tsx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,17 @@
11
import React from 'react';
22
import ReactDOM from 'react-dom';
33
import { createStore } from '@ice/store';
4+
import 'react-app-polyfill/ie11';
5+
import 'react-app-polyfill/stable';
46

57
const delay = (time) => new Promise((resolve) => setTimeout(() => resolve(), time));
68

79
// 1️⃣ Use a model to define your store
810
const counter = {
911
state: 0,
1012
reducers: {
11-
increment:(prevState) => prevState + 1,
12-
decrement:(prevState) => prevState - 1,
13+
increment: (prevState) => prevState + 1,
14+
decrement: (prevState) => prevState - 1,
1315
},
1416
effects: () => ({
1517
async asyncDecrement() {
@@ -29,7 +31,7 @@ const store = createStore(models);
2931
// 3️⃣ Consume model
3032
const { useModel } = store;
3133
function Counter() {
32-
const [ count, dispatchers ] = useModel('counter');
34+
const [count, dispatchers] = useModel('counter');
3335
const { increment, asyncDecrement } = dispatchers;
3436
return (
3537
<div>

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@ice/store",
3-
"version": "1.4.1",
3+
"version": "1.4.2",
44
"description": "Simple and friendly state for React",
55
"main": "lib/index.js",
66
"files": [
@@ -72,4 +72,4 @@
7272
"redux": "^4.0.5",
7373
"redux-thunk": "^2.3.0"
7474
}
75-
}
75+
}

src/plugins/immer.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
1-
import produce from 'immer';
1+
import produce, { enableES5 } from 'immer';
22
import { combineReducers, ReducersMapObject } from 'redux';
33
import * as T from '../types';
44

5+
// make it work in IE11
6+
enableES5();
7+
58
export interface ImmerConfig {
69
blacklist?: string[];
710
}
811

912
function createCombineReducersWithImmer(blacklist: string[] = []) {
10-
return function(reducers: ReducersMapObject) {
13+
return function (reducers: ReducersMapObject) {
1114
const reducersWithImmer: ReducersMapObject<any, T.Action<any>> = {};
1215
// reducer must return value because literal don't support immer
1316

0 commit comments

Comments
 (0)