@react-navigation/native 8.0.0-alpha.19 → 8.0.0-alpha.20
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/lib/module/__stubs__/createStackNavigator.js +1 -3
- package/lib/module/__stubs__/createStackNavigator.js.map +1 -1
- package/lib/module/useLinking.js +39 -3
- package/lib/module/useLinking.js.map +1 -1
- package/lib/typescript/src/__stubs__/createStackNavigator.d.ts +5 -8
- package/lib/typescript/src/__stubs__/createStackNavigator.d.ts.map +1 -1
- package/lib/typescript/src/useLinking.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/__stubs__/createStackNavigator.tsx +6 -12
- package/src/useLinking.tsx +64 -3
|
@@ -12,7 +12,5 @@ const StackNavigator = props => {
|
|
|
12
12
|
children: descriptors[state.routes[state.index].key].render()
|
|
13
13
|
});
|
|
14
14
|
};
|
|
15
|
-
export
|
|
16
|
-
return createNavigatorFactory(StackNavigator)();
|
|
17
|
-
}
|
|
15
|
+
export const createStackNavigator = createNavigatorFactory(StackNavigator);
|
|
18
16
|
//# sourceMappingURL=createStackNavigator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createNavigatorFactory","StackRouter","useNavigationBuilder","jsx","_jsx","StackNavigator","props","state","descriptors","NavigationContent","children","routes","index","key","render","createStackNavigator"],"sourceRoot":"../../../src","sources":["__stubs__/createStackNavigator.tsx"],"mappings":";;AAAA,SACEA,sBAAsB,EAKtBC,WAAW,
|
|
1
|
+
{"version":3,"names":["createNavigatorFactory","StackRouter","useNavigationBuilder","jsx","_jsx","StackNavigator","props","state","descriptors","NavigationContent","children","routes","index","key","render","createStackNavigator"],"sourceRoot":"../../../src","sources":["__stubs__/createStackNavigator.tsx"],"mappings":";;AAAA,SACEA,sBAAsB,EAKtBC,WAAW,EACXC,oBAAoB,QACf,wBAAwB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEhC,MAAMC,cAAc,GAClBC,KAMC,IACE;EACH,MAAM;IAAEC,KAAK;IAAEC,WAAW;IAAEC;EAAkB,CAAC,GAAGP,oBAAoB,CACpED,WAAW,EACXK,KACF,CAAC;EAED,oBACEF,IAAA,CAACK,iBAAiB;IAAAC,QAAA,EACfF,WAAW,CAACD,KAAK,CAACI,MAAM,CAACJ,KAAK,CAACK,KAAK,CAAC,CAACC,GAAG,CAAC,CAACC,MAAM,CAAC;EAAC,CACnC,CAAC;AAExB,CAAC;AAOD,OAAO,MAAMC,oBAAoB,GAC/Bf,sBAAsB,CAAmBK,cAAc,CAAC","ignoreList":[]}
|
package/lib/module/useLinking.js
CHANGED
|
@@ -5,12 +5,15 @@ import isEqual from 'fast-deep-equal';
|
|
|
5
5
|
import * as React from 'react';
|
|
6
6
|
import { createMemoryHistory } from "./createMemoryHistory.js";
|
|
7
7
|
import { ServerContext } from "./ServerContext.js";
|
|
8
|
+
const getRoutesUntilIndex = state => state.routes.slice(0, state.index + 1);
|
|
9
|
+
|
|
8
10
|
/**
|
|
9
11
|
* Calculate total history length including both navigator history and route history
|
|
10
12
|
*/
|
|
11
13
|
const getTotalHistoryLength = state => {
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
+
const routes = getRoutesUntilIndex(state);
|
|
15
|
+
const baseHistoryLength = state.history ? state.history.length : routes.length;
|
|
16
|
+
const routeHistoryLength = routes.reduce((acc, r) => {
|
|
14
17
|
return acc + (r.history ? r.history.length : 0);
|
|
15
18
|
}, 0);
|
|
16
19
|
return baseHistoryLength + routeHistoryLength;
|
|
@@ -43,6 +46,28 @@ const findMatchingState = (a, b) => {
|
|
|
43
46
|
return findMatchingState(aChildState, bChildState);
|
|
44
47
|
};
|
|
45
48
|
|
|
49
|
+
/**
|
|
50
|
+
* Check if the state change is popping the last route or history entry.
|
|
51
|
+
*/
|
|
52
|
+
const isPoppingLastEntry = (current, record) => {
|
|
53
|
+
const currentRoute = current.routes[current.index];
|
|
54
|
+
const recordRoute = record.routes[record.index];
|
|
55
|
+
const currentRouteHistory = currentRoute.history;
|
|
56
|
+
const recordRouteHistory = recordRoute.history ?? [];
|
|
57
|
+
if (currentRouteHistory?.length) {
|
|
58
|
+
return currentRoute.key === recordRoute.key && currentRouteHistory.length === recordRouteHistory.length + 1;
|
|
59
|
+
}
|
|
60
|
+
if (current.history && record.history) {
|
|
61
|
+
return current.history.length === record.history.length + 1;
|
|
62
|
+
}
|
|
63
|
+
const currentRoutes = getRoutesUntilIndex(current);
|
|
64
|
+
const recordRoutes = getRoutesUntilIndex(record);
|
|
65
|
+
if (currentRoutes.length === recordRoutes.length + 1) {
|
|
66
|
+
return recordRoutes.every((route, i) => route.key === currentRoutes[i].key);
|
|
67
|
+
}
|
|
68
|
+
return false;
|
|
69
|
+
};
|
|
70
|
+
|
|
46
71
|
/**
|
|
47
72
|
* Run async function in series as it's called.
|
|
48
73
|
*/
|
|
@@ -147,7 +172,16 @@ export function useLinking(ref, {
|
|
|
147
172
|
// Otherwise, we'll handle it like a regular deep link
|
|
148
173
|
const record = history.get(index);
|
|
149
174
|
if (record?.path === path && record?.state) {
|
|
150
|
-
navigation.
|
|
175
|
+
const currentState = navigation.getRootState();
|
|
176
|
+
const [currentFocused, recordFocused] = findMatchingState(currentState, record.state);
|
|
177
|
+
if (previousIndex - index === 1 && currentFocused && recordFocused && isPoppingLastEntry(currentFocused, recordFocused)) {
|
|
178
|
+
// If we detect that the state change is popping the last entry
|
|
179
|
+
// Dispatch a back action instead of resetting to the state
|
|
180
|
+
// This makes sure changes to history state since the entry was added don't get lost
|
|
181
|
+
navigation.goBack();
|
|
182
|
+
} else {
|
|
183
|
+
navigation.resetRoot(record.state);
|
|
184
|
+
}
|
|
151
185
|
return;
|
|
152
186
|
}
|
|
153
187
|
const state = getStateFromPathRef.current(path, configRef.current);
|
|
@@ -225,6 +259,7 @@ export function useLinking(ref, {
|
|
|
225
259
|
path,
|
|
226
260
|
state
|
|
227
261
|
});
|
|
262
|
+
previousIndexRef.current = history.index;
|
|
228
263
|
}
|
|
229
264
|
}
|
|
230
265
|
const onStateChange = async () => {
|
|
@@ -305,6 +340,7 @@ export function useLinking(ref, {
|
|
|
305
340
|
state
|
|
306
341
|
});
|
|
307
342
|
}
|
|
343
|
+
previousIndexRef.current = history.index;
|
|
308
344
|
};
|
|
309
345
|
|
|
310
346
|
// We debounce onStateChange coz we don't want multiple state changes to be handled at one time
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["findFocusedRoute","getActionFromState","getActionFromStateDefault","getPathFromState","getPathFromStateDefault","getStateFromPath","getStateFromPathDefault","useNavigationIndependentTree","isEqual","React","createMemoryHistory","ServerContext","getTotalHistoryLength","state","baseHistoryLength","history","length","routes","routeHistoryLength","reduce","acc","r","findMatchingState","a","b","undefined","key","aHistoryLength","bHistoryLength","aRoute","index","bRoute","aChildState","bChildState","series","cb","queue","Promise","resolve","callback","then","linkingHandlers","Set","useLinking","ref","enabled","config","independent","useEffect","process","env","NODE_ENV","size","console","error","join","trim","handler","Symbol","add","delete","useState","enabledRef","useRef","configRef","getStateFromPathRef","getPathFromStateRef","getActionFromStateRef","current","validateRoutesNotExistInRootState","useCallback","navigation","rootState","getRootState","some","routeNames","includes","name","server","use","getInitialState","value","location","window","path","pathname","search","thenable","onfulfilled","previousIndexRef","previousStateRef","pendingPopStatePathRef","listen","previousIndex","record","get","resetRoot","action","dispatch","e","warn","message","getPathForRoute","route","stateForPath","focusedRoute","params","previousRoute","hash","replace","onStateChange","previousState","pendingPath","previousFocusedState","focusedState","historyDelta","push","nextIndex","backIndex","currentIndex","go","addListener"],"sourceRoot":"../../src","sources":["useLinking.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["findFocusedRoute","getActionFromState","getActionFromStateDefault","getPathFromState","getPathFromStateDefault","getStateFromPath","getStateFromPathDefault","useNavigationIndependentTree","isEqual","React","createMemoryHistory","ServerContext","getRoutesUntilIndex","state","routes","slice","index","getTotalHistoryLength","baseHistoryLength","history","length","routeHistoryLength","reduce","acc","r","findMatchingState","a","b","undefined","key","aHistoryLength","bHistoryLength","aRoute","bRoute","aChildState","bChildState","isPoppingLastEntry","current","record","currentRoute","recordRoute","currentRouteHistory","recordRouteHistory","currentRoutes","recordRoutes","every","route","i","series","cb","queue","Promise","resolve","callback","then","linkingHandlers","Set","useLinking","ref","enabled","config","independent","useEffect","process","env","NODE_ENV","size","console","error","join","trim","handler","Symbol","add","delete","useState","enabledRef","useRef","configRef","getStateFromPathRef","getPathFromStateRef","getActionFromStateRef","validateRoutesNotExistInRootState","useCallback","navigation","rootState","getRootState","some","routeNames","includes","name","server","use","getInitialState","value","location","window","path","pathname","search","thenable","onfulfilled","previousIndexRef","previousStateRef","pendingPopStatePathRef","listen","previousIndex","get","currentState","currentFocused","recordFocused","goBack","resetRoot","action","dispatch","e","warn","message","getPathForRoute","stateForPath","focusedRoute","params","previousRoute","hash","replace","onStateChange","previousState","pendingPath","previousFocusedState","focusedState","historyDelta","push","nextIndex","backIndex","currentIndex","go","addListener"],"sourceRoot":"../../src","sources":["useLinking.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
import { type DefaultNavigatorOptions, type
|
|
1
|
+
import { type DefaultNavigatorOptions, type NavigatorTypeBagBase, type ParamListBase, type StackNavigationState } from '@react-navigation/core';
|
|
2
2
|
declare const StackNavigator: (props: DefaultNavigatorOptions<ParamListBase, StackNavigationState<ParamListBase>, {}, {}, unknown>) => import("react/jsx-runtime").JSX.Element;
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
State: StackNavigationState<ParamList>;
|
|
6
|
-
ScreenOptions: {};
|
|
7
|
-
EventMap: {};
|
|
8
|
-
NavigationList: NavigationListBase<ParamList>;
|
|
3
|
+
interface StubStackTypeBag extends NavigatorTypeBagBase {
|
|
4
|
+
State: StackNavigationState<this['ParamList']>;
|
|
9
5
|
Navigator: typeof StackNavigator;
|
|
10
|
-
}
|
|
6
|
+
}
|
|
7
|
+
export declare const createStackNavigator: import("@react-navigation/core").TypedNavigatorFactory<StubStackTypeBag>;
|
|
11
8
|
export {};
|
|
12
9
|
//# sourceMappingURL=createStackNavigator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createStackNavigator.d.ts","sourceRoot":"","sources":["../../../../src/__stubs__/createStackNavigator.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,uBAAuB,EAC5B,KAAK,
|
|
1
|
+
{"version":3,"file":"createStackNavigator.d.ts","sourceRoot":"","sources":["../../../../src/__stubs__/createStackNavigator.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,oBAAoB,EAG1B,MAAM,wBAAwB,CAAC;AAEhC,QAAA,MAAM,cAAc,GAClB,OAAO,uBAAuB,CAC5B,aAAa,EACb,oBAAoB,CAAC,aAAa,CAAC,EACnC,EAAE,EACF,EAAE,EACF,OAAO,CACR,4CAYF,CAAC;AAEF,UAAU,gBAAiB,SAAQ,oBAAoB;IACrD,KAAK,EAAE,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAC/C,SAAS,EAAE,OAAO,cAAc,CAAC;CAClC;AAED,eAAO,MAAM,oBAAoB,0EACyB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLinking.d.ts","sourceRoot":"","sources":["../../../src/useLinking.tsx"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,sBAAsB,EAE3B,KAAK,aAAa,EAEnB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"useLinking.d.ts","sourceRoot":"","sources":["../../../src/useLinking.tsx"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,sBAAsB,EAE3B,KAAK,aAAa,EAEnB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAkG9C;;GAEG;AACH,eAAO,MAAM,MAAM,GAAI,IAAI,MAAM,OAAO,CAAC,IAAI,CAAC,eAO7C,CAAC;AAIF,wBAAgB,UAAU,CAAC,SAAS,SAAS,aAAa,EACxD,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,sBAAsB,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,EAC9D,EACE,OAAc,EACd,MAAM,EACN,gBAA0C,EAC1C,gBAA0C,EAC1C,kBAA8C,GAC/C,EAAE,cAAc,CAAC,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsW7B"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@react-navigation/native",
|
|
3
3
|
"description": "React Native integration for React Navigation",
|
|
4
|
-
"version": "8.0.0-alpha.
|
|
4
|
+
"version": "8.0.0-alpha.20",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react-native",
|
|
7
7
|
"react-navigation",
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
"clean": "del lib"
|
|
58
58
|
},
|
|
59
59
|
"dependencies": {
|
|
60
|
-
"@react-navigation/core": "^8.0.0-alpha.
|
|
60
|
+
"@react-navigation/core": "^8.0.0-alpha.12",
|
|
61
61
|
"escape-string-regexp": "^5.0.0",
|
|
62
62
|
"fast-deep-equal": "^3.1.3",
|
|
63
63
|
"nanoid": "^5.1.7",
|
|
@@ -120,5 +120,5 @@
|
|
|
120
120
|
}
|
|
121
121
|
}
|
|
122
122
|
},
|
|
123
|
-
"gitHead": "
|
|
123
|
+
"gitHead": "d465f4e6b2996e5ed4648b23487e2027e83b263d"
|
|
124
124
|
}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createNavigatorFactory,
|
|
3
3
|
type DefaultNavigatorOptions,
|
|
4
|
-
type
|
|
4
|
+
type NavigatorTypeBagBase,
|
|
5
5
|
type ParamListBase,
|
|
6
6
|
type StackNavigationState,
|
|
7
7
|
StackRouter,
|
|
8
|
-
type TypedNavigator,
|
|
9
8
|
useNavigationBuilder,
|
|
10
9
|
} from '@react-navigation/core';
|
|
11
10
|
|
|
@@ -30,15 +29,10 @@ const StackNavigator = (
|
|
|
30
29
|
);
|
|
31
30
|
};
|
|
32
31
|
|
|
33
|
-
|
|
34
|
-
ParamList
|
|
35
|
-
>(): TypedNavigator<{
|
|
36
|
-
ParamList: ParamList;
|
|
37
|
-
State: StackNavigationState<ParamList>;
|
|
38
|
-
ScreenOptions: {};
|
|
39
|
-
EventMap: {};
|
|
40
|
-
NavigationList: NavigationListBase<ParamList>;
|
|
32
|
+
interface StubStackTypeBag extends NavigatorTypeBagBase {
|
|
33
|
+
State: StackNavigationState<this['ParamList']>;
|
|
41
34
|
Navigator: typeof StackNavigator;
|
|
42
|
-
}> {
|
|
43
|
-
return createNavigatorFactory(StackNavigator)();
|
|
44
35
|
}
|
|
36
|
+
|
|
37
|
+
export const createStackNavigator =
|
|
38
|
+
createNavigatorFactory<StubStackTypeBag>(StackNavigator);
|
package/src/useLinking.tsx
CHANGED
|
@@ -18,15 +18,20 @@ import type { Thenable } from './useThenable';
|
|
|
18
18
|
|
|
19
19
|
type ResultState = ReturnType<typeof getStateFromPathDefault>;
|
|
20
20
|
|
|
21
|
+
const getRoutesUntilIndex = (state: NavigationState) =>
|
|
22
|
+
state.routes.slice(0, state.index + 1);
|
|
23
|
+
|
|
21
24
|
/**
|
|
22
25
|
* Calculate total history length including both navigator history and route history
|
|
23
26
|
*/
|
|
24
27
|
const getTotalHistoryLength = (state: NavigationState): number => {
|
|
28
|
+
const routes = getRoutesUntilIndex(state);
|
|
29
|
+
|
|
25
30
|
const baseHistoryLength = state.history
|
|
26
31
|
? state.history.length
|
|
27
|
-
:
|
|
32
|
+
: routes.length;
|
|
28
33
|
|
|
29
|
-
const routeHistoryLength =
|
|
34
|
+
const routeHistoryLength = routes.reduce((acc, r) => {
|
|
30
35
|
return acc + (r.history ? r.history.length : 0);
|
|
31
36
|
}, 0);
|
|
32
37
|
|
|
@@ -74,6 +79,39 @@ const findMatchingState = <T extends NavigationState>(
|
|
|
74
79
|
return findMatchingState(aChildState, bChildState);
|
|
75
80
|
};
|
|
76
81
|
|
|
82
|
+
/**
|
|
83
|
+
* Check if the state change is popping the last route or history entry.
|
|
84
|
+
*/
|
|
85
|
+
const isPoppingLastEntry = (
|
|
86
|
+
current: NavigationState,
|
|
87
|
+
record: NavigationState
|
|
88
|
+
): boolean => {
|
|
89
|
+
const currentRoute = current.routes[current.index];
|
|
90
|
+
const recordRoute = record.routes[record.index];
|
|
91
|
+
const currentRouteHistory = currentRoute.history;
|
|
92
|
+
const recordRouteHistory = recordRoute.history ?? [];
|
|
93
|
+
|
|
94
|
+
if (currentRouteHistory?.length) {
|
|
95
|
+
return (
|
|
96
|
+
currentRoute.key === recordRoute.key &&
|
|
97
|
+
currentRouteHistory.length === recordRouteHistory.length + 1
|
|
98
|
+
);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
if (current.history && record.history) {
|
|
102
|
+
return current.history.length === record.history.length + 1;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
const currentRoutes = getRoutesUntilIndex(current);
|
|
106
|
+
const recordRoutes = getRoutesUntilIndex(record);
|
|
107
|
+
|
|
108
|
+
if (currentRoutes.length === recordRoutes.length + 1) {
|
|
109
|
+
return recordRoutes.every((route, i) => route.key === currentRoutes[i].key);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
return false;
|
|
113
|
+
};
|
|
114
|
+
|
|
77
115
|
/**
|
|
78
116
|
* Run async function in series as it's called.
|
|
79
117
|
*/
|
|
@@ -219,7 +257,27 @@ export function useLinking<ParamList extends ParamListBase>(
|
|
|
219
257
|
const record = history.get(index);
|
|
220
258
|
|
|
221
259
|
if (record?.path === path && record?.state) {
|
|
222
|
-
navigation.
|
|
260
|
+
const currentState = navigation.getRootState();
|
|
261
|
+
|
|
262
|
+
const [currentFocused, recordFocused] = findMatchingState(
|
|
263
|
+
currentState,
|
|
264
|
+
record.state
|
|
265
|
+
);
|
|
266
|
+
|
|
267
|
+
if (
|
|
268
|
+
previousIndex - index === 1 &&
|
|
269
|
+
currentFocused &&
|
|
270
|
+
recordFocused &&
|
|
271
|
+
isPoppingLastEntry(currentFocused, recordFocused)
|
|
272
|
+
) {
|
|
273
|
+
// If we detect that the state change is popping the last entry
|
|
274
|
+
// Dispatch a back action instead of resetting to the state
|
|
275
|
+
// This makes sure changes to history state since the entry was added don't get lost
|
|
276
|
+
navigation.goBack();
|
|
277
|
+
} else {
|
|
278
|
+
navigation.resetRoot(record.state);
|
|
279
|
+
}
|
|
280
|
+
|
|
223
281
|
return;
|
|
224
282
|
}
|
|
225
283
|
|
|
@@ -335,6 +393,7 @@ export function useLinking<ParamList extends ParamListBase>(
|
|
|
335
393
|
}
|
|
336
394
|
|
|
337
395
|
history.replace({ path, state });
|
|
396
|
+
previousIndexRef.current = history.index;
|
|
338
397
|
}
|
|
339
398
|
}
|
|
340
399
|
|
|
@@ -420,6 +479,8 @@ export function useLinking<ParamList extends ParamListBase>(
|
|
|
420
479
|
// This would happen if the user did a reset/conditionally changed navigators
|
|
421
480
|
history.replace({ path, state });
|
|
422
481
|
}
|
|
482
|
+
|
|
483
|
+
previousIndexRef.current = history.index;
|
|
423
484
|
};
|
|
424
485
|
|
|
425
486
|
// We debounce onStateChange coz we don't want multiple state changes to be handled at one time
|