react-transition-state 1.2.0-alpha.0 → 1.2.0-alpha.1

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.
File without changes
@@ -0,0 +1,85 @@
1
+ import { useState, useRef, useCallback, useEffect } from 'react';
2
+ import { ENTERED, startOrEnd, getTimeout, getEndState, PRE_EXIT, EXITING, STATES, PRE_ENTER, ENTERING } from './utils.js';
3
+
4
+ var updateState = function updateState(state, setState, latestState, timeoutId, onChange) {
5
+ clearTimeout(timeoutId.current);
6
+ setState(state);
7
+ latestState.current = state;
8
+ onChange && onChange({
9
+ state: STATES[state]
10
+ });
11
+ };
12
+
13
+ var useTransition = function useTransition(_temp) {
14
+ var _ref = _temp === void 0 ? {} : _temp,
15
+ _ref$enter = _ref.enter,
16
+ enter = _ref$enter === void 0 ? true : _ref$enter,
17
+ _ref$exit = _ref.exit,
18
+ exit = _ref$exit === void 0 ? true : _ref$exit,
19
+ preEnter = _ref.preEnter,
20
+ preExit = _ref.preExit,
21
+ timeout = _ref.timeout,
22
+ initialEntered = _ref.initialEntered,
23
+ mountOnEnter = _ref.mountOnEnter,
24
+ unmountOnExit = _ref.unmountOnExit,
25
+ onChange = _ref.onChange;
26
+
27
+ var _useState = useState(initialEntered ? ENTERED : startOrEnd(mountOnEnter)),
28
+ state = _useState[0],
29
+ setState = _useState[1];
30
+
31
+ var latestState = useRef(state);
32
+ var timeoutId = useRef();
33
+
34
+ var _getTimeout = getTimeout(timeout),
35
+ enterTimeout = _getTimeout[0],
36
+ exitTimeout = _getTimeout[1];
37
+
38
+ var endTransition = useCallback(function () {
39
+ var newState = getEndState(latestState.current, unmountOnExit);
40
+ newState && updateState(newState, setState, latestState, timeoutId, onChange);
41
+ }, [onChange, unmountOnExit]);
42
+ var toggle = useCallback(function (toEnter) {
43
+ var transitState = function transitState(newState) {
44
+ updateState(newState, setState, latestState, timeoutId, onChange);
45
+
46
+ switch (newState) {
47
+ case ENTERING:
48
+ if (enterTimeout >= 0) timeoutId.current = setTimeout(endTransition, enterTimeout);
49
+ break;
50
+
51
+ case EXITING:
52
+ if (exitTimeout >= 0) timeoutId.current = setTimeout(endTransition, exitTimeout);
53
+ break;
54
+
55
+ case PRE_ENTER:
56
+ case PRE_EXIT:
57
+ timeoutId.current = setTimeout(function () {
58
+ return transitState(newState + 1);
59
+ }, 0);
60
+ break;
61
+ }
62
+ };
63
+
64
+ var enterStage = latestState.current <= ENTERED;
65
+ if (typeof toEnter !== 'boolean') toEnter = !enterStage;
66
+
67
+ if (toEnter) {
68
+ if (!enterStage) {
69
+ transitState(enter ? preEnter ? PRE_ENTER : ENTERING : ENTERED);
70
+ }
71
+ } else {
72
+ if (enterStage) {
73
+ transitState(exit ? preExit ? PRE_EXIT : EXITING : startOrEnd(unmountOnExit));
74
+ }
75
+ }
76
+ }, [endTransition, onChange, enter, exit, preEnter, preExit, enterTimeout, exitTimeout, unmountOnExit]);
77
+ useEffect(function () {
78
+ return function () {
79
+ return clearTimeout(timeoutId.current);
80
+ };
81
+ }, []);
82
+ return [STATES[state], toggle, endTransition];
83
+ };
84
+
85
+ export { useTransition };
@@ -1,111 +1,5 @@
1
- import { useState, useRef, useCallback, useEffect } from 'react';
2
-
3
- var PRE_ENTER = 0;
4
- var ENTERING = 1;
5
- var ENTERED = 2;
6
- var PRE_EXIT = 3;
7
- var EXITING = 4;
8
- var EXITED = 5;
9
- var UNMOUNTED = 6;
10
- var STATES = ['preEnter', 'entering', 'entered', 'preExit', 'exiting', 'exited', 'unmounted'];
11
- var startOrEnd = function startOrEnd(unmounted) {
12
- return unmounted ? UNMOUNTED : EXITED;
13
- };
14
- var getEndState = function getEndState(state, unmountOnExit) {
15
- switch (state) {
16
- case ENTERING:
17
- case PRE_ENTER:
18
- return ENTERED;
19
-
20
- case EXITING:
21
- case PRE_EXIT:
22
- return startOrEnd(unmountOnExit);
23
- }
24
- };
25
- var getTimeout = function getTimeout(timeout) {
26
- return typeof timeout === 'object' ? [timeout.enter, timeout.exit] : [timeout, timeout];
27
- };
28
-
29
- var updateState$1 = function updateState(state, setState, latestState, timeoutId, onChange) {
30
- clearTimeout(timeoutId.current);
31
- setState(state);
32
- latestState.current = state;
33
- onChange && onChange({
34
- state: STATES[state]
35
- });
36
- };
37
-
38
- var useTransition = function useTransition(_temp) {
39
- var _ref = _temp === void 0 ? {} : _temp,
40
- _ref$enter = _ref.enter,
41
- enter = _ref$enter === void 0 ? true : _ref$enter,
42
- _ref$exit = _ref.exit,
43
- exit = _ref$exit === void 0 ? true : _ref$exit,
44
- preEnter = _ref.preEnter,
45
- preExit = _ref.preExit,
46
- timeout = _ref.timeout,
47
- initialEntered = _ref.initialEntered,
48
- mountOnEnter = _ref.mountOnEnter,
49
- unmountOnExit = _ref.unmountOnExit,
50
- onChange = _ref.onChange;
51
-
52
- var _useState = useState(initialEntered ? ENTERED : startOrEnd(mountOnEnter)),
53
- state = _useState[0],
54
- setState = _useState[1];
55
-
56
- var latestState = useRef(state);
57
- var timeoutId = useRef();
58
-
59
- var _getTimeout = getTimeout(timeout),
60
- enterTimeout = _getTimeout[0],
61
- exitTimeout = _getTimeout[1];
62
-
63
- var endTransition = useCallback(function () {
64
- var newState = getEndState(latestState.current, unmountOnExit);
65
- newState && updateState$1(newState, setState, latestState, timeoutId, onChange);
66
- }, [onChange, unmountOnExit]);
67
- var toggle = useCallback(function (toEnter) {
68
- var transitState = function transitState(newState) {
69
- updateState$1(newState, setState, latestState, timeoutId, onChange);
70
-
71
- switch (newState) {
72
- case ENTERING:
73
- if (enterTimeout >= 0) timeoutId.current = setTimeout(endTransition, enterTimeout);
74
- break;
75
-
76
- case EXITING:
77
- if (exitTimeout >= 0) timeoutId.current = setTimeout(endTransition, exitTimeout);
78
- break;
79
-
80
- case PRE_ENTER:
81
- case PRE_EXIT:
82
- timeoutId.current = setTimeout(function () {
83
- return transitState(newState + 1);
84
- }, 0);
85
- break;
86
- }
87
- };
88
-
89
- var enterStage = latestState.current <= ENTERED;
90
- if (typeof toEnter !== 'boolean') toEnter = !enterStage;
91
-
92
- if (toEnter) {
93
- if (!enterStage) {
94
- transitState(enter ? preEnter ? PRE_ENTER : ENTERING : ENTERED);
95
- }
96
- } else {
97
- if (enterStage) {
98
- transitState(exit ? preExit ? PRE_EXIT : EXITING : startOrEnd(unmountOnExit));
99
- }
100
- }
101
- }, [endTransition, onChange, enter, exit, preEnter, preExit, enterTimeout, exitTimeout, unmountOnExit]);
102
- useEffect(function () {
103
- return function () {
104
- return clearTimeout(timeoutId.current);
105
- };
106
- }, []);
107
- return [STATES[state], toggle, endTransition];
108
- };
1
+ import { useState, useRef, useCallback } from 'react';
2
+ import { ENTERED, startOrEnd, getEndState, PRE_EXIT, EXITING, PRE_ENTER, ENTERING, STATES, getTimeout } from './utils.js';
109
3
 
110
4
  var initialStateMap = new Map();
111
5
  var initialConfigMap = new Map();
@@ -258,4 +152,4 @@ var useTransitionMap = function useTransitionMap() {
258
152
  };
259
153
  };
260
154
 
261
- export { useTransition as default, useTransition, useTransitionMap };
155
+ export { useTransitionMap };
@@ -0,0 +1,27 @@
1
+ var PRE_ENTER = 0;
2
+ var ENTERING = 1;
3
+ var ENTERED = 2;
4
+ var PRE_EXIT = 3;
5
+ var EXITING = 4;
6
+ var EXITED = 5;
7
+ var UNMOUNTED = 6;
8
+ var STATES = ['preEnter', 'entering', 'entered', 'preExit', 'exiting', 'exited', 'unmounted'];
9
+ var startOrEnd = function startOrEnd(unmounted) {
10
+ return unmounted ? UNMOUNTED : EXITED;
11
+ };
12
+ var getEndState = function getEndState(state, unmountOnExit) {
13
+ switch (state) {
14
+ case ENTERING:
15
+ case PRE_ENTER:
16
+ return ENTERED;
17
+
18
+ case EXITING:
19
+ case PRE_EXIT:
20
+ return startOrEnd(unmountOnExit);
21
+ }
22
+ };
23
+ var getTimeout = function getTimeout(timeout) {
24
+ return typeof timeout === 'object' ? [timeout.enter, timeout.exit] : [timeout, timeout];
25
+ };
26
+
27
+ export { ENTERED, ENTERING, EXITED, EXITING, PRE_ENTER, PRE_EXIT, STATES, UNMOUNTED, getEndState, getTimeout, startOrEnd };
@@ -0,0 +1,2 @@
1
+ export { useTransition as default, useTransition } from './hooks/useTransition.js';
2
+ export { useTransitionMap } from './hooks/useTransitionMap.js';
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "react-transition-state",
3
- "version": "1.2.0-alpha.0",
3
+ "version": "1.2.0-alpha.1",
4
4
  "description": "Zero dependency, 0.7KB react-transition-group alternative.",
5
5
  "author": "Zheng Song",
6
6
  "license": "MIT",
7
7
  "repository": "szhsin/react-transition-state",
8
8
  "homepage": "https://szhsin.github.io/react-transition-state/",
9
- "main": "dist/index.js",
10
- "module": "dist/index.es.js",
9
+ "main": "dist/cjs/index.js",
10
+ "module": "dist/es/index.js",
11
11
  "types": "dist/index.d.ts",
12
12
  "sideEffects": false,
13
13
  "files": [