react-transition-state 1.2.0-alpha.1 → 1.2.0-alpha.2
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
|
@@ -12,6 +12,14 @@ var EXITING = 4;
|
|
|
12
12
|
var EXITED = 5;
|
|
13
13
|
var UNMOUNTED = 6;
|
|
14
14
|
var STATES = ['preEnter', 'entering', 'entered', 'preExit', 'exiting', 'exited', 'unmounted'];
|
|
15
|
+
var getFullState = function getFullState(_state) {
|
|
16
|
+
return {
|
|
17
|
+
_state: _state,
|
|
18
|
+
state: STATES[_state],
|
|
19
|
+
isEnter: _state < PRE_EXIT,
|
|
20
|
+
isMounted: _state !== UNMOUNTED
|
|
21
|
+
};
|
|
22
|
+
};
|
|
15
23
|
var startOrEnd = function startOrEnd(unmounted) {
|
|
16
24
|
return unmounted ? UNMOUNTED : EXITED;
|
|
17
25
|
};
|
|
@@ -111,72 +119,100 @@ var useTransition = function useTransition(_temp) {
|
|
|
111
119
|
return [STATES[state], toggle, endTransition];
|
|
112
120
|
};
|
|
113
121
|
|
|
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
|
+
|
|
114
140
|
var initialStateMap = new Map();
|
|
115
141
|
var initialConfigMap = new Map();
|
|
116
142
|
|
|
117
143
|
var updateState = function updateState(_ref) {
|
|
118
|
-
var
|
|
144
|
+
var key = _ref.key,
|
|
119
145
|
_state = _ref.newState,
|
|
120
146
|
setStateMap = _ref.setStateMap,
|
|
121
147
|
latestStateMap = _ref.latestStateMap,
|
|
122
148
|
timeoutId = _ref.timeoutId,
|
|
123
149
|
onChange = _ref.onChange;
|
|
124
150
|
clearTimeout(timeoutId);
|
|
125
|
-
var state =
|
|
126
|
-
state: STATES[_state],
|
|
127
|
-
_state: _state
|
|
128
|
-
};
|
|
151
|
+
var state = getFullState(_state);
|
|
129
152
|
var stateMap = new Map(latestStateMap.current);
|
|
130
|
-
stateMap.set(
|
|
153
|
+
stateMap.set(key, state);
|
|
131
154
|
setStateMap(stateMap);
|
|
132
155
|
latestStateMap.current = stateMap;
|
|
133
|
-
onChange && onChange(
|
|
156
|
+
onChange && onChange(_extends({
|
|
157
|
+
key: key
|
|
158
|
+
}, state));
|
|
134
159
|
};
|
|
135
160
|
|
|
136
|
-
var useTransitionMap = function useTransitionMap() {
|
|
161
|
+
var useTransitionMap = function useTransitionMap(_temp) {
|
|
162
|
+
var _ref2 = _temp === void 0 ? {} : _temp,
|
|
163
|
+
singleEnter = _ref2.singleEnter;
|
|
164
|
+
|
|
137
165
|
var _useState = react.useState(initialStateMap),
|
|
138
166
|
stateMap = _useState[0],
|
|
139
167
|
setStateMap = _useState[1];
|
|
140
168
|
|
|
141
169
|
var latestStateMap = react.useRef(stateMap);
|
|
142
170
|
var configMap = react.useRef(initialConfigMap);
|
|
143
|
-
var
|
|
144
|
-
|
|
145
|
-
|
|
171
|
+
var setItem = react.useCallback(function (key, config) {
|
|
172
|
+
if (config === void 0) {
|
|
173
|
+
config = {};
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
var _config = config,
|
|
177
|
+
initialEntered = _config.initialEntered,
|
|
178
|
+
mountOnEnter = _config.mountOnEnter;
|
|
146
179
|
var newState = initialEntered ? ENTERED : startOrEnd(mountOnEnter);
|
|
147
180
|
updateState({
|
|
148
|
-
|
|
181
|
+
key: key,
|
|
149
182
|
newState: newState,
|
|
150
183
|
setStateMap: setStateMap,
|
|
151
184
|
latestStateMap: latestStateMap
|
|
152
185
|
});
|
|
153
|
-
configMap.current.set(
|
|
186
|
+
configMap.current.set(key, _extends({}, config));
|
|
154
187
|
}, []);
|
|
155
|
-
var
|
|
188
|
+
var deleteItem = react.useCallback(function (key) {
|
|
156
189
|
var newStateMap = new Map(latestStateMap.current);
|
|
157
190
|
|
|
158
|
-
if (newStateMap.delete(
|
|
191
|
+
if (newStateMap.delete(key)) {
|
|
159
192
|
setStateMap(newStateMap);
|
|
160
193
|
latestStateMap.current = newStateMap;
|
|
161
|
-
configMap.current.delete(
|
|
194
|
+
configMap.current.delete(key);
|
|
195
|
+
return true;
|
|
162
196
|
}
|
|
197
|
+
|
|
198
|
+
return false;
|
|
163
199
|
}, []);
|
|
164
|
-
var endTransition = react.useCallback(function (
|
|
165
|
-
var stateObj = latestStateMap.current.get(
|
|
200
|
+
var endTransition = react.useCallback(function (key) {
|
|
201
|
+
var stateObj = latestStateMap.current.get(key);
|
|
166
202
|
|
|
167
203
|
if (!stateObj) {
|
|
168
|
-
process.env.NODE_ENV !== 'production' && console.error("[React-Transition-State] invalid
|
|
204
|
+
process.env.NODE_ENV !== 'production' && console.error("[React-Transition-State] invalid key: " + key);
|
|
169
205
|
return;
|
|
170
206
|
}
|
|
171
207
|
|
|
172
|
-
var _configMap$current$ge = configMap.current.get(
|
|
208
|
+
var _configMap$current$ge = configMap.current.get(key),
|
|
173
209
|
timeoutId = _configMap$current$ge.timeoutId,
|
|
174
210
|
onChange = _configMap$current$ge.onChange,
|
|
175
211
|
unmountOnExit = _configMap$current$ge.unmountOnExit;
|
|
176
212
|
|
|
177
213
|
var newState = getEndState(stateObj._state, unmountOnExit);
|
|
178
214
|
newState && updateState({
|
|
179
|
-
|
|
215
|
+
key: key,
|
|
180
216
|
newState: newState,
|
|
181
217
|
setStateMap: setStateMap,
|
|
182
218
|
latestStateMap: latestStateMap,
|
|
@@ -184,15 +220,15 @@ var useTransitionMap = function useTransitionMap() {
|
|
|
184
220
|
onChange: onChange
|
|
185
221
|
});
|
|
186
222
|
}, []);
|
|
187
|
-
var toggle = react.useCallback(function (
|
|
188
|
-
var stateObj = latestStateMap.current.get(
|
|
223
|
+
var toggle = react.useCallback(function (key, toEnter) {
|
|
224
|
+
var stateObj = latestStateMap.current.get(key);
|
|
189
225
|
|
|
190
226
|
if (!stateObj) {
|
|
191
|
-
process.env.NODE_ENV !== 'production' && console.error("[React-Transition-State] invalid
|
|
227
|
+
process.env.NODE_ENV !== 'production' && console.error("[React-Transition-State] invalid key: " + key);
|
|
192
228
|
return;
|
|
193
229
|
}
|
|
194
230
|
|
|
195
|
-
var config = configMap.current.get(
|
|
231
|
+
var config = configMap.current.get(key);
|
|
196
232
|
var _config$enter = config.enter,
|
|
197
233
|
enter = _config$enter === void 0 ? true : _config$enter,
|
|
198
234
|
_config$exit = config.exit,
|
|
@@ -206,7 +242,7 @@ var useTransitionMap = function useTransitionMap() {
|
|
|
206
242
|
|
|
207
243
|
var transitState = function transitState(newState) {
|
|
208
244
|
updateState({
|
|
209
|
-
|
|
245
|
+
key: key,
|
|
210
246
|
newState: newState,
|
|
211
247
|
setStateMap: setStateMap,
|
|
212
248
|
latestStateMap: latestStateMap,
|
|
@@ -221,13 +257,13 @@ var useTransitionMap = function useTransitionMap() {
|
|
|
221
257
|
switch (newState) {
|
|
222
258
|
case ENTERING:
|
|
223
259
|
if (enterTimeout >= 0) config.timeoutId = setTimeout(function () {
|
|
224
|
-
return endTransition(
|
|
260
|
+
return endTransition(key);
|
|
225
261
|
}, enterTimeout);
|
|
226
262
|
break;
|
|
227
263
|
|
|
228
264
|
case EXITING:
|
|
229
265
|
if (exitTimeout >= 0) config.timeoutId = setTimeout(function () {
|
|
230
|
-
return endTransition(
|
|
266
|
+
return endTransition(key);
|
|
231
267
|
}, exitTimeout);
|
|
232
268
|
break;
|
|
233
269
|
|
|
@@ -246,19 +282,22 @@ var useTransitionMap = function useTransitionMap() {
|
|
|
246
282
|
if (toEnter) {
|
|
247
283
|
if (!enterStage) {
|
|
248
284
|
transitState(enter ? preEnter ? PRE_ENTER : ENTERING : ENTERED);
|
|
285
|
+
singleEnter && latestStateMap.current.forEach(function (_, _key) {
|
|
286
|
+
return _key !== key && toggle(_key, false);
|
|
287
|
+
});
|
|
249
288
|
}
|
|
250
289
|
} else {
|
|
251
290
|
if (enterStage) {
|
|
252
291
|
transitState(exit ? preExit ? PRE_EXIT : EXITING : startOrEnd(unmountOnExit));
|
|
253
292
|
}
|
|
254
293
|
}
|
|
255
|
-
}, [endTransition]);
|
|
294
|
+
}, [endTransition, singleEnter]);
|
|
256
295
|
return {
|
|
257
296
|
stateMap: stateMap,
|
|
258
297
|
toggle: toggle,
|
|
259
298
|
endTransition: endTransition,
|
|
260
|
-
|
|
261
|
-
|
|
299
|
+
setItem: setItem,
|
|
300
|
+
deleteItem: deleteItem
|
|
262
301
|
};
|
|
263
302
|
};
|
|
264
303
|
|
|
@@ -0,0 +1,19 @@
|
|
|
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 };
|
|
@@ -1,72 +1,83 @@
|
|
|
1
|
+
import { extends as _extends } from '../_virtual/_rollupPluginBabelHelpers.js';
|
|
1
2
|
import { useState, useRef, useCallback } from 'react';
|
|
2
|
-
import { ENTERED, startOrEnd, getEndState, PRE_EXIT, EXITING, PRE_ENTER, ENTERING,
|
|
3
|
+
import { ENTERED, startOrEnd, getEndState, PRE_EXIT, EXITING, PRE_ENTER, ENTERING, getFullState, getTimeout } from './utils.js';
|
|
3
4
|
|
|
4
5
|
var initialStateMap = new Map();
|
|
5
6
|
var initialConfigMap = new Map();
|
|
6
7
|
|
|
7
8
|
var updateState = function updateState(_ref) {
|
|
8
|
-
var
|
|
9
|
+
var key = _ref.key,
|
|
9
10
|
_state = _ref.newState,
|
|
10
11
|
setStateMap = _ref.setStateMap,
|
|
11
12
|
latestStateMap = _ref.latestStateMap,
|
|
12
13
|
timeoutId = _ref.timeoutId,
|
|
13
14
|
onChange = _ref.onChange;
|
|
14
15
|
clearTimeout(timeoutId);
|
|
15
|
-
var state =
|
|
16
|
-
state: STATES[_state],
|
|
17
|
-
_state: _state
|
|
18
|
-
};
|
|
16
|
+
var state = getFullState(_state);
|
|
19
17
|
var stateMap = new Map(latestStateMap.current);
|
|
20
|
-
stateMap.set(
|
|
18
|
+
stateMap.set(key, state);
|
|
21
19
|
setStateMap(stateMap);
|
|
22
20
|
latestStateMap.current = stateMap;
|
|
23
|
-
onChange && onChange(
|
|
21
|
+
onChange && onChange(_extends({
|
|
22
|
+
key: key
|
|
23
|
+
}, state));
|
|
24
24
|
};
|
|
25
25
|
|
|
26
|
-
var useTransitionMap = function useTransitionMap() {
|
|
26
|
+
var useTransitionMap = function useTransitionMap(_temp) {
|
|
27
|
+
var _ref2 = _temp === void 0 ? {} : _temp,
|
|
28
|
+
singleEnter = _ref2.singleEnter;
|
|
29
|
+
|
|
27
30
|
var _useState = useState(initialStateMap),
|
|
28
31
|
stateMap = _useState[0],
|
|
29
32
|
setStateMap = _useState[1];
|
|
30
33
|
|
|
31
34
|
var latestStateMap = useRef(stateMap);
|
|
32
35
|
var configMap = useRef(initialConfigMap);
|
|
33
|
-
var
|
|
34
|
-
|
|
35
|
-
|
|
36
|
+
var setItem = useCallback(function (key, config) {
|
|
37
|
+
if (config === void 0) {
|
|
38
|
+
config = {};
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
var _config = config,
|
|
42
|
+
initialEntered = _config.initialEntered,
|
|
43
|
+
mountOnEnter = _config.mountOnEnter;
|
|
36
44
|
var newState = initialEntered ? ENTERED : startOrEnd(mountOnEnter);
|
|
37
45
|
updateState({
|
|
38
|
-
|
|
46
|
+
key: key,
|
|
39
47
|
newState: newState,
|
|
40
48
|
setStateMap: setStateMap,
|
|
41
49
|
latestStateMap: latestStateMap
|
|
42
50
|
});
|
|
43
|
-
configMap.current.set(
|
|
51
|
+
configMap.current.set(key, _extends({}, config));
|
|
44
52
|
}, []);
|
|
45
|
-
var
|
|
53
|
+
var deleteItem = useCallback(function (key) {
|
|
46
54
|
var newStateMap = new Map(latestStateMap.current);
|
|
47
55
|
|
|
48
|
-
if (newStateMap.delete(
|
|
56
|
+
if (newStateMap.delete(key)) {
|
|
49
57
|
setStateMap(newStateMap);
|
|
50
58
|
latestStateMap.current = newStateMap;
|
|
51
|
-
configMap.current.delete(
|
|
59
|
+
configMap.current.delete(key);
|
|
60
|
+
return true;
|
|
52
61
|
}
|
|
62
|
+
|
|
63
|
+
return false;
|
|
53
64
|
}, []);
|
|
54
|
-
var endTransition = useCallback(function (
|
|
55
|
-
var stateObj = latestStateMap.current.get(
|
|
65
|
+
var endTransition = useCallback(function (key) {
|
|
66
|
+
var stateObj = latestStateMap.current.get(key);
|
|
56
67
|
|
|
57
68
|
if (!stateObj) {
|
|
58
|
-
process.env.NODE_ENV !== 'production' && console.error("[React-Transition-State] invalid
|
|
69
|
+
process.env.NODE_ENV !== 'production' && console.error("[React-Transition-State] invalid key: " + key);
|
|
59
70
|
return;
|
|
60
71
|
}
|
|
61
72
|
|
|
62
|
-
var _configMap$current$ge = configMap.current.get(
|
|
73
|
+
var _configMap$current$ge = configMap.current.get(key),
|
|
63
74
|
timeoutId = _configMap$current$ge.timeoutId,
|
|
64
75
|
onChange = _configMap$current$ge.onChange,
|
|
65
76
|
unmountOnExit = _configMap$current$ge.unmountOnExit;
|
|
66
77
|
|
|
67
78
|
var newState = getEndState(stateObj._state, unmountOnExit);
|
|
68
79
|
newState && updateState({
|
|
69
|
-
|
|
80
|
+
key: key,
|
|
70
81
|
newState: newState,
|
|
71
82
|
setStateMap: setStateMap,
|
|
72
83
|
latestStateMap: latestStateMap,
|
|
@@ -74,15 +85,15 @@ var useTransitionMap = function useTransitionMap() {
|
|
|
74
85
|
onChange: onChange
|
|
75
86
|
});
|
|
76
87
|
}, []);
|
|
77
|
-
var toggle = useCallback(function (
|
|
78
|
-
var stateObj = latestStateMap.current.get(
|
|
88
|
+
var toggle = useCallback(function (key, toEnter) {
|
|
89
|
+
var stateObj = latestStateMap.current.get(key);
|
|
79
90
|
|
|
80
91
|
if (!stateObj) {
|
|
81
|
-
process.env.NODE_ENV !== 'production' && console.error("[React-Transition-State] invalid
|
|
92
|
+
process.env.NODE_ENV !== 'production' && console.error("[React-Transition-State] invalid key: " + key);
|
|
82
93
|
return;
|
|
83
94
|
}
|
|
84
95
|
|
|
85
|
-
var config = configMap.current.get(
|
|
96
|
+
var config = configMap.current.get(key);
|
|
86
97
|
var _config$enter = config.enter,
|
|
87
98
|
enter = _config$enter === void 0 ? true : _config$enter,
|
|
88
99
|
_config$exit = config.exit,
|
|
@@ -96,7 +107,7 @@ var useTransitionMap = function useTransitionMap() {
|
|
|
96
107
|
|
|
97
108
|
var transitState = function transitState(newState) {
|
|
98
109
|
updateState({
|
|
99
|
-
|
|
110
|
+
key: key,
|
|
100
111
|
newState: newState,
|
|
101
112
|
setStateMap: setStateMap,
|
|
102
113
|
latestStateMap: latestStateMap,
|
|
@@ -111,13 +122,13 @@ var useTransitionMap = function useTransitionMap() {
|
|
|
111
122
|
switch (newState) {
|
|
112
123
|
case ENTERING:
|
|
113
124
|
if (enterTimeout >= 0) config.timeoutId = setTimeout(function () {
|
|
114
|
-
return endTransition(
|
|
125
|
+
return endTransition(key);
|
|
115
126
|
}, enterTimeout);
|
|
116
127
|
break;
|
|
117
128
|
|
|
118
129
|
case EXITING:
|
|
119
130
|
if (exitTimeout >= 0) config.timeoutId = setTimeout(function () {
|
|
120
|
-
return endTransition(
|
|
131
|
+
return endTransition(key);
|
|
121
132
|
}, exitTimeout);
|
|
122
133
|
break;
|
|
123
134
|
|
|
@@ -136,19 +147,22 @@ var useTransitionMap = function useTransitionMap() {
|
|
|
136
147
|
if (toEnter) {
|
|
137
148
|
if (!enterStage) {
|
|
138
149
|
transitState(enter ? preEnter ? PRE_ENTER : ENTERING : ENTERED);
|
|
150
|
+
singleEnter && latestStateMap.current.forEach(function (_, _key) {
|
|
151
|
+
return _key !== key && toggle(_key, false);
|
|
152
|
+
});
|
|
139
153
|
}
|
|
140
154
|
} else {
|
|
141
155
|
if (enterStage) {
|
|
142
156
|
transitState(exit ? preExit ? PRE_EXIT : EXITING : startOrEnd(unmountOnExit));
|
|
143
157
|
}
|
|
144
158
|
}
|
|
145
|
-
}, [endTransition]);
|
|
159
|
+
}, [endTransition, singleEnter]);
|
|
146
160
|
return {
|
|
147
161
|
stateMap: stateMap,
|
|
148
162
|
toggle: toggle,
|
|
149
163
|
endTransition: endTransition,
|
|
150
|
-
|
|
151
|
-
|
|
164
|
+
setItem: setItem,
|
|
165
|
+
deleteItem: deleteItem
|
|
152
166
|
};
|
|
153
167
|
};
|
|
154
168
|
|
package/dist/es/hooks/utils.js
CHANGED
|
@@ -6,6 +6,14 @@ var EXITING = 4;
|
|
|
6
6
|
var EXITED = 5;
|
|
7
7
|
var UNMOUNTED = 6;
|
|
8
8
|
var STATES = ['preEnter', 'entering', 'entered', 'preExit', 'exiting', 'exited', 'unmounted'];
|
|
9
|
+
var getFullState = function getFullState(_state) {
|
|
10
|
+
return {
|
|
11
|
+
_state: _state,
|
|
12
|
+
state: STATES[_state],
|
|
13
|
+
isEnter: _state < PRE_EXIT,
|
|
14
|
+
isMounted: _state !== UNMOUNTED
|
|
15
|
+
};
|
|
16
|
+
};
|
|
9
17
|
var startOrEnd = function startOrEnd(unmounted) {
|
|
10
18
|
return unmounted ? UNMOUNTED : EXITED;
|
|
11
19
|
};
|
|
@@ -24,4 +32,4 @@ var getTimeout = function getTimeout(timeout) {
|
|
|
24
32
|
return typeof timeout === 'object' ? [timeout.enter, timeout.exit] : [timeout, timeout];
|
|
25
33
|
};
|
|
26
34
|
|
|
27
|
-
export { ENTERED, ENTERING, EXITED, EXITING, PRE_ENTER, PRE_EXIT, STATES, UNMOUNTED, getEndState, getTimeout, startOrEnd };
|
|
35
|
+
export { ENTERED, ENTERING, EXITED, EXITING, PRE_ENTER, PRE_EXIT, STATES, UNMOUNTED, getEndState, getFullState, getTimeout, startOrEnd };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-transition-state",
|
|
3
|
-
"version": "1.2.0-alpha.
|
|
3
|
+
"version": "1.2.0-alpha.2",
|
|
4
4
|
"description": "Zero dependency, 0.7KB react-transition-group alternative.",
|
|
5
5
|
"author": "Zheng Song",
|
|
6
6
|
"license": "MIT",
|
|
@@ -8,10 +8,11 @@
|
|
|
8
8
|
"homepage": "https://szhsin.github.io/react-transition-state/",
|
|
9
9
|
"main": "dist/cjs/index.js",
|
|
10
10
|
"module": "dist/es/index.js",
|
|
11
|
-
"types": "
|
|
11
|
+
"types": "types/index.d.ts",
|
|
12
12
|
"sideEffects": false,
|
|
13
13
|
"files": [
|
|
14
|
-
"dist"
|
|
14
|
+
"dist/",
|
|
15
|
+
"types/*.d.ts"
|
|
15
16
|
],
|
|
16
17
|
"keywords": [
|
|
17
18
|
"react",
|
|
@@ -26,12 +27,12 @@
|
|
|
26
27
|
"bundle": "rollup -c",
|
|
27
28
|
"test": "jest",
|
|
28
29
|
"eg": "npm start --prefix example",
|
|
29
|
-
"
|
|
30
|
-
"types": "npm run dtslint && cp -f types/index.d.ts dist/",
|
|
30
|
+
"types": "dtslint --localTs node_modules/typescript/lib types",
|
|
31
31
|
"tsc": "cd types && tsc",
|
|
32
32
|
"lint": "eslint .",
|
|
33
33
|
"lint:fix": "eslint --fix .",
|
|
34
|
-
"pret": "prettier
|
|
34
|
+
"pret": "prettier -c .",
|
|
35
|
+
"pret:fix": "prettier -w .",
|
|
35
36
|
"build": "run-s clean lint pret bundle types"
|
|
36
37
|
},
|
|
37
38
|
"peerDependencies": {
|
|
@@ -23,4 +23,22 @@ export const useTransition: (
|
|
|
23
23
|
options?: TransitionOptions
|
|
24
24
|
) => [TransitionState, (toEnter?: boolean) => void, () => void];
|
|
25
25
|
|
|
26
|
+
interface State {
|
|
27
|
+
state: TransitionState;
|
|
28
|
+
isMounted: boolean;
|
|
29
|
+
isEnter: boolean;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export interface TransitionMapOptions<K> extends Omit<TransitionOptions, 'onChange'> {
|
|
33
|
+
onChange?: (event: { key: K } & State) => void;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export const useTransitionMap: <K>(options?: { singleEnter: boolean }) => {
|
|
37
|
+
stateMap: Omit<Map<K, State>, 'clear' | 'delete' | 'set'>;
|
|
38
|
+
toggle: (key: K, toEnter?: boolean) => void;
|
|
39
|
+
endTransition: (key: K) => void;
|
|
40
|
+
setItem: (key: K, options?: TransitionMapOptions<K>) => void;
|
|
41
|
+
deleteItem: (key: K) => boolean;
|
|
42
|
+
};
|
|
43
|
+
|
|
26
44
|
export default useTransition;
|