react-transition-state 1.2.0-alpha.2 → 1.2.0-alpha.5
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
|
@@ -17,7 +17,8 @@ var getFullState = function getFullState(_state) {
|
|
|
17
17
|
_state: _state,
|
|
18
18
|
state: STATES[_state],
|
|
19
19
|
isEnter: _state < PRE_EXIT,
|
|
20
|
-
isMounted: _state !== UNMOUNTED
|
|
20
|
+
isMounted: _state !== UNMOUNTED,
|
|
21
|
+
isResolved: _state === ENTERED || _state > EXITING
|
|
21
22
|
};
|
|
22
23
|
};
|
|
23
24
|
var startOrEnd = function startOrEnd(unmounted) {
|
|
@@ -102,13 +103,9 @@ var useTransition = function useTransition(_temp) {
|
|
|
102
103
|
if (typeof toEnter !== 'boolean') toEnter = !enterStage;
|
|
103
104
|
|
|
104
105
|
if (toEnter) {
|
|
105
|
-
|
|
106
|
-
transitState(enter ? preEnter ? PRE_ENTER : ENTERING : ENTERED);
|
|
107
|
-
}
|
|
106
|
+
!enterStage && transitState(enter ? preEnter ? PRE_ENTER : ENTERING : ENTERED);
|
|
108
107
|
} else {
|
|
109
|
-
|
|
110
|
-
transitState(exit ? preExit ? PRE_EXIT : EXITING : startOrEnd(unmountOnExit));
|
|
111
|
-
}
|
|
108
|
+
enterStage && transitState(exit ? preExit ? PRE_EXIT : EXITING : startOrEnd(unmountOnExit));
|
|
112
109
|
}
|
|
113
110
|
}, [endTransition, onChange, enter, exit, preEnter, preExit, enterTimeout, exitTimeout, unmountOnExit]);
|
|
114
111
|
react.useEffect(function () {
|
|
@@ -119,24 +116,6 @@ var useTransition = function useTransition(_temp) {
|
|
|
119
116
|
return [STATES[state], toggle, endTransition];
|
|
120
117
|
};
|
|
121
118
|
|
|
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
119
|
var initialStateMap = new Map();
|
|
141
120
|
var initialConfigMap = new Map();
|
|
142
121
|
|
|
@@ -153,14 +132,26 @@ var updateState = function updateState(_ref) {
|
|
|
153
132
|
stateMap.set(key, state);
|
|
154
133
|
setStateMap(stateMap);
|
|
155
134
|
latestStateMap.current = stateMap;
|
|
156
|
-
onChange && onChange(
|
|
157
|
-
key: key
|
|
158
|
-
|
|
135
|
+
onChange && onChange({
|
|
136
|
+
key: key,
|
|
137
|
+
current: state
|
|
138
|
+
});
|
|
159
139
|
};
|
|
160
140
|
|
|
161
141
|
var useTransitionMap = function useTransitionMap(_temp) {
|
|
162
142
|
var _ref2 = _temp === void 0 ? {} : _temp,
|
|
163
|
-
singleEnter = _ref2.singleEnter
|
|
143
|
+
singleEnter = _ref2.singleEnter,
|
|
144
|
+
_ref2$enter = _ref2.enter,
|
|
145
|
+
enter = _ref2$enter === void 0 ? true : _ref2$enter,
|
|
146
|
+
_ref2$exit = _ref2.exit,
|
|
147
|
+
exit = _ref2$exit === void 0 ? true : _ref2$exit,
|
|
148
|
+
preEnter = _ref2.preEnter,
|
|
149
|
+
preExit = _ref2.preExit,
|
|
150
|
+
timeout = _ref2.timeout,
|
|
151
|
+
initialEntered = _ref2.initialEntered,
|
|
152
|
+
mountOnEnter = _ref2.mountOnEnter,
|
|
153
|
+
unmountOnExit = _ref2.unmountOnExit,
|
|
154
|
+
onChange = _ref2.onStateChange;
|
|
164
155
|
|
|
165
156
|
var _useState = react.useState(initialStateMap),
|
|
166
157
|
stateMap = _useState[0],
|
|
@@ -168,23 +159,25 @@ var useTransitionMap = function useTransitionMap(_temp) {
|
|
|
168
159
|
|
|
169
160
|
var latestStateMap = react.useRef(stateMap);
|
|
170
161
|
var configMap = react.useRef(initialConfigMap);
|
|
162
|
+
|
|
163
|
+
var _getTimeout = getTimeout(timeout),
|
|
164
|
+
enterTimeout = _getTimeout[0],
|
|
165
|
+
exitTimeout = _getTimeout[1];
|
|
166
|
+
|
|
171
167
|
var setItem = react.useCallback(function (key, config) {
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
168
|
+
var _ref3 = config || {},
|
|
169
|
+
_ref3$initialEntered = _ref3.initialEntered,
|
|
170
|
+
_initialEntered = _ref3$initialEntered === void 0 ? initialEntered : _ref3$initialEntered;
|
|
175
171
|
|
|
176
|
-
var
|
|
177
|
-
initialEntered = _config.initialEntered,
|
|
178
|
-
mountOnEnter = _config.mountOnEnter;
|
|
179
|
-
var newState = initialEntered ? ENTERED : startOrEnd(mountOnEnter);
|
|
172
|
+
var newState = _initialEntered ? ENTERED : startOrEnd(mountOnEnter);
|
|
180
173
|
updateState({
|
|
181
174
|
key: key,
|
|
182
175
|
newState: newState,
|
|
183
176
|
setStateMap: setStateMap,
|
|
184
177
|
latestStateMap: latestStateMap
|
|
185
178
|
});
|
|
186
|
-
configMap.current.set(key,
|
|
187
|
-
}, []);
|
|
179
|
+
configMap.current.set(key, {});
|
|
180
|
+
}, [initialEntered, mountOnEnter]);
|
|
188
181
|
var deleteItem = react.useCallback(function (key) {
|
|
189
182
|
var newStateMap = new Map(latestStateMap.current);
|
|
190
183
|
|
|
@@ -206,9 +199,7 @@ var useTransitionMap = function useTransitionMap(_temp) {
|
|
|
206
199
|
}
|
|
207
200
|
|
|
208
201
|
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;
|
|
202
|
+
timeoutId = _configMap$current$ge.timeoutId;
|
|
212
203
|
|
|
213
204
|
var newState = getEndState(stateObj._state, unmountOnExit);
|
|
214
205
|
newState && updateState({
|
|
@@ -219,7 +210,7 @@ var useTransitionMap = function useTransitionMap(_temp) {
|
|
|
219
210
|
timeoutId: timeoutId,
|
|
220
211
|
onChange: onChange
|
|
221
212
|
});
|
|
222
|
-
}, []);
|
|
213
|
+
}, [onChange, unmountOnExit]);
|
|
223
214
|
var toggle = react.useCallback(function (key, toEnter) {
|
|
224
215
|
var stateObj = latestStateMap.current.get(key);
|
|
225
216
|
|
|
@@ -229,16 +220,6 @@ var useTransitionMap = function useTransitionMap(_temp) {
|
|
|
229
220
|
}
|
|
230
221
|
|
|
231
222
|
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
223
|
|
|
243
224
|
var transitState = function transitState(newState) {
|
|
244
225
|
updateState({
|
|
@@ -246,14 +227,10 @@ var useTransitionMap = function useTransitionMap(_temp) {
|
|
|
246
227
|
newState: newState,
|
|
247
228
|
setStateMap: setStateMap,
|
|
248
229
|
latestStateMap: latestStateMap,
|
|
249
|
-
timeoutId: timeoutId,
|
|
230
|
+
timeoutId: config.timeoutId,
|
|
250
231
|
onChange: onChange
|
|
251
232
|
});
|
|
252
233
|
|
|
253
|
-
var _getTimeout = getTimeout(timeout),
|
|
254
|
-
enterTimeout = _getTimeout[0],
|
|
255
|
-
exitTimeout = _getTimeout[1];
|
|
256
|
-
|
|
257
234
|
switch (newState) {
|
|
258
235
|
case ENTERING:
|
|
259
236
|
if (enterTimeout >= 0) config.timeoutId = setTimeout(function () {
|
|
@@ -291,7 +268,7 @@ var useTransitionMap = function useTransitionMap(_temp) {
|
|
|
291
268
|
transitState(exit ? preExit ? PRE_EXIT : EXITING : startOrEnd(unmountOnExit));
|
|
292
269
|
}
|
|
293
270
|
}
|
|
294
|
-
}, [endTransition, singleEnter]);
|
|
271
|
+
}, [onChange, endTransition, singleEnter, enter, exit, preEnter, preExit, enterTimeout, exitTimeout, unmountOnExit]);
|
|
295
272
|
return {
|
|
296
273
|
stateMap: stateMap,
|
|
297
274
|
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.onStateChange;
|
|
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/dist/es/hooks/utils.js
CHANGED
|
@@ -11,7 +11,8 @@ var getFullState = function getFullState(_state) {
|
|
|
11
11
|
_state: _state,
|
|
12
12
|
state: STATES[_state],
|
|
13
13
|
isEnter: _state < PRE_EXIT,
|
|
14
|
-
isMounted: _state !== UNMOUNTED
|
|
14
|
+
isMounted: _state !== UNMOUNTED,
|
|
15
|
+
isResolved: _state === ENTERED || _state > EXITING
|
|
15
16
|
};
|
|
16
17
|
};
|
|
17
18
|
var startOrEnd = function startOrEnd(unmounted) {
|
package/package.json
CHANGED
package/types/index.d.ts
CHANGED
|
@@ -7,6 +7,13 @@ export type TransitionState =
|
|
|
7
7
|
| 'exited'
|
|
8
8
|
| 'unmounted';
|
|
9
9
|
|
|
10
|
+
export interface State {
|
|
11
|
+
state: TransitionState;
|
|
12
|
+
isMounted: boolean;
|
|
13
|
+
isEnter: boolean;
|
|
14
|
+
isResolved: boolean;
|
|
15
|
+
}
|
|
16
|
+
|
|
10
17
|
export interface TransitionOptions {
|
|
11
18
|
initialEntered?: boolean;
|
|
12
19
|
mountOnEnter?: boolean;
|
|
@@ -19,26 +26,27 @@ export interface TransitionOptions {
|
|
|
19
26
|
onChange?: (event: { state: TransitionState }) => void;
|
|
20
27
|
}
|
|
21
28
|
|
|
22
|
-
export
|
|
23
|
-
|
|
24
|
-
) => [TransitionState, (toEnter?: boolean) => void, () => void];
|
|
25
|
-
|
|
26
|
-
interface State {
|
|
27
|
-
state: TransitionState;
|
|
28
|
-
isMounted: boolean;
|
|
29
|
-
isEnter: boolean;
|
|
29
|
+
export interface TransitionItemOptions {
|
|
30
|
+
initialEntered?: boolean;
|
|
30
31
|
}
|
|
31
32
|
|
|
32
33
|
export interface TransitionMapOptions<K> extends Omit<TransitionOptions, 'onChange'> {
|
|
33
|
-
|
|
34
|
+
singleEnter?: boolean;
|
|
35
|
+
onStateChange?: (event: { key: K; current: State }) => void;
|
|
34
36
|
}
|
|
35
37
|
|
|
36
|
-
export
|
|
38
|
+
export type TransitionResult = [TransitionState, (toEnter?: boolean) => void, () => void];
|
|
39
|
+
|
|
40
|
+
export interface TransitionMapResult<K> {
|
|
37
41
|
stateMap: Omit<Map<K, State>, 'clear' | 'delete' | 'set'>;
|
|
38
42
|
toggle: (key: K, toEnter?: boolean) => void;
|
|
39
43
|
endTransition: (key: K) => void;
|
|
40
|
-
setItem: (key: K, options?:
|
|
44
|
+
setItem: (key: K, options?: TransitionItemOptions) => void;
|
|
41
45
|
deleteItem: (key: K) => boolean;
|
|
42
|
-
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export const useTransition: (options?: TransitionOptions) => TransitionResult;
|
|
49
|
+
|
|
50
|
+
export const useTransitionMap: <K>(options?: TransitionMapOptions<K>) => TransitionMapResult<K>;
|
|
43
51
|
|
|
44
52
|
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 };
|