react-transition-state 1.2.0-alpha.3 → 1.2.0-alpha.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cjs/index.js CHANGED
@@ -102,13 +102,9 @@ var useTransition = function useTransition(_temp) {
102
102
  if (typeof toEnter !== 'boolean') toEnter = !enterStage;
103
103
 
104
104
  if (toEnter) {
105
- if (!enterStage) {
106
- transitState(enter ? preEnter ? PRE_ENTER : ENTERING : ENTERED);
107
- }
105
+ !enterStage && transitState(enter ? preEnter ? PRE_ENTER : ENTERING : ENTERED);
108
106
  } else {
109
- if (enterStage) {
110
- transitState(exit ? preExit ? PRE_EXIT : EXITING : startOrEnd(unmountOnExit));
111
- }
107
+ enterStage && transitState(exit ? preExit ? PRE_EXIT : EXITING : startOrEnd(unmountOnExit));
112
108
  }
113
109
  }, [endTransition, onChange, enter, exit, preEnter, preExit, enterTimeout, exitTimeout, unmountOnExit]);
114
110
  react.useEffect(function () {
@@ -119,24 +115,6 @@ var useTransition = function useTransition(_temp) {
119
115
  return [STATES[state], toggle, endTransition];
120
116
  };
121
117
 
122
- function _extends() {
123
- _extends = Object.assign || function (target) {
124
- for (var i = 1; i < arguments.length; i++) {
125
- var source = arguments[i];
126
-
127
- for (var key in source) {
128
- if (Object.prototype.hasOwnProperty.call(source, key)) {
129
- target[key] = source[key];
130
- }
131
- }
132
- }
133
-
134
- return target;
135
- };
136
-
137
- return _extends.apply(this, arguments);
138
- }
139
-
140
118
  var initialStateMap = new Map();
141
119
  var initialConfigMap = new Map();
142
120
 
@@ -153,14 +131,26 @@ var updateState = function updateState(_ref) {
153
131
  stateMap.set(key, state);
154
132
  setStateMap(stateMap);
155
133
  latestStateMap.current = stateMap;
156
- onChange && onChange(_extends({
157
- key: key
158
- }, state));
134
+ onChange && onChange({
135
+ key: key,
136
+ current: state
137
+ });
159
138
  };
160
139
 
161
140
  var useTransitionMap = function useTransitionMap(_temp) {
162
141
  var _ref2 = _temp === void 0 ? {} : _temp,
163
- singleEnter = _ref2.singleEnter;
142
+ singleEnter = _ref2.singleEnter,
143
+ _ref2$enter = _ref2.enter,
144
+ enter = _ref2$enter === void 0 ? true : _ref2$enter,
145
+ _ref2$exit = _ref2.exit,
146
+ exit = _ref2$exit === void 0 ? true : _ref2$exit,
147
+ preEnter = _ref2.preEnter,
148
+ preExit = _ref2.preExit,
149
+ timeout = _ref2.timeout,
150
+ initialEntered = _ref2.initialEntered,
151
+ mountOnEnter = _ref2.mountOnEnter,
152
+ unmountOnExit = _ref2.unmountOnExit,
153
+ onChange = _ref2.onChange;
164
154
 
165
155
  var _useState = react.useState(initialStateMap),
166
156
  stateMap = _useState[0],
@@ -168,23 +158,25 @@ var useTransitionMap = function useTransitionMap(_temp) {
168
158
 
169
159
  var latestStateMap = react.useRef(stateMap);
170
160
  var configMap = react.useRef(initialConfigMap);
161
+
162
+ var _getTimeout = getTimeout(timeout),
163
+ enterTimeout = _getTimeout[0],
164
+ exitTimeout = _getTimeout[1];
165
+
171
166
  var setItem = react.useCallback(function (key, config) {
172
- if (config === void 0) {
173
- config = {};
174
- }
167
+ var _ref3 = config || {},
168
+ _ref3$initialEntered = _ref3.initialEntered,
169
+ _initialEntered = _ref3$initialEntered === void 0 ? initialEntered : _ref3$initialEntered;
175
170
 
176
- var _config = config,
177
- initialEntered = _config.initialEntered,
178
- mountOnEnter = _config.mountOnEnter;
179
- var newState = initialEntered ? ENTERED : startOrEnd(mountOnEnter);
171
+ var newState = _initialEntered ? ENTERED : startOrEnd(mountOnEnter);
180
172
  updateState({
181
173
  key: key,
182
174
  newState: newState,
183
175
  setStateMap: setStateMap,
184
176
  latestStateMap: latestStateMap
185
177
  });
186
- configMap.current.set(key, _extends({}, config));
187
- }, []);
178
+ configMap.current.set(key, {});
179
+ }, [initialEntered, mountOnEnter]);
188
180
  var deleteItem = react.useCallback(function (key) {
189
181
  var newStateMap = new Map(latestStateMap.current);
190
182
 
@@ -206,9 +198,7 @@ var useTransitionMap = function useTransitionMap(_temp) {
206
198
  }
207
199
 
208
200
  var _configMap$current$ge = configMap.current.get(key),
209
- timeoutId = _configMap$current$ge.timeoutId,
210
- onChange = _configMap$current$ge.onChange,
211
- unmountOnExit = _configMap$current$ge.unmountOnExit;
201
+ timeoutId = _configMap$current$ge.timeoutId;
212
202
 
213
203
  var newState = getEndState(stateObj._state, unmountOnExit);
214
204
  newState && updateState({
@@ -219,7 +209,7 @@ var useTransitionMap = function useTransitionMap(_temp) {
219
209
  timeoutId: timeoutId,
220
210
  onChange: onChange
221
211
  });
222
- }, []);
212
+ }, [onChange, unmountOnExit]);
223
213
  var toggle = react.useCallback(function (key, toEnter) {
224
214
  var stateObj = latestStateMap.current.get(key);
225
215
 
@@ -229,16 +219,6 @@ var useTransitionMap = function useTransitionMap(_temp) {
229
219
  }
230
220
 
231
221
  var config = configMap.current.get(key);
232
- var _config$enter = config.enter,
233
- enter = _config$enter === void 0 ? true : _config$enter,
234
- _config$exit = config.exit,
235
- exit = _config$exit === void 0 ? true : _config$exit,
236
- preEnter = config.preEnter,
237
- preExit = config.preExit,
238
- timeout = config.timeout,
239
- unmountOnExit = config.unmountOnExit,
240
- onChange = config.onChange,
241
- timeoutId = config.timeoutId;
242
222
 
243
223
  var transitState = function transitState(newState) {
244
224
  updateState({
@@ -246,14 +226,10 @@ var useTransitionMap = function useTransitionMap(_temp) {
246
226
  newState: newState,
247
227
  setStateMap: setStateMap,
248
228
  latestStateMap: latestStateMap,
249
- timeoutId: timeoutId,
229
+ timeoutId: config.timeoutId,
250
230
  onChange: onChange
251
231
  });
252
232
 
253
- var _getTimeout = getTimeout(timeout),
254
- enterTimeout = _getTimeout[0],
255
- exitTimeout = _getTimeout[1];
256
-
257
233
  switch (newState) {
258
234
  case ENTERING:
259
235
  if (enterTimeout >= 0) config.timeoutId = setTimeout(function () {
@@ -291,7 +267,7 @@ var useTransitionMap = function useTransitionMap(_temp) {
291
267
  transitState(exit ? preExit ? PRE_EXIT : EXITING : startOrEnd(unmountOnExit));
292
268
  }
293
269
  }
294
- }, [endTransition, singleEnter]);
270
+ }, [onChange, endTransition, singleEnter, enter, exit, preEnter, preExit, enterTimeout, exitTimeout, unmountOnExit]);
295
271
  return {
296
272
  stateMap: stateMap,
297
273
  toggle: toggle,
@@ -65,13 +65,9 @@ var useTransition = function useTransition(_temp) {
65
65
  if (typeof toEnter !== 'boolean') toEnter = !enterStage;
66
66
 
67
67
  if (toEnter) {
68
- if (!enterStage) {
69
- transitState(enter ? preEnter ? PRE_ENTER : ENTERING : ENTERED);
70
- }
68
+ !enterStage && transitState(enter ? preEnter ? PRE_ENTER : ENTERING : ENTERED);
71
69
  } else {
72
- if (enterStage) {
73
- transitState(exit ? preExit ? PRE_EXIT : EXITING : startOrEnd(unmountOnExit));
74
- }
70
+ enterStage && transitState(exit ? preExit ? PRE_EXIT : EXITING : startOrEnd(unmountOnExit));
75
71
  }
76
72
  }, [endTransition, onChange, enter, exit, preEnter, preExit, enterTimeout, exitTimeout, unmountOnExit]);
77
73
  useEffect(function () {
@@ -1,6 +1,5 @@
1
- import { extends as _extends } from '../_virtual/_rollupPluginBabelHelpers.js';
2
1
  import { useState, useRef, useCallback } from 'react';
3
- import { ENTERED, startOrEnd, getEndState, PRE_EXIT, EXITING, PRE_ENTER, ENTERING, getFullState, getTimeout } from './utils.js';
2
+ import { getTimeout, ENTERED, startOrEnd, getEndState, PRE_EXIT, EXITING, PRE_ENTER, ENTERING, getFullState } from './utils.js';
4
3
 
5
4
  var initialStateMap = new Map();
6
5
  var initialConfigMap = new Map();
@@ -18,14 +17,26 @@ var updateState = function updateState(_ref) {
18
17
  stateMap.set(key, state);
19
18
  setStateMap(stateMap);
20
19
  latestStateMap.current = stateMap;
21
- onChange && onChange(_extends({
22
- key: key
23
- }, state));
20
+ onChange && onChange({
21
+ key: key,
22
+ current: state
23
+ });
24
24
  };
25
25
 
26
26
  var useTransitionMap = function useTransitionMap(_temp) {
27
27
  var _ref2 = _temp === void 0 ? {} : _temp,
28
- singleEnter = _ref2.singleEnter;
28
+ singleEnter = _ref2.singleEnter,
29
+ _ref2$enter = _ref2.enter,
30
+ enter = _ref2$enter === void 0 ? true : _ref2$enter,
31
+ _ref2$exit = _ref2.exit,
32
+ exit = _ref2$exit === void 0 ? true : _ref2$exit,
33
+ preEnter = _ref2.preEnter,
34
+ preExit = _ref2.preExit,
35
+ timeout = _ref2.timeout,
36
+ initialEntered = _ref2.initialEntered,
37
+ mountOnEnter = _ref2.mountOnEnter,
38
+ unmountOnExit = _ref2.unmountOnExit,
39
+ onChange = _ref2.onChange;
29
40
 
30
41
  var _useState = useState(initialStateMap),
31
42
  stateMap = _useState[0],
@@ -33,23 +44,25 @@ var useTransitionMap = function useTransitionMap(_temp) {
33
44
 
34
45
  var latestStateMap = useRef(stateMap);
35
46
  var configMap = useRef(initialConfigMap);
47
+
48
+ var _getTimeout = getTimeout(timeout),
49
+ enterTimeout = _getTimeout[0],
50
+ exitTimeout = _getTimeout[1];
51
+
36
52
  var setItem = useCallback(function (key, config) {
37
- if (config === void 0) {
38
- config = {};
39
- }
53
+ var _ref3 = config || {},
54
+ _ref3$initialEntered = _ref3.initialEntered,
55
+ _initialEntered = _ref3$initialEntered === void 0 ? initialEntered : _ref3$initialEntered;
40
56
 
41
- var _config = config,
42
- initialEntered = _config.initialEntered,
43
- mountOnEnter = _config.mountOnEnter;
44
- var newState = initialEntered ? ENTERED : startOrEnd(mountOnEnter);
57
+ var newState = _initialEntered ? ENTERED : startOrEnd(mountOnEnter);
45
58
  updateState({
46
59
  key: key,
47
60
  newState: newState,
48
61
  setStateMap: setStateMap,
49
62
  latestStateMap: latestStateMap
50
63
  });
51
- configMap.current.set(key, _extends({}, config));
52
- }, []);
64
+ configMap.current.set(key, {});
65
+ }, [initialEntered, mountOnEnter]);
53
66
  var deleteItem = useCallback(function (key) {
54
67
  var newStateMap = new Map(latestStateMap.current);
55
68
 
@@ -71,9 +84,7 @@ var useTransitionMap = function useTransitionMap(_temp) {
71
84
  }
72
85
 
73
86
  var _configMap$current$ge = configMap.current.get(key),
74
- timeoutId = _configMap$current$ge.timeoutId,
75
- onChange = _configMap$current$ge.onChange,
76
- unmountOnExit = _configMap$current$ge.unmountOnExit;
87
+ timeoutId = _configMap$current$ge.timeoutId;
77
88
 
78
89
  var newState = getEndState(stateObj._state, unmountOnExit);
79
90
  newState && updateState({
@@ -84,7 +95,7 @@ var useTransitionMap = function useTransitionMap(_temp) {
84
95
  timeoutId: timeoutId,
85
96
  onChange: onChange
86
97
  });
87
- }, []);
98
+ }, [onChange, unmountOnExit]);
88
99
  var toggle = useCallback(function (key, toEnter) {
89
100
  var stateObj = latestStateMap.current.get(key);
90
101
 
@@ -94,16 +105,6 @@ var useTransitionMap = function useTransitionMap(_temp) {
94
105
  }
95
106
 
96
107
  var config = configMap.current.get(key);
97
- var _config$enter = config.enter,
98
- enter = _config$enter === void 0 ? true : _config$enter,
99
- _config$exit = config.exit,
100
- exit = _config$exit === void 0 ? true : _config$exit,
101
- preEnter = config.preEnter,
102
- preExit = config.preExit,
103
- timeout = config.timeout,
104
- unmountOnExit = config.unmountOnExit,
105
- onChange = config.onChange,
106
- timeoutId = config.timeoutId;
107
108
 
108
109
  var transitState = function transitState(newState) {
109
110
  updateState({
@@ -111,14 +112,10 @@ var useTransitionMap = function useTransitionMap(_temp) {
111
112
  newState: newState,
112
113
  setStateMap: setStateMap,
113
114
  latestStateMap: latestStateMap,
114
- timeoutId: timeoutId,
115
+ timeoutId: config.timeoutId,
115
116
  onChange: onChange
116
117
  });
117
118
 
118
- var _getTimeout = getTimeout(timeout),
119
- enterTimeout = _getTimeout[0],
120
- exitTimeout = _getTimeout[1];
121
-
122
119
  switch (newState) {
123
120
  case ENTERING:
124
121
  if (enterTimeout >= 0) config.timeoutId = setTimeout(function () {
@@ -156,7 +153,7 @@ var useTransitionMap = function useTransitionMap(_temp) {
156
153
  transitState(exit ? preExit ? PRE_EXIT : EXITING : startOrEnd(unmountOnExit));
157
154
  }
158
155
  }
159
- }, [endTransition, singleEnter]);
156
+ }, [onChange, endTransition, singleEnter, enter, exit, preEnter, preExit, enterTimeout, exitTimeout, unmountOnExit]);
160
157
  return {
161
158
  stateMap: stateMap,
162
159
  toggle: toggle,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-transition-state",
3
- "version": "1.2.0-alpha.3",
3
+ "version": "1.2.0-alpha.4",
4
4
  "description": "Zero dependency, 0.7KB react-transition-group alternative.",
5
5
  "author": "Zheng Song",
6
6
  "license": "MIT",
package/types/index.d.ts CHANGED
@@ -25,12 +25,13 @@ export interface TransitionOptions {
25
25
  onChange?: (event: { state: TransitionState }) => void;
26
26
  }
27
27
 
28
- export interface TransitionItemOptions<K> extends Omit<TransitionOptions, 'onChange'> {
29
- onChange?: (event: { key: K } & State) => void;
28
+ export interface TransitionItemOptions {
29
+ initialEntered?: boolean;
30
30
  }
31
31
 
32
- export interface TransitionMapOptions {
32
+ export interface TransitionMapOptions<K> extends Omit<TransitionOptions, 'onChange'> {
33
33
  singleEnter?: boolean;
34
+ onChange?: (event: { key: K; current: State }) => void;
34
35
  }
35
36
 
36
37
  export type TransitionResult = [TransitionState, (toEnter?: boolean) => void, () => void];
@@ -39,12 +40,12 @@ export interface TransitionMapResult<K> {
39
40
  stateMap: Omit<Map<K, State>, 'clear' | 'delete' | 'set'>;
40
41
  toggle: (key: K, toEnter?: boolean) => void;
41
42
  endTransition: (key: K) => void;
42
- setItem: (key: K, options?: TransitionItemOptions<K>) => void;
43
+ setItem: (key: K, options?: TransitionItemOptions) => void;
43
44
  deleteItem: (key: K) => boolean;
44
45
  }
45
46
 
46
47
  export const useTransition: (options?: TransitionOptions) => TransitionResult;
47
48
 
48
- export const useTransitionMap: <K>(options?: TransitionMapOptions) => TransitionMapResult<K>;
49
+ export const useTransitionMap: <K>(options?: TransitionMapOptions<K>) => TransitionMapResult<K>;
49
50
 
50
51
  export default useTransition;
@@ -1,19 +0,0 @@
1
- function _extends() {
2
- _extends = Object.assign || function (target) {
3
- for (var i = 1; i < arguments.length; i++) {
4
- var source = arguments[i];
5
-
6
- for (var key in source) {
7
- if (Object.prototype.hasOwnProperty.call(source, key)) {
8
- target[key] = source[key];
9
- }
10
- }
11
- }
12
-
13
- return target;
14
- };
15
-
16
- return _extends.apply(this, arguments);
17
- }
18
-
19
- export { _extends as extends };