react-transition-state 2.1.0-alpha.1 → 2.1.0

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/README.md CHANGED
@@ -234,6 +234,7 @@ The Hook returns an object of shape:
234
234
  interface TransitionMapResult<K> {
235
235
  stateMap: ReadonlyMap<K, TransitionState>;
236
236
  toggle: (key: K, toEnter?: boolean) => void;
237
+ toggleAll: (toEnter?: boolean) => void;
237
238
  endTransition: (key: K) => void;
238
239
  setItem: (key: K, options?: TransitionItemOptions) => void;
239
240
  deleteItem: (key: K) => boolean;
package/dist/cjs/index.js CHANGED
@@ -13,7 +13,7 @@ const EXITED = 5;
13
13
  const UNMOUNTED = 6;
14
14
  const STATUS = ['preEnter', 'entering', 'entered', 'preExit', 'exiting', 'exited', 'unmounted'];
15
15
  const getState = status => ({
16
- _status: status,
16
+ _s: status,
17
17
  status: STATUS[status],
18
18
  isEnter: status < PRE_EXIT,
19
19
  isMounted: status !== UNMOUNTED,
@@ -57,7 +57,7 @@ const useTransition = ({
57
57
  const timeoutId = react.useRef();
58
58
  const [enterTimeout, exitTimeout] = getTimeout(timeout);
59
59
  const endTransition = react.useCallback(() => {
60
- const status = getEndStatus(latestState.current._status, unmountOnExit);
60
+ const status = getEndStatus(latestState.current._s, unmountOnExit);
61
61
  status && updateState$1(status, setState, latestState, timeoutId, onChange);
62
62
  }, [onChange, unmountOnExit]);
63
63
  const toggle = react.useCallback(toEnter => {
@@ -145,7 +145,7 @@ const useTransitionMap = ({
145
145
  const {
146
146
  timeoutId
147
147
  } = configMap.current.get(key);
148
- const status = getEndStatus(stateObj._status, unmountOnExit);
148
+ const status = getEndStatus(stateObj._s, unmountOnExit);
149
149
  status && updateState(key, status, setStateMap, latestStateMap, timeoutId, onChange);
150
150
  }, [onChange, unmountOnExit]);
151
151
  const toggle = react.useCallback((key, toEnter) => {
@@ -183,9 +183,14 @@ const useTransitionMap = ({
183
183
  }
184
184
  }
185
185
  }, [onChange, endTransition, allowMultiple, enter, exit, preEnter, preExit, enterTimeout, exitTimeout, unmountOnExit]);
186
+ const toggleAll = react.useCallback(toEnter => {
187
+ if (!allowMultiple && toEnter !== false) return;
188
+ for (const key of latestStateMap.current.keys()) toggle(key, toEnter);
189
+ }, [allowMultiple, toggle]);
186
190
  return {
187
191
  stateMap,
188
192
  toggle,
193
+ toggleAll,
189
194
  endTransition,
190
195
  setItem,
191
196
  deleteItem
@@ -26,7 +26,7 @@ const useTransition = ({
26
26
  const timeoutId = useRef();
27
27
  const [enterTimeout, exitTimeout] = getTimeout(timeout);
28
28
  const endTransition = useCallback(() => {
29
- const status = getEndStatus(latestState.current._status, unmountOnExit);
29
+ const status = getEndStatus(latestState.current._s, unmountOnExit);
30
30
  status && updateState(status, setState, latestState, timeoutId, onChange);
31
31
  }, [onChange, unmountOnExit]);
32
32
  const toggle = useCallback(toEnter => {
@@ -58,7 +58,7 @@ const useTransitionMap = ({
58
58
  const {
59
59
  timeoutId
60
60
  } = configMap.current.get(key);
61
- const status = getEndStatus(stateObj._status, unmountOnExit);
61
+ const status = getEndStatus(stateObj._s, unmountOnExit);
62
62
  status && updateState(key, status, setStateMap, latestStateMap, timeoutId, onChange);
63
63
  }, [onChange, unmountOnExit]);
64
64
  const toggle = useCallback((key, toEnter) => {
@@ -96,9 +96,14 @@ const useTransitionMap = ({
96
96
  }
97
97
  }
98
98
  }, [onChange, endTransition, allowMultiple, enter, exit, preEnter, preExit, enterTimeout, exitTimeout, unmountOnExit]);
99
+ const toggleAll = useCallback(toEnter => {
100
+ if (!allowMultiple && toEnter !== false) return;
101
+ for (const key of latestStateMap.current.keys()) toggle(key, toEnter);
102
+ }, [allowMultiple, toggle]);
99
103
  return {
100
104
  stateMap,
101
105
  toggle,
106
+ toggleAll,
102
107
  endTransition,
103
108
  setItem,
104
109
  deleteItem
@@ -7,7 +7,7 @@ const EXITED = 5;
7
7
  const UNMOUNTED = 6;
8
8
  const STATUS = ['preEnter', 'entering', 'entered', 'preExit', 'exiting', 'exited', 'unmounted'];
9
9
  const getState = status => ({
10
- _status: status,
10
+ _s: status,
11
11
  status: STATUS[status],
12
12
  isEnter: status < PRE_EXIT,
13
13
  isMounted: status !== UNMOUNTED,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-transition-state",
3
- "version": "2.1.0-alpha.1",
3
+ "version": "2.1.0",
4
4
  "description": "Zero dependency React transition state machine.",
5
5
  "author": "Zheng Song",
6
6
  "license": "MIT",
package/types/index.d.ts CHANGED
@@ -40,6 +40,7 @@ export type TransitionResult = [TransitionState, (toEnter?: boolean) => void, ()
40
40
  export interface TransitionMapResult<K> {
41
41
  stateMap: ReadonlyMap<K, TransitionState>;
42
42
  toggle: (key: K, toEnter?: boolean) => void;
43
+ toggleAll: (toEnter?: boolean) => void;
43
44
  endTransition: (key: K) => void;
44
45
  setItem: (key: K, options?: TransitionItemOptions) => void;
45
46
  deleteItem: (key: K) => boolean;