@fto-consult/expo-ui 6.38.2 → 6.38.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/expo-ui-path.js +1 -1
- package/package.json +1 -1
- package/src/AppEntry/App.js +34 -28
- package/src/AppEntry/RootView.js +17 -0
- package/src/components/AppBar/index.js +1 -1
- package/src/components/Drawer/DrawerLayout/index.js +7 -5
- package/src/components/Form/FormData/Dialog.js +0 -1
- package/src/components/HeavyScreen/index.js +40 -19
- package/src/layouts/Screen/ScreenWithoutAuthContainer.js +6 -13
- package/src/layouts/Screen/transition.js +20 -0
- package/src/navigation/index.js +2 -0
- package/src/screens/Help/openLibraries.js +1 -1
- package/src/screens/Loading.js +8 -0
package/expo-ui-path.js
CHANGED
@@ -18,7 +18,7 @@ module.exports = function (){
|
|
18
18
|
return path.resolve(__dirname,suffix).replace(sep,(sep+sep));///pour la résolution du module expo-ui en mode test
|
19
19
|
}
|
20
20
|
const expoUIPath = path.resolve(process.cwd(),"node_modules","@fto-consult","expo-ui");
|
21
|
-
if(process?.env?.WEBPACK_SERVE){
|
21
|
+
if(process?.env?.WEBPACK_SERVE && 'development' === process.env.NODE_ENV){
|
22
22
|
const rootPath = process.cwd();
|
23
23
|
const src = path.resolve(rootPath,"src");
|
24
24
|
try {
|
package/package.json
CHANGED
package/src/AppEntry/App.js
CHANGED
@@ -41,6 +41,8 @@ import useContext from "$econtext/hooks";
|
|
41
41
|
import { GestureHandlerRootView } from 'react-native-gesture-handler';
|
42
42
|
import { StyleSheet } from "react-native";
|
43
43
|
import Logo from "$ecomponents/Logo";
|
44
|
+
import AppEntryRootView from "./RootView";
|
45
|
+
import { SafeAreaProvider } from 'react-native-safe-area-context';
|
44
46
|
|
45
47
|
|
46
48
|
let MAX_BACK_COUNT = 1;
|
@@ -279,34 +281,38 @@ function App({init:initApp,initialRouteName:appInitialRouteName,render,onMount})
|
|
279
281
|
</NavigationContainer> : null;
|
280
282
|
const content = isLoaded ? typeof render == 'function'? render({children:child,appConfig,config:appConfig}) : child : null;
|
281
283
|
return <AuthProvider>
|
282
|
-
<
|
283
|
-
<
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
284
|
+
<SafeAreaProvider>
|
285
|
+
<GestureHandlerRootView testID={"RN_MainAppGestureHanleRootView"} style={styles.gesture}>
|
286
|
+
<AppEntryRootView>
|
287
|
+
<PaperProvider
|
288
|
+
theme={theme}
|
289
|
+
settings={{
|
290
|
+
icon: (props) => {
|
291
|
+
return <FontIcon {...props}/>
|
292
|
+
},
|
293
|
+
}}
|
294
|
+
>
|
295
|
+
<Portal.Host testID="RN_NativePaperPortalHost">
|
296
|
+
<ErrorBoundaryProvider/>
|
297
|
+
<PreloaderProvider/>
|
298
|
+
<DialogProvider responsive testID={"RN_MainAppDialogProvider"}/>
|
299
|
+
<AlertProvider SimpleSelect={SimpleSelect}/>
|
300
|
+
<FormDataDialogProvider/>
|
301
|
+
<BottomSheetProvider/>
|
302
|
+
<DropdownAlert ref={notificationRef}/>
|
303
|
+
<ErrorBoundary>
|
304
|
+
<StatusBar/>
|
305
|
+
<SplashScreen isLoaded={isLoaded}>
|
306
|
+
<PreferencesContext.Provider value={preferences}>
|
307
|
+
{React.isValidElement(content) && content || child}
|
308
|
+
</PreferencesContext.Provider>
|
309
|
+
</SplashScreen>
|
310
|
+
</ErrorBoundary>
|
311
|
+
</Portal.Host>
|
312
|
+
</PaperProvider>
|
313
|
+
</AppEntryRootView>
|
314
|
+
</GestureHandlerRootView>
|
315
|
+
</SafeAreaProvider>
|
310
316
|
</AuthProvider>;
|
311
317
|
}
|
312
318
|
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import {View,StyleSheet} from "react-native";
|
2
|
+
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
3
|
+
export default function AppEntryRootView(props){
|
4
|
+
const insets = useSafeAreaInsets();
|
5
|
+
console.log(insets," is inseetts");
|
6
|
+
return <View
|
7
|
+
testID="RN_MainAppEntryRootView"
|
8
|
+
{...props}
|
9
|
+
style = {StyleSheet.flatten([
|
10
|
+
{
|
11
|
+
paddingBottom: insets.bottom,
|
12
|
+
paddingLeft: insets.left,
|
13
|
+
paddingRight: insets.right,
|
14
|
+
},
|
15
|
+
props.style,{flex:1}])}
|
16
|
+
/>
|
17
|
+
}
|
@@ -106,6 +106,11 @@ export default class DrawerLayout extends React.PureComponent {
|
|
106
106
|
getBackgroundColor(){
|
107
107
|
return Colors.isValid(this.props.drawerBackgroundColor)? this.props.backgroundColor : theme.colors.surface;
|
108
108
|
}
|
109
|
+
renderContent({testID}){
|
110
|
+
return <View style={[styles.main]} testID={testID+"_DrawerLayoutContent"}>
|
111
|
+
{this.props.children}
|
112
|
+
</View>;
|
113
|
+
}
|
109
114
|
render() {
|
110
115
|
const { accessibilityViewIsModal, drawerShown, openValue } = this.state;
|
111
116
|
const elevation = typeof this.props.elevation =='number'? this.props.elevation : 5;
|
@@ -165,9 +170,6 @@ export default class DrawerLayout extends React.PureComponent {
|
|
165
170
|
if(permanent){
|
166
171
|
dynamicDrawerStyles.position = "relative";
|
167
172
|
}
|
168
|
-
const content = <Animated.View style={[styles.main]} testID={testID+"_DrawerLayoutContent"}>
|
169
|
-
{this.props.children}
|
170
|
-
</Animated.View>
|
171
173
|
return (
|
172
174
|
<View
|
173
175
|
testID = {testID}
|
@@ -186,7 +188,7 @@ export default class DrawerLayout extends React.PureComponent {
|
|
186
188
|
style={[styles.overlay,{backgroundColor:theme.colors.backdrop}, animatedOverlayStyles]}
|
187
189
|
/>
|
188
190
|
</TouchableWithoutFeedback>}
|
189
|
-
{posRight &&
|
191
|
+
{posRight && this.renderContent({testID})}
|
190
192
|
<Animated.View
|
191
193
|
testID={testID+"_NavigationViewContainer"}
|
192
194
|
ref={React.mergeRefs(navigationViewRef,this._navigationViewRef)}
|
@@ -200,7 +202,7 @@ export default class DrawerLayout extends React.PureComponent {
|
|
200
202
|
>
|
201
203
|
{this.props.renderNavigationView()}
|
202
204
|
</Animated.View>
|
203
|
-
{!posRight &&
|
205
|
+
{!posRight && this.renderContent({testID})}
|
204
206
|
</View>
|
205
207
|
);
|
206
208
|
}
|
@@ -99,7 +99,6 @@ FormDataDialogComponent.propTypes = {
|
|
99
99
|
open : PropTypes.func, //la fonction appelée pour ouvrir la boîte de dialogue
|
100
100
|
close : PropTypes.func, //la fonction appelée pour fermer la boîte de dialogue
|
101
101
|
containerProps : PropTypes.object,
|
102
|
-
withHeavyScreen : PropTypes.bool,
|
103
102
|
contentProps : PropTypes.object,
|
104
103
|
preloader : PropTypes.any,
|
105
104
|
preloaderProps : PropTypes.object,
|
@@ -1,9 +1,9 @@
|
|
1
1
|
import React from '$react';
|
2
|
-
import
|
3
|
-
import PropTypes from "prop-types"
|
4
|
-
import Animated,{ FadeIn, FadeOut } from 'react-native-reanimated';
|
2
|
+
import PropTypes from "prop-types";
|
5
3
|
import { StylePropTypes } from '$theme';
|
6
4
|
import {isNumber,defaultStr} from "$cutils";
|
5
|
+
import { useNavigation } from '$enavigation/utils';
|
6
|
+
import { StyleSheet } from 'react-native';
|
7
7
|
|
8
8
|
const OptimizedHeavyScreen = React.forwardRef(({
|
9
9
|
style,
|
@@ -15,23 +15,38 @@ const OptimizedHeavyScreen = React.forwardRef(({
|
|
15
15
|
placeholder,
|
16
16
|
enabled,
|
17
17
|
},ref) => {
|
18
|
-
timeout = isNumber(timeout)? timeout : isNumber(transitionTimeout)? transitionTimeout :
|
19
|
-
const
|
20
|
-
|
18
|
+
timeout = isNumber(timeout)? timeout : isNumber(transitionTimeout)? transitionTimeout : 500;
|
19
|
+
const navigation = useNavigation();
|
20
|
+
const transitionStaredRef = React.useRef(false);
|
21
|
+
const [isScreenLoaded,setIsScreenLoaded] = React.useState(false);
|
22
|
+
React.useEffect(() => {
|
23
|
+
const unsubscribe1 = navigation.addListener('transitionStart', (e) => {
|
24
|
+
// Do something
|
25
|
+
transitionStaredRef.current = true;
|
26
|
+
});
|
27
|
+
const unsubscribe = navigation.addListener('transitionEnd', (e) => {
|
28
|
+
// Do something
|
29
|
+
if(isScreenLoaded) return;
|
30
|
+
setIsScreenLoaded(true);
|
31
|
+
});
|
32
|
+
setTimeout(()=>{
|
33
|
+
if(transitionStaredRef.current){
|
34
|
+
return;
|
35
|
+
}
|
36
|
+
if(isScreenLoaded) return;
|
37
|
+
setIsScreenLoaded(true);
|
38
|
+
},timeout)
|
39
|
+
return ()=>{
|
40
|
+
transitionStaredRef.current = false;
|
41
|
+
unsubscribe && unsubscribe();
|
42
|
+
unsubscribe1 && unsubscribe1();
|
43
|
+
}
|
44
|
+
}, [navigation]);
|
45
|
+
const Placeholder = placeholder;
|
21
46
|
const children = React.useStableMemo(()=>cChildren,[cChildren]);
|
22
|
-
if(enabled === false) return children;
|
47
|
+
if(enabled === false && isScreenLoaded) return children;
|
23
48
|
placeholder = React.isComponent(Placeholder)? <Placeholder /> : React.isValidElement(Placeholder)? Placeholder : null;
|
24
|
-
return (
|
25
|
-
<Animated.View
|
26
|
-
testID={defaultStr(testID,'RN_OptimizedHeavyScreen')}
|
27
|
-
entering={FadeIn}
|
28
|
-
exiting={FadeOut}
|
29
|
-
style={[{flex:1},style]}
|
30
|
-
ref={React.useMergeRefs(transitionRef,ref)}
|
31
|
-
>
|
32
|
-
{areInteractionsComplete && isLoading !==true ? (children) : placeholder}
|
33
|
-
</Animated.View>
|
34
|
-
)
|
49
|
+
return isScreenLoaded && isLoading !==true ? (children) : placeholder;
|
35
50
|
});
|
36
51
|
|
37
52
|
export default OptimizedHeavyScreen;
|
@@ -50,4 +65,10 @@ OptimizedHeavyScreen.propTypes = {
|
|
50
65
|
isLoading : PropTypes.bool,//si l'écan où les données sont en train d'être chargé
|
51
66
|
}
|
52
67
|
|
53
|
-
OptimizedHeavyScreen.displayName = "OptimizedHeavyScreenComponent";
|
68
|
+
OptimizedHeavyScreen.displayName = "OptimizedHeavyScreenComponent";
|
69
|
+
|
70
|
+
const styles = StyleSheet.create({
|
71
|
+
container : {
|
72
|
+
backgroundColor : 'transparent'
|
73
|
+
}
|
74
|
+
})
|
@@ -1,6 +1,5 @@
|
|
1
1
|
import React from '$react';
|
2
2
|
import {StyleSheet} from 'react-native';
|
3
|
-
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
4
3
|
import PropTypes from "prop-types";
|
5
4
|
import {defaultObj,defaultStr,defaultNumber,defaultBool,uniqid} from "$cutils";
|
6
5
|
import View from "$ecomponents/View";
|
@@ -13,6 +12,8 @@ import theme,{StyleProp} from "$theme";
|
|
13
12
|
import StatusBar from "$ecomponents/StatusBar";
|
14
13
|
import ScrollView from "$ecomponents/ScrollView";
|
15
14
|
import KeyboardAvoidingView from "$ecomponents/KeyboardAvoidingView";
|
15
|
+
import Animated from 'react-native-reanimated';
|
16
|
+
import {sharedElementTransition} from "./transition";
|
16
17
|
|
17
18
|
const getDefaultTitle = (nTitle,returnStr)=>{
|
18
19
|
let titleStr = React.getTextContent(nTitle);
|
@@ -55,20 +56,11 @@ export default function MainScreenScreenWithoutAuthContainer(props) {
|
|
55
56
|
backgroundColor,
|
56
57
|
...rest
|
57
58
|
} = props;
|
58
|
-
|
59
|
+
|
59
60
|
keyboardAvoidingViewProps = defaultObj(keyboardAvoidingViewProps);
|
60
61
|
testID = defaultStr(testID,"RN_MainScreenScreenWithoutAuthContainer")
|
61
62
|
containerProps = defaultObj(containerProps);
|
62
63
|
backgroundColor = theme.Colors.isValid(backgroundColor)? backgroundColor : theme.colors.background;
|
63
|
-
const containerStyle = [
|
64
|
-
styles.container,
|
65
|
-
{
|
66
|
-
backgroundColor,
|
67
|
-
paddingBottom: insets.bottom,
|
68
|
-
paddingLeft: insets.left,
|
69
|
-
paddingRight: insets.right,
|
70
|
-
},
|
71
|
-
];
|
72
64
|
options = defaultObj(options);
|
73
65
|
appBarProps = defaultObj(appBarProps)
|
74
66
|
title = defaultVal(title,appBarProps.title);
|
@@ -109,7 +101,7 @@ export default function MainScreenScreenWithoutAuthContainer(props) {
|
|
109
101
|
const WrapperProps = modal? {screenName} : {};
|
110
102
|
const portalId = uniqid("screeen-container-"+screenName);
|
111
103
|
return <Wrapper {...WrapperProps}>
|
112
|
-
<View testID={testID+"_ScreenContentContainer"} id={portalId} {...containerProps} style={[
|
104
|
+
<Animated.View sharedTransitionTag="tag" sharedTransitionStyle ={sharedElementTransition} testID={testID+"_ScreenContentContainer"} id={portalId} {...containerProps} style={[styles.container,{backgroundColor},modal && styles.modal,containerProps.style]} >
|
113
105
|
<KeyboardAvoidingView testID={testID} {...keyboardAvoidingViewProps} style={[styles.keyboardAvoidingView,keyboardAvoidingViewProps.style]}>
|
114
106
|
{withStatusBar !== false ? <StatusBar/> : null}
|
115
107
|
{appBar === false ? null : React.isValidElement(appBar)? state.AppBar : <AppBar
|
@@ -138,7 +130,7 @@ export default function MainScreenScreenWithoutAuthContainer(props) {
|
|
138
130
|
</View>
|
139
131
|
)}
|
140
132
|
</KeyboardAvoidingView>
|
141
|
-
</View>
|
133
|
+
</Animated.View>
|
142
134
|
</Wrapper>
|
143
135
|
}
|
144
136
|
|
@@ -156,6 +148,7 @@ const styles = StyleSheet.create({
|
|
156
148
|
flex : 1,
|
157
149
|
backgroundColor : "transparent",
|
158
150
|
},
|
151
|
+
animated : null,//{ width: 300, height: 300 },
|
159
152
|
wrapper : {
|
160
153
|
flex : 1,
|
161
154
|
/*flex : 1,
|
@@ -0,0 +1,20 @@
|
|
1
|
+
import {
|
2
|
+
SharedTransition,
|
3
|
+
withSpring,
|
4
|
+
} from 'react-native-reanimated'
|
5
|
+
|
6
|
+
const SPRING_CONFIG = {
|
7
|
+
mass: 1,
|
8
|
+
stiffness: 100,
|
9
|
+
damping: 200,
|
10
|
+
}
|
11
|
+
|
12
|
+
export const sharedElementTransition = SharedTransition.custom((values) => {
|
13
|
+
'worklet'
|
14
|
+
return {
|
15
|
+
height: withSpring(values.targetHeight, SPRING_CONFIG),
|
16
|
+
width: withSpring(values.targetWidth, SPRING_CONFIG),
|
17
|
+
originX: withSpring(values.targetGlobalOriginX, SPRING_CONFIG),
|
18
|
+
originY: withSpring(values.targetGlobalOriginY, SPRING_CONFIG),
|
19
|
+
}
|
20
|
+
})
|
package/src/navigation/index.js
CHANGED
@@ -7,6 +7,7 @@ import useContext from "$econtext/hooks";
|
|
7
7
|
import { MainNavigationProvider } from "./hooks";
|
8
8
|
import {isWeb,isAndroid} from "$cplatform";
|
9
9
|
import Stack from "./Stack";
|
10
|
+
import theme from "$theme";
|
10
11
|
|
11
12
|
export * from "./hooks";
|
12
13
|
|
@@ -32,6 +33,7 @@ export default function NavigationComponent (props){
|
|
32
33
|
const opts = {
|
33
34
|
headerShown : false,
|
34
35
|
header : ()=> null,
|
36
|
+
headerStyle: { backgroundColor: theme.colors.primary},
|
35
37
|
presentation : isAndroid()? "card":"default",
|
36
38
|
animationEnabled : true,
|
37
39
|
}
|
@@ -1 +1 @@
|
|
1
|
-
module.exports = {"@fto-consult/expo-ui":{"version":"6.
|
1
|
+
module.exports = {"@fto-consult/expo-ui":{"version":"6.38.2","url":"https://github.com/borispipo/expo-ui#readme","license":"ISC"},"@emotion/native":{"version":"11.11.0","url":"https://emotion.sh","license":"MIT"},"@emotion/react":{"version":"11.11.1","url":"https://github.com/emotion-js/emotion/tree/main/packages/react","license":"MIT"},"@expo/html-elements":{"version":"0.5.1","url":"https://github.com/expo/expo/tree/main/packages/html-elements","license":"MIT"},"@expo/metro-config":{"version":"0.10.7","url":"https://github.com/expo/expo.git","license":"MIT"},"@expo/vector-icons":{"version":"13.0.0","url":"https://expo.github.io/vector-icons","license":"MIT"},"@expo/webpack-config":{"version":"19.0.0","url":"https://github.com/expo/expo-cli.git","license":"MIT"},"@faker-js/faker":{"version":"8.0.2","url":"https://github.com/faker-js/faker.git","license":"MIT"},"@fto-consult/common":{"version":"3.39.1","url":"https://github.com/borispipo/common#readme","license":"ISC"},"@pchmn/expo-material3-theme":{"version":"1.3.1","url":"https://github.com/pchmn/expo-material3-theme#readme","license":"MIT"},"@react-native-async-storage/async-storage":{"version":"1.18.2","url":"https://github.com/react-native-async-storage/async-storage#readme","license":"MIT"},"@react-native-community/datetimepicker":{"version":"7.2.0","url":"https://github.com/react-native-community/datetimepicker#readme","license":"MIT"},"@react-native-community/netinfo":{"version":"9.3.10","url":"https://github.com/react-native-netinfo/react-native-netinfo#readme","license":"MIT"},"@react-native/assets-registry":{"version":"0.72.0","url":"git@github.com:facebook/react-native.git","license":"MIT"},"@react-navigation/native":{"version":"6.1.7","url":"https://reactnavigation.org","license":"MIT"},"@react-navigation/native-stack":{"version":"6.9.13","url":"https://github.com/software-mansion/react-native-screens#readme","license":"MIT"},"@react-navigation/stack":{"version":"6.3.17","url":"https://reactnavigation.org/docs/stack-navigator/","license":"MIT"},"@shopify/flash-list":{"version":"1.4.3","url":"https://shopify.github.io/flash-list/","license":"MIT"},"apexcharts":{"version":"3.42.0","url":"https://apexcharts.com","license":"MIT"},"babel-plugin-inline-dotenv":{"version":"1.7.0","url":"https://github.com/brysgo/babel-plugin-inline-dotenv#readme","license":"ISC"},"babel-plugin-module-resolver":{"version":"5.0.0","url":"https://github.com/tleunen/babel-plugin-module-resolver.git","license":"MIT"},"expo":{"version":"49.0.11","url":"https://github.com/expo/expo/tree/main/packages/expo","license":"MIT"},"expo-camera":{"version":"13.4.4","url":"https://docs.expo.dev/versions/latest/sdk/camera/","license":"MIT"},"expo-clipboard":{"version":"4.3.1","url":"https://docs.expo.dev/versions/latest/sdk/clipboard","license":"MIT"},"expo-font":{"version":"11.4.0","url":"https://docs.expo.dev/versions/latest/sdk/font/","license":"MIT"},"expo-image-picker":{"version":"14.3.2","url":"https://docs.expo.dev/versions/latest/sdk/imagepicker/","license":"MIT"},"expo-linking":{"version":"5.0.2","url":"https://docs.expo.dev/versions/latest/sdk/linking","license":"MIT"},"expo-sqlite":{"version":"11.3.3","url":"https://docs.expo.dev/versions/latest/sdk/sqlite/","license":"MIT"},"expo-status-bar":{"version":"1.6.0","url":"https://docs.expo.dev/versions/latest/sdk/status-bar/","license":"MIT"},"expo-system-ui":{"version":"2.4.0","url":"https://docs.expo.dev/versions/latest/sdk/system-ui","license":"MIT"},"expo-web-browser":{"version":"12.3.2","url":"https://docs.expo.dev/versions/latest/sdk/webbrowser/","license":"MIT"},"file-saver":{"version":"2.0.5","url":"https://github.com/eligrey/FileSaver.js#readme","license":"MIT"},"fs-extra":{"version":"11.1.1","url":"https://github.com/jprichardson/node-fs-extra","license":"MIT"},"google-libphonenumber":{"version":"3.2.33","url":"https://ruimarinho.github.io/google-libphonenumber/","license":"(MIT AND Apache-2.0)"},"htmlparser2-without-node-native":{"version":"3.9.2","url":"git://github.com/fb55/htmlparser2.git","license":"MIT"},"is-plain-obj":{"version":"4.1.0","license":"MIT"},"pdfmake":{"version":"0.2.7","url":"http://pdfmake.org","license":"MIT"},"process":{"version":"0.11.10","url":"git://github.com/shtylman/node-process.git","license":"MIT"},"prop-types":{"version":"15.8.1","url":"https://facebook.github.io/react/","license":"MIT"},"react":{"version":"18.2.0","url":"https://reactjs.org/","license":"MIT"},"react-content-loader":{"version":"6.2.1","url":"https://github.com/danilowoz/react-content-loader","license":"MIT"},"react-dom":{"version":"18.2.0","url":"https://reactjs.org/","license":"MIT"},"react-native":{"version":"0.72.4","license":"MIT"},"react-native-big-list":{"version":"1.6.1","url":"https://marcocesarato.github.io/react-native-big-list-docs/","license":"GPL-3.0-or-later"},"react-native-blob-util":{"version":"0.18.6","url":"https://github.com/RonRadtke/react-native-blob-util","license":"MIT"},"react-native-gesture-handler":{"version":"2.12.1","url":"https://github.com/software-mansion/react-native-gesture-handler#readme","license":"MIT"},"react-native-iphone-x-helper":{"version":"1.3.1","url":"https://github.com/ptelad/react-native-iphone-x-helper#readme","license":"MIT"},"react-native-mime-types":{"version":"2.4.0","license":"MIT"},"react-native-paper":{"version":"5.10.4","url":"https://callstack.github.io/react-native-paper","license":"MIT"},"react-native-paper-dates":{"version":"0.19.3","url":"https://github.com/web-ridge/react-native-paper-dates#readme","license":"MIT"},"react-native-reanimated":{"version":"3.3.0","url":"https://github.com/software-mansion/react-native-reanimated#readme","license":"MIT"},"react-native-safe-area-context":{"version":"4.6.3","url":"https://github.com/th3rdwave/react-native-safe-area-context#readme","license":"MIT"},"react-native-screens":{"version":"3.22.1","url":"https://github.com/software-mansion/react-native-screens#readme","license":"MIT"},"react-native-svg":{"version":"13.9.0","url":"https://github.com/react-native-community/react-native-svg","license":"MIT"},"react-native-web":{"version":"0.19.8","url":"git://github.com/necolas/react-native-web.git","license":"MIT"},"react-native-webview":{"version":"13.2.2","url":"https://github.com/react-native-webview/react-native-webview#readme","license":"MIT"},"react-virtuoso":{"version":"4.5.1","url":"https://virtuoso.dev/","license":"MIT"},"sharp-cli":{"version":"4.1.1","url":"https://github.com/vseventer/sharp-cli","license":"MIT"},"tippy.js":{"version":"6.3.7","url":"https://atomiks.github.io/tippyjs/","license":"MIT"},"uninstall":{"version":"0.0.0","license":"MIT"},"websql":{"version":"2.0.3","url":"git://github.com/nolanlawson/node-websql.git","license":"Apache-2.0"},"xlsx":{"version":"0.18.5","url":"https://sheetjs.com/","license":"Apache-2.0"}};
|
@@ -0,0 +1,8 @@
|
|
1
|
+
import ActivityIndicator from "$ecomponents/ActivityIndicator";
|
2
|
+
import View from "$ecomponents/View";
|
3
|
+
import theme from "$theme";
|
4
|
+
export default function ScreenLoadingActivityIndicator({...props}){
|
5
|
+
return <View testID={"MainScreenWrapperLoadingIndicator"} style={[theme.alignItemsCenter,theme.justifyContentCenter]}>
|
6
|
+
<ActivityIndicator/>
|
7
|
+
</View>
|
8
|
+
}
|