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
|
-
|
|
106
|
-
transitState(enter ? preEnter ? PRE_ENTER : ENTERING : ENTERED);
|
|
107
|
-
}
|
|
105
|
+
!enterStage && transitState(enter ? preEnter ? PRE_ENTER : ENTERING : ENTERED);
|
|
108
106
|
} else {
|
|
109
|
-
|
|
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(
|
|
157
|
-
key: key
|
|
158
|
-
|
|
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
|
-
|
|
173
|
-
|
|
174
|
-
|
|
167
|
+
var _ref3 = config || {},
|
|
168
|
+
_ref3$initialEntered = _ref3.initialEntered,
|
|
169
|
+
_initialEntered = _ref3$initialEntered === void 0 ? initialEntered : _ref3$initialEntered;
|
|
175
170
|
|
|
176
|
-
var
|
|
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,
|
|
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
|
-
|
|
69
|
-
transitState(enter ? preEnter ? PRE_ENTER : ENTERING : ENTERED);
|
|
70
|
-
}
|
|
68
|
+
!enterStage && transitState(enter ? preEnter ? PRE_ENTER : ENTERING : ENTERED);
|
|
71
69
|
} else {
|
|
72
|
-
|
|
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
|
|
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(
|
|
22
|
-
key: key
|
|
23
|
-
|
|
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
|
-
|
|
38
|
-
|
|
39
|
-
|
|
53
|
+
var _ref3 = config || {},
|
|
54
|
+
_ref3$initialEntered = _ref3.initialEntered,
|
|
55
|
+
_initialEntered = _ref3$initialEntered === void 0 ? initialEntered : _ref3$initialEntered;
|
|
40
56
|
|
|
41
|
-
var
|
|
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,
|
|
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
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
|
|
29
|
-
|
|
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
|
|
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 };
|