react-transition-state 1.2.0-alpha.1 → 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
@@ -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
  };
@@ -94,13 +102,9 @@ var useTransition = function useTransition(_temp) {
94
102
  if (typeof toEnter !== 'boolean') toEnter = !enterStage;
95
103
 
96
104
  if (toEnter) {
97
- if (!enterStage) {
98
- transitState(enter ? preEnter ? PRE_ENTER : ENTERING : ENTERED);
99
- }
105
+ !enterStage && transitState(enter ? preEnter ? PRE_ENTER : ENTERING : ENTERED);
100
106
  } else {
101
- if (enterStage) {
102
- transitState(exit ? preExit ? PRE_EXIT : EXITING : startOrEnd(unmountOnExit));
103
- }
107
+ enterStage && transitState(exit ? preExit ? PRE_EXIT : EXITING : startOrEnd(unmountOnExit));
104
108
  }
105
109
  }, [endTransition, onChange, enter, exit, preEnter, preExit, enterTimeout, exitTimeout, unmountOnExit]);
106
110
  react.useEffect(function () {
@@ -115,119 +119,127 @@ var initialStateMap = new Map();
115
119
  var initialConfigMap = new Map();
116
120
 
117
121
  var updateState = function updateState(_ref) {
118
- var item = _ref.item,
122
+ var key = _ref.key,
119
123
  _state = _ref.newState,
120
124
  setStateMap = _ref.setStateMap,
121
125
  latestStateMap = _ref.latestStateMap,
122
126
  timeoutId = _ref.timeoutId,
123
127
  onChange = _ref.onChange;
124
128
  clearTimeout(timeoutId);
125
- var state = {
126
- state: STATES[_state],
127
- _state: _state
128
- };
129
+ var state = getFullState(_state);
129
130
  var stateMap = new Map(latestStateMap.current);
130
- stateMap.set(item, state);
131
+ stateMap.set(key, state);
131
132
  setStateMap(stateMap);
132
133
  latestStateMap.current = stateMap;
133
- onChange && onChange(item, state);
134
+ onChange && onChange({
135
+ key: key,
136
+ current: state
137
+ });
134
138
  };
135
139
 
136
- var useTransitionMap = function useTransitionMap() {
140
+ var useTransitionMap = function useTransitionMap(_temp) {
141
+ var _ref2 = _temp === void 0 ? {} : _temp,
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;
154
+
137
155
  var _useState = react.useState(initialStateMap),
138
156
  stateMap = _useState[0],
139
157
  setStateMap = _useState[1];
140
158
 
141
159
  var latestStateMap = react.useRef(stateMap);
142
160
  var configMap = react.useRef(initialConfigMap);
143
- var addItem = react.useCallback(function (item, config) {
144
- var initialEntered = config.initialEntered,
145
- mountOnEnter = config.mountOnEnter;
146
- var newState = initialEntered ? ENTERED : startOrEnd(mountOnEnter);
161
+
162
+ var _getTimeout = getTimeout(timeout),
163
+ enterTimeout = _getTimeout[0],
164
+ exitTimeout = _getTimeout[1];
165
+
166
+ var setItem = react.useCallback(function (key, config) {
167
+ var _ref3 = config || {},
168
+ _ref3$initialEntered = _ref3.initialEntered,
169
+ _initialEntered = _ref3$initialEntered === void 0 ? initialEntered : _ref3$initialEntered;
170
+
171
+ var newState = _initialEntered ? ENTERED : startOrEnd(mountOnEnter);
147
172
  updateState({
148
- item: item,
173
+ key: key,
149
174
  newState: newState,
150
175
  setStateMap: setStateMap,
151
176
  latestStateMap: latestStateMap
152
177
  });
153
- configMap.current.set(item, config);
154
- }, []);
155
- var removeItem = react.useCallback(function (item) {
178
+ configMap.current.set(key, {});
179
+ }, [initialEntered, mountOnEnter]);
180
+ var deleteItem = react.useCallback(function (key) {
156
181
  var newStateMap = new Map(latestStateMap.current);
157
182
 
158
- if (newStateMap.delete(item)) {
183
+ if (newStateMap.delete(key)) {
159
184
  setStateMap(newStateMap);
160
185
  latestStateMap.current = newStateMap;
161
- configMap.current.delete(item);
186
+ configMap.current.delete(key);
187
+ return true;
162
188
  }
189
+
190
+ return false;
163
191
  }, []);
164
- var endTransition = react.useCallback(function (item) {
165
- var stateObj = latestStateMap.current.get(item);
192
+ var endTransition = react.useCallback(function (key) {
193
+ var stateObj = latestStateMap.current.get(key);
166
194
 
167
195
  if (!stateObj) {
168
- process.env.NODE_ENV !== 'production' && console.error("[React-Transition-State] invalid item key for " + item);
196
+ process.env.NODE_ENV !== 'production' && console.error("[React-Transition-State] invalid key: " + key);
169
197
  return;
170
198
  }
171
199
 
172
- var _configMap$current$ge = configMap.current.get(item),
173
- timeoutId = _configMap$current$ge.timeoutId,
174
- onChange = _configMap$current$ge.onChange,
175
- unmountOnExit = _configMap$current$ge.unmountOnExit;
200
+ var _configMap$current$ge = configMap.current.get(key),
201
+ timeoutId = _configMap$current$ge.timeoutId;
176
202
 
177
203
  var newState = getEndState(stateObj._state, unmountOnExit);
178
204
  newState && updateState({
179
- item: item,
205
+ key: key,
180
206
  newState: newState,
181
207
  setStateMap: setStateMap,
182
208
  latestStateMap: latestStateMap,
183
209
  timeoutId: timeoutId,
184
210
  onChange: onChange
185
211
  });
186
- }, []);
187
- var toggle = react.useCallback(function (item, toEnter) {
188
- var stateObj = latestStateMap.current.get(item);
212
+ }, [onChange, unmountOnExit]);
213
+ var toggle = react.useCallback(function (key, toEnter) {
214
+ var stateObj = latestStateMap.current.get(key);
189
215
 
190
216
  if (!stateObj) {
191
- process.env.NODE_ENV !== 'production' && console.error("[React-Transition-State] invalid item key for " + item);
217
+ process.env.NODE_ENV !== 'production' && console.error("[React-Transition-State] invalid key: " + key);
192
218
  return;
193
219
  }
194
220
 
195
- var config = configMap.current.get(item);
196
- var _config$enter = config.enter,
197
- enter = _config$enter === void 0 ? true : _config$enter,
198
- _config$exit = config.exit,
199
- exit = _config$exit === void 0 ? true : _config$exit,
200
- preEnter = config.preEnter,
201
- preExit = config.preExit,
202
- timeout = config.timeout,
203
- unmountOnExit = config.unmountOnExit,
204
- onChange = config.onChange,
205
- timeoutId = config.timeoutId;
221
+ var config = configMap.current.get(key);
206
222
 
207
223
  var transitState = function transitState(newState) {
208
224
  updateState({
209
- item: item,
225
+ key: key,
210
226
  newState: newState,
211
227
  setStateMap: setStateMap,
212
228
  latestStateMap: latestStateMap,
213
- timeoutId: timeoutId,
229
+ timeoutId: config.timeoutId,
214
230
  onChange: onChange
215
231
  });
216
232
 
217
- var _getTimeout = getTimeout(timeout),
218
- enterTimeout = _getTimeout[0],
219
- exitTimeout = _getTimeout[1];
220
-
221
233
  switch (newState) {
222
234
  case ENTERING:
223
235
  if (enterTimeout >= 0) config.timeoutId = setTimeout(function () {
224
- return endTransition(item);
236
+ return endTransition(key);
225
237
  }, enterTimeout);
226
238
  break;
227
239
 
228
240
  case EXITING:
229
241
  if (exitTimeout >= 0) config.timeoutId = setTimeout(function () {
230
- return endTransition(item);
242
+ return endTransition(key);
231
243
  }, exitTimeout);
232
244
  break;
233
245
 
@@ -246,19 +258,22 @@ var useTransitionMap = function useTransitionMap() {
246
258
  if (toEnter) {
247
259
  if (!enterStage) {
248
260
  transitState(enter ? preEnter ? PRE_ENTER : ENTERING : ENTERED);
261
+ singleEnter && latestStateMap.current.forEach(function (_, _key) {
262
+ return _key !== key && toggle(_key, false);
263
+ });
249
264
  }
250
265
  } else {
251
266
  if (enterStage) {
252
267
  transitState(exit ? preExit ? PRE_EXIT : EXITING : startOrEnd(unmountOnExit));
253
268
  }
254
269
  }
255
- }, [endTransition]);
270
+ }, [onChange, endTransition, singleEnter, enter, exit, preEnter, preExit, enterTimeout, exitTimeout, unmountOnExit]);
256
271
  return {
257
272
  stateMap: stateMap,
258
273
  toggle: toggle,
259
274
  endTransition: endTransition,
260
- addItem: addItem,
261
- removeItem: removeItem
275
+ setItem: setItem,
276
+ deleteItem: deleteItem
262
277
  };
263
278
  };
264
279
 
@@ -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,123 +1,131 @@
1
1
  import { useState, useRef, useCallback } from 'react';
2
- import { ENTERED, startOrEnd, getEndState, PRE_EXIT, EXITING, PRE_ENTER, ENTERING, STATES, getTimeout } from './utils.js';
2
+ import { getTimeout, ENTERED, startOrEnd, getEndState, PRE_EXIT, EXITING, PRE_ENTER, ENTERING, getFullState } from './utils.js';
3
3
 
4
4
  var initialStateMap = new Map();
5
5
  var initialConfigMap = new Map();
6
6
 
7
7
  var updateState = function updateState(_ref) {
8
- var item = _ref.item,
8
+ var key = _ref.key,
9
9
  _state = _ref.newState,
10
10
  setStateMap = _ref.setStateMap,
11
11
  latestStateMap = _ref.latestStateMap,
12
12
  timeoutId = _ref.timeoutId,
13
13
  onChange = _ref.onChange;
14
14
  clearTimeout(timeoutId);
15
- var state = {
16
- state: STATES[_state],
17
- _state: _state
18
- };
15
+ var state = getFullState(_state);
19
16
  var stateMap = new Map(latestStateMap.current);
20
- stateMap.set(item, state);
17
+ stateMap.set(key, state);
21
18
  setStateMap(stateMap);
22
19
  latestStateMap.current = stateMap;
23
- onChange && onChange(item, state);
20
+ onChange && onChange({
21
+ key: key,
22
+ current: state
23
+ });
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
+ _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;
40
+
27
41
  var _useState = useState(initialStateMap),
28
42
  stateMap = _useState[0],
29
43
  setStateMap = _useState[1];
30
44
 
31
45
  var latestStateMap = useRef(stateMap);
32
46
  var configMap = useRef(initialConfigMap);
33
- var addItem = useCallback(function (item, config) {
34
- var initialEntered = config.initialEntered,
35
- mountOnEnter = config.mountOnEnter;
36
- var newState = initialEntered ? ENTERED : startOrEnd(mountOnEnter);
47
+
48
+ var _getTimeout = getTimeout(timeout),
49
+ enterTimeout = _getTimeout[0],
50
+ exitTimeout = _getTimeout[1];
51
+
52
+ var setItem = useCallback(function (key, config) {
53
+ var _ref3 = config || {},
54
+ _ref3$initialEntered = _ref3.initialEntered,
55
+ _initialEntered = _ref3$initialEntered === void 0 ? initialEntered : _ref3$initialEntered;
56
+
57
+ var newState = _initialEntered ? ENTERED : startOrEnd(mountOnEnter);
37
58
  updateState({
38
- item: item,
59
+ key: key,
39
60
  newState: newState,
40
61
  setStateMap: setStateMap,
41
62
  latestStateMap: latestStateMap
42
63
  });
43
- configMap.current.set(item, config);
44
- }, []);
45
- var removeItem = useCallback(function (item) {
64
+ configMap.current.set(key, {});
65
+ }, [initialEntered, mountOnEnter]);
66
+ var deleteItem = useCallback(function (key) {
46
67
  var newStateMap = new Map(latestStateMap.current);
47
68
 
48
- if (newStateMap.delete(item)) {
69
+ if (newStateMap.delete(key)) {
49
70
  setStateMap(newStateMap);
50
71
  latestStateMap.current = newStateMap;
51
- configMap.current.delete(item);
72
+ configMap.current.delete(key);
73
+ return true;
52
74
  }
75
+
76
+ return false;
53
77
  }, []);
54
- var endTransition = useCallback(function (item) {
55
- var stateObj = latestStateMap.current.get(item);
78
+ var endTransition = useCallback(function (key) {
79
+ var stateObj = latestStateMap.current.get(key);
56
80
 
57
81
  if (!stateObj) {
58
- process.env.NODE_ENV !== 'production' && console.error("[React-Transition-State] invalid item key for " + item);
82
+ process.env.NODE_ENV !== 'production' && console.error("[React-Transition-State] invalid key: " + key);
59
83
  return;
60
84
  }
61
85
 
62
- var _configMap$current$ge = configMap.current.get(item),
63
- timeoutId = _configMap$current$ge.timeoutId,
64
- onChange = _configMap$current$ge.onChange,
65
- unmountOnExit = _configMap$current$ge.unmountOnExit;
86
+ var _configMap$current$ge = configMap.current.get(key),
87
+ timeoutId = _configMap$current$ge.timeoutId;
66
88
 
67
89
  var newState = getEndState(stateObj._state, unmountOnExit);
68
90
  newState && updateState({
69
- item: item,
91
+ key: key,
70
92
  newState: newState,
71
93
  setStateMap: setStateMap,
72
94
  latestStateMap: latestStateMap,
73
95
  timeoutId: timeoutId,
74
96
  onChange: onChange
75
97
  });
76
- }, []);
77
- var toggle = useCallback(function (item, toEnter) {
78
- var stateObj = latestStateMap.current.get(item);
98
+ }, [onChange, unmountOnExit]);
99
+ var toggle = useCallback(function (key, toEnter) {
100
+ var stateObj = latestStateMap.current.get(key);
79
101
 
80
102
  if (!stateObj) {
81
- process.env.NODE_ENV !== 'production' && console.error("[React-Transition-State] invalid item key for " + item);
103
+ process.env.NODE_ENV !== 'production' && console.error("[React-Transition-State] invalid key: " + key);
82
104
  return;
83
105
  }
84
106
 
85
- var config = configMap.current.get(item);
86
- var _config$enter = config.enter,
87
- enter = _config$enter === void 0 ? true : _config$enter,
88
- _config$exit = config.exit,
89
- exit = _config$exit === void 0 ? true : _config$exit,
90
- preEnter = config.preEnter,
91
- preExit = config.preExit,
92
- timeout = config.timeout,
93
- unmountOnExit = config.unmountOnExit,
94
- onChange = config.onChange,
95
- timeoutId = config.timeoutId;
107
+ var config = configMap.current.get(key);
96
108
 
97
109
  var transitState = function transitState(newState) {
98
110
  updateState({
99
- item: item,
111
+ key: key,
100
112
  newState: newState,
101
113
  setStateMap: setStateMap,
102
114
  latestStateMap: latestStateMap,
103
- timeoutId: timeoutId,
115
+ timeoutId: config.timeoutId,
104
116
  onChange: onChange
105
117
  });
106
118
 
107
- var _getTimeout = getTimeout(timeout),
108
- enterTimeout = _getTimeout[0],
109
- exitTimeout = _getTimeout[1];
110
-
111
119
  switch (newState) {
112
120
  case ENTERING:
113
121
  if (enterTimeout >= 0) config.timeoutId = setTimeout(function () {
114
- return endTransition(item);
122
+ return endTransition(key);
115
123
  }, enterTimeout);
116
124
  break;
117
125
 
118
126
  case EXITING:
119
127
  if (exitTimeout >= 0) config.timeoutId = setTimeout(function () {
120
- return endTransition(item);
128
+ return endTransition(key);
121
129
  }, exitTimeout);
122
130
  break;
123
131
 
@@ -136,19 +144,22 @@ var useTransitionMap = function useTransitionMap() {
136
144
  if (toEnter) {
137
145
  if (!enterStage) {
138
146
  transitState(enter ? preEnter ? PRE_ENTER : ENTERING : ENTERED);
147
+ singleEnter && latestStateMap.current.forEach(function (_, _key) {
148
+ return _key !== key && toggle(_key, false);
149
+ });
139
150
  }
140
151
  } else {
141
152
  if (enterStage) {
142
153
  transitState(exit ? preExit ? PRE_EXIT : EXITING : startOrEnd(unmountOnExit));
143
154
  }
144
155
  }
145
- }, [endTransition]);
156
+ }, [onChange, endTransition, singleEnter, enter, exit, preEnter, preExit, enterTimeout, exitTimeout, unmountOnExit]);
146
157
  return {
147
158
  stateMap: stateMap,
148
159
  toggle: toggle,
149
160
  endTransition: endTransition,
150
- addItem: addItem,
151
- removeItem: removeItem
161
+ setItem: setItem,
162
+ deleteItem: deleteItem
152
163
  };
153
164
  };
154
165
 
@@ -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.1",
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",
@@ -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": "dist/index.d.ts",
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
- "dtslint": "dtslint --localTs node_modules/typescript/lib types",
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 --write .",
34
+ "pret": "prettier -c .",
35
+ "pret:fix": "prettier -w .",
35
36
  "build": "run-s clean lint pret bundle types"
36
37
  },
37
38
  "peerDependencies": {
@@ -0,0 +1,51 @@
1
+ export type TransitionState =
2
+ | 'preEnter'
3
+ | 'entering'
4
+ | 'entered'
5
+ | 'preExit'
6
+ | 'exiting'
7
+ | 'exited'
8
+ | 'unmounted';
9
+
10
+ export interface State {
11
+ state: TransitionState;
12
+ isMounted: boolean;
13
+ isEnter: boolean;
14
+ }
15
+
16
+ export interface TransitionOptions {
17
+ initialEntered?: boolean;
18
+ mountOnEnter?: boolean;
19
+ unmountOnExit?: boolean;
20
+ preEnter?: boolean;
21
+ preExit?: boolean;
22
+ enter?: boolean;
23
+ exit?: boolean;
24
+ timeout?: number | { enter?: number; exit?: number };
25
+ onChange?: (event: { state: TransitionState }) => void;
26
+ }
27
+
28
+ export interface TransitionItemOptions {
29
+ initialEntered?: boolean;
30
+ }
31
+
32
+ export interface TransitionMapOptions<K> extends Omit<TransitionOptions, 'onChange'> {
33
+ singleEnter?: boolean;
34
+ onChange?: (event: { key: K; current: State }) => void;
35
+ }
36
+
37
+ export type TransitionResult = [TransitionState, (toEnter?: boolean) => void, () => void];
38
+
39
+ export interface TransitionMapResult<K> {
40
+ stateMap: Omit<Map<K, State>, 'clear' | 'delete' | 'set'>;
41
+ toggle: (key: K, toEnter?: boolean) => void;
42
+ endTransition: (key: K) => void;
43
+ setItem: (key: K, options?: TransitionItemOptions) => void;
44
+ deleteItem: (key: K) => boolean;
45
+ }
46
+
47
+ export const useTransition: (options?: TransitionOptions) => TransitionResult;
48
+
49
+ export const useTransitionMap: <K>(options?: TransitionMapOptions<K>) => TransitionMapResult<K>;
50
+
51
+ export default useTransition;
package/dist/index.d.ts DELETED
@@ -1,26 +0,0 @@
1
- export type TransitionState =
2
- | 'preEnter'
3
- | 'entering'
4
- | 'entered'
5
- | 'preExit'
6
- | 'exiting'
7
- | 'exited'
8
- | 'unmounted';
9
-
10
- export interface TransitionOptions {
11
- initialEntered?: boolean;
12
- mountOnEnter?: boolean;
13
- unmountOnExit?: boolean;
14
- preEnter?: boolean;
15
- preExit?: boolean;
16
- enter?: boolean;
17
- exit?: boolean;
18
- timeout?: number | { enter?: number; exit?: number };
19
- onChange?: (event: { state: TransitionState }) => void;
20
- }
21
-
22
- export const useTransition: (
23
- options?: TransitionOptions
24
- ) => [TransitionState, (toEnter?: boolean) => void, () => void];
25
-
26
- export default useTransition;