@fto-consult/expo-ui 6.35.5 → 6.37.2
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/.env.readMe.txt +11 -11
- package/App.js +1 -0
- package/app.config.json +10 -10
- package/app.json +11 -11
- package/bin/create-app/App.js +40 -0
- package/bin/create-app.js +2 -0
- package/electron/utils/env.js +79 -79
- package/env.js +10 -10
- package/index.js +1 -68
- package/package.json +131 -130
- package/src/App.js +18 -173
- package/src/AppEntry/App.js +320 -0
- package/src/AppEntry/index.js +177 -0
- package/src/app.config.json +30 -30
- package/src/components/Chart/appexChart/appexChart.html +23 -23
- package/src/context/Provider.js +4 -2
- package/src/index.js +2 -320
- package/src/screens/Help/openLibraries.js +1 -1
- package/%ProgramData%/Microsoft/Windows/UUS/State/_active.uusver +0 -1
- package/bin/create-app/registerApp.js +0 -40
package/src/context/Provider.js
CHANGED
@@ -41,7 +41,7 @@ import { prepareScreens } from "./TableData";
|
|
41
41
|
},
|
42
42
|
realm : {}, //les options de configurations de la base de données realmdb
|
43
43
|
*/
|
44
|
-
const Provider = ({children,getTableData,handleHelpScreen,navigation,components,convertFiltersToSQL,getStructData,tablesData,structsData,...props})=>{
|
44
|
+
const Provider = ({children,getTableData,handleHelpScreen,navigation,swrConfig,components,convertFiltersToSQL,getStructData,tablesData,structsData,...props})=>{
|
45
45
|
const {extendAppTheme} = appConfig;
|
46
46
|
const { theme : pTheme } = useMaterial3Theme();
|
47
47
|
navigation = defaultObj(navigation);
|
@@ -53,6 +53,7 @@ const Provider = ({children,getTableData,handleHelpScreen,navigation,components,
|
|
53
53
|
getTableData = appConfig.getTable = appConfig.getTableData = getTableOrStructDataCall(tablesData,getTableData);
|
54
54
|
getStructData = appConfig.getStructData = getTableOrStructDataCall(structsData,getStructData);
|
55
55
|
appConfig.LoginComponent = Login;
|
56
|
+
swrConfig = defaultObj(swrConfig);
|
56
57
|
if(convertFiltersToSQL !== undefined){
|
57
58
|
appConfig.set("convertFiltersToSQL",convertFiltersToSQL);
|
58
59
|
}
|
@@ -148,7 +149,8 @@ const Provider = ({children,getTableData,handleHelpScreen,navigation,components,
|
|
148
149
|
getStructData,
|
149
150
|
tablesData,
|
150
151
|
structsData,
|
151
|
-
appConfig
|
152
|
+
appConfig,
|
153
|
+
swrConfig,
|
152
154
|
}}
|
153
155
|
children={children}
|
154
156
|
/>;
|
package/src/index.js
CHANGED
@@ -1,320 +1,2 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
import BackHandler from "$ecomponents/BackHandler";
|
4
|
-
import * as Linking from 'expo-linking';
|
5
|
-
import APP from "$capp";
|
6
|
-
import {AppStateService,trackIDLE,stop as stopIDLE} from "$capp/idle";
|
7
|
-
import { NavigationContainer} from '@react-navigation/native';
|
8
|
-
import {navigationRef} from "$cnavigation"
|
9
|
-
import NetInfo from '$cutils/NetInfo';
|
10
|
-
import Auth from "$cauth";
|
11
|
-
import {isNativeMobile,isElectron} from "$cplatform";
|
12
|
-
import Navigation from "./navigation";
|
13
|
-
import {set as setSession,get as getSession} from "$session";
|
14
|
-
import { showConfirm } from "$ecomponents/Dialog";
|
15
|
-
import {close as closePreloader, isVisible as isPreloaderVisible} from "$epreloader";
|
16
|
-
import SplashScreen from "$ecomponents/SplashScreen";
|
17
|
-
import {decycle} from "$cutils/json";
|
18
|
-
import init from "$capp/init";
|
19
|
-
import { setIsInitialized} from "$capp/utils";
|
20
|
-
import {isObj,isNonNullString,isPromise,defaultObj,defaultStr} from "$cutils";
|
21
|
-
import {loadFonts} from "$ecomponents/Icon/Font";
|
22
|
-
import appConfig from "$capp/config";
|
23
|
-
import Preloader from "$preloader";
|
24
|
-
import {PreloaderProvider} from "$epreloader";
|
25
|
-
import BottomSheetProvider from "$ecomponents/BottomSheet/Provider";
|
26
|
-
import DialogProvider from "$ecomponents/Dialog/Provider";
|
27
|
-
import SimpleSelect from '$ecomponents/SimpleSelect';
|
28
|
-
import {Provider as AlertProvider} from '$ecomponents/Dialog/confirm/Alert';
|
29
|
-
import { DialogProvider as FormDataDialogProvider } from '$eform/FormData';
|
30
|
-
import ErrorBoundaryProvider from "$ecomponents/ErrorBoundary/Provider";
|
31
|
-
import notify, {notificationRef} from "$notify";
|
32
|
-
import DropdownAlert from '$ecomponents/Dialog/DropdownAlert';
|
33
|
-
import {AuthProvider} from '$cauth';
|
34
|
-
import { PreferencesContext } from './Preferences';
|
35
|
-
import ErrorBoundary from "$ecomponents/ErrorBoundary";
|
36
|
-
import {updateTheme,defaultTheme} from "$theme";
|
37
|
-
import StatusBar from "$ecomponents/StatusBar";
|
38
|
-
import {Provider as PaperProvider,Portal } from 'react-native-paper';
|
39
|
-
import FontIcon from "$ecomponents/Icon/Font";
|
40
|
-
import useContext from "$econtext/hooks";
|
41
|
-
import { GestureHandlerRootView } from 'react-native-gesture-handler';
|
42
|
-
import { StyleSheet } from "react-native";
|
43
|
-
import Logo from "$ecomponents/Logo";
|
44
|
-
export * from "./context";
|
45
|
-
|
46
|
-
let MAX_BACK_COUNT = 1;
|
47
|
-
let countBack = 0;
|
48
|
-
let isBackConfirmShowing = false;
|
49
|
-
|
50
|
-
const resetExitCounter = ()=>{
|
51
|
-
countBack = 0
|
52
|
-
isBackConfirmShowing = false;
|
53
|
-
};
|
54
|
-
|
55
|
-
const NAVIGATION_PERSISTENCE_KEY = 'NAVIGATION_STATE';
|
56
|
-
|
57
|
-
/****
|
58
|
-
* init {function}: ()=>Promise<{}> est la fonction d'initialisation de l'application
|
59
|
-
* initialRouteName : la route initiale par défaut
|
60
|
-
* getStartedRouteName : la route par défaut de getStarted lorsque l'application est en mode getStarted, c'est à dire lorsque la fonction init renvoie une erreur (reject)
|
61
|
-
*/
|
62
|
-
function App({init:initApp,initialRouteName:appInitialRouteName,render,onMount}) {
|
63
|
-
AppStateService.init();
|
64
|
-
const {FontsIconsFilter,beforeExit,preferences:appPreferences,navigation,getStartedRouteName} = useContext();
|
65
|
-
const {containerProps} = navigation;
|
66
|
-
const [initialState, setInitialState] = React.useState(undefined);
|
67
|
-
const appReadyRef = React.useRef(true);
|
68
|
-
const [state,setState] = React.useState({
|
69
|
-
isLoading : true,
|
70
|
-
isInitialized:false,
|
71
|
-
});
|
72
|
-
React.useEffect(() => {
|
73
|
-
const loadResources = ()=>{
|
74
|
-
return new Promise((resolve)=>{
|
75
|
-
loadFonts(FontsIconsFilter).catch((e)=>{
|
76
|
-
console.warn(e," ierror loading app resources fonts");
|
77
|
-
}).finally(()=>{
|
78
|
-
resolve(true);
|
79
|
-
});
|
80
|
-
})
|
81
|
-
}
|
82
|
-
const restoreState = () => {
|
83
|
-
return new Promise((resolve,reject)=>{
|
84
|
-
(async ()=>{
|
85
|
-
try {
|
86
|
-
const initialUrl = await Linking.getInitialURL();
|
87
|
-
if (isNativeMobile() || initialUrl === null) {
|
88
|
-
const savedState = getSession(NAVIGATION_PERSISTENCE_KEY);
|
89
|
-
if (isObj(savedState)) {
|
90
|
-
setInitialState(savedState);
|
91
|
-
}
|
92
|
-
}
|
93
|
-
} catch(e){ console.log(e," is state error")}
|
94
|
-
finally {
|
95
|
-
appReadyRef.current = true;
|
96
|
-
resolve({});
|
97
|
-
}
|
98
|
-
})();
|
99
|
-
});
|
100
|
-
};
|
101
|
-
const subscription = AppState.addEventListener('change', AppStateService.getInstance().handleAppStateChange);
|
102
|
-
const beforeExitApp = (cb)=>{
|
103
|
-
return new Promise((resolve,reject)=>{
|
104
|
-
Preloader.closeAll();
|
105
|
-
showConfirm({
|
106
|
-
title : "Quitter l'application",
|
107
|
-
message : 'Voulez vous vraiment quitter l\'application?',
|
108
|
-
yes : 'Oui',
|
109
|
-
no : 'Non',
|
110
|
-
onSuccess : ()=>{
|
111
|
-
const foreceExit = ()=>{
|
112
|
-
BackHandler.exitApp();
|
113
|
-
if(isElectron() && window.ELECTRON && typeof ELECTRON.exitApp =='function'){
|
114
|
-
ELECTRON.exitApp({APP});
|
115
|
-
}
|
116
|
-
}
|
117
|
-
const exit = ()=>{
|
118
|
-
if(typeof beforeExit =='function'){
|
119
|
-
const r2 = beforeExit()
|
120
|
-
if(!isPromise(r2)){
|
121
|
-
throw {message:'La fonction before exit du contexte doit retourner une promesse',returnedResult:r2}
|
122
|
-
}
|
123
|
-
return r2.then(foreceExit).catch(reject);
|
124
|
-
}
|
125
|
-
foreceExit();
|
126
|
-
}
|
127
|
-
const r = {APP,exit};
|
128
|
-
APP.trigger(APP.EVENTS.BEFORE_EXIT,exit,(result)=>{
|
129
|
-
if(isObj(result) || Array.isArray(result)){
|
130
|
-
for(let ik in result){
|
131
|
-
if(result[ik] === false) return reject({message:'EXIT APP DENIED BY BEFORE EXIT EVENT HANDLER AT POSITON {0}'.sprintf(ik)});
|
132
|
-
}
|
133
|
-
}
|
134
|
-
resolve(r);
|
135
|
-
if(typeof cb =='function'){
|
136
|
-
cb(r);
|
137
|
-
}
|
138
|
-
});
|
139
|
-
},
|
140
|
-
onCancel : reject
|
141
|
-
})
|
142
|
-
})
|
143
|
-
}
|
144
|
-
/**** onBeforeExit prend en paramètre la fonction de rappel CB, qui lorsque la demande de sortie d'application est acceptée, alors elle est exécutée */
|
145
|
-
if(typeof APP.beforeExit !=='function'){
|
146
|
-
Object.defineProperties(APP,{
|
147
|
-
beforeExit : {
|
148
|
-
value : beforeExitApp,
|
149
|
-
}
|
150
|
-
})
|
151
|
-
}
|
152
|
-
const backAction = (args) => {
|
153
|
-
if(navigationRef && navigationRef.canGoBack()? true : false){
|
154
|
-
resetExitCounter();
|
155
|
-
navigationRef.goBack(null);
|
156
|
-
return false;
|
157
|
-
}
|
158
|
-
if(isBackConfirmShowing) {
|
159
|
-
return;
|
160
|
-
}
|
161
|
-
if(countBack < MAX_BACK_COUNT){
|
162
|
-
countBack++;
|
163
|
-
isBackConfirmShowing = false;
|
164
|
-
if(countBack === MAX_BACK_COUNT){
|
165
|
-
notify.toast({text:'Cliquez à nouveau pour quiiter l\'application'});
|
166
|
-
}
|
167
|
-
if(countBack === 2 && isPreloaderVisible()) {
|
168
|
-
closePreloader();
|
169
|
-
}
|
170
|
-
return false;
|
171
|
-
}
|
172
|
-
isBackConfirmShowing = true;
|
173
|
-
return beforeExitApp().finally(x=>{
|
174
|
-
isBackConfirmShowing = false;
|
175
|
-
}).then(({exit})=>{
|
176
|
-
exit();
|
177
|
-
})
|
178
|
-
};
|
179
|
-
const unsubscribeNetInfo = NetInfo.addEventListener(state => {
|
180
|
-
APP.setOnlineState(state);
|
181
|
-
});
|
182
|
-
NetInfo.fetch().catch((e)=>{
|
183
|
-
console.log(e," is net info heinn")
|
184
|
-
});
|
185
|
-
loadResources().finally(()=>{
|
186
|
-
(typeof initApp =='function'?initApp : init)({appConfig,contex:{setState}}).then((args)=>{
|
187
|
-
if(Auth.isLoggedIn()){
|
188
|
-
Auth.loginUser(false);
|
189
|
-
}
|
190
|
-
setState({
|
191
|
-
...state,hasGetStarted:true,...defaultObj(args && args?.state),isInitialized:true,isLoading : false,
|
192
|
-
});
|
193
|
-
}).catch((e)=>{
|
194
|
-
console.error(e," loading resources for app initialization");
|
195
|
-
setState({...state,isInitialized:true,isLoading : false,hasGetStarted:false});
|
196
|
-
})
|
197
|
-
});
|
198
|
-
|
199
|
-
const Events = {}
|
200
|
-
let events = [];
|
201
|
-
if(navigationRef && navigationRef.addListener){
|
202
|
-
for(let i in Events){
|
203
|
-
events.push(navigationRef.addListener(i,Events[i]));
|
204
|
-
}
|
205
|
-
}
|
206
|
-
APP.onElectron("BEFORE_EXIT",()=>{
|
207
|
-
return beforeExitApp().then(({exit})=>{
|
208
|
-
exit();
|
209
|
-
})
|
210
|
-
});
|
211
|
-
APP.on(APP.EVENTS.BACK_BUTTON,backAction);
|
212
|
-
return () => {
|
213
|
-
APP.off(APP.EVENTS.BACK_BUTTON,backAction);
|
214
|
-
|
215
|
-
if(subscription && subscription.remove){
|
216
|
-
subscription.remove();
|
217
|
-
}
|
218
|
-
events.map((ev)=>{
|
219
|
-
if(typeof ev =="function") ev();
|
220
|
-
})
|
221
|
-
unsubscribeNetInfo();
|
222
|
-
stopIDLE(false,true);
|
223
|
-
|
224
|
-
}
|
225
|
-
}, []);
|
226
|
-
const {isInitialized} = state;
|
227
|
-
const isLoading = state.isLoading || !isInitialized || !appReadyRef.current? true : false;
|
228
|
-
React.useEffect(()=>{
|
229
|
-
if(isInitialized){
|
230
|
-
setIsInitialized(true);
|
231
|
-
trackIDLE(true);
|
232
|
-
}
|
233
|
-
},[isInitialized]);
|
234
|
-
const hasGetStarted = state.hasGetStarted !== false? true : false;
|
235
|
-
const themeRef = React.useRef(null);
|
236
|
-
const [theme,setTheme] = React.useState(themeRef.current || updateTheme(defaultTheme));
|
237
|
-
themeRef.current = theme;
|
238
|
-
const updatePreferenceTheme = (customTheme,persist)=>{
|
239
|
-
setTheme(updateTheme(customTheme));
|
240
|
-
};
|
241
|
-
const forceRender = React.useForceRender();
|
242
|
-
const pref = typeof appPreferences =='function'? appPreferences({setTheme,forceRender,updateTheme:updatePreferenceTheme}) : appPreferences;
|
243
|
-
const preferences = React.useMemo(()=>({
|
244
|
-
updateTheme:updatePreferenceTheme,
|
245
|
-
theme,
|
246
|
-
...defaultObj(pref),
|
247
|
-
}),[theme,pref]);
|
248
|
-
const isLoaded = !isLoading;
|
249
|
-
const prevIsLoaded = React.usePrevious(isLoaded);
|
250
|
-
const onMountRef = React.useRef(false);
|
251
|
-
React.useEffect(()=>{
|
252
|
-
if(prevIsLoaded == isLoaded || !isLoaded || onMountRef.current) return;
|
253
|
-
if(typeof onMount ==='function'){
|
254
|
-
onMount({appConfig});
|
255
|
-
onMountRef.current = true;
|
256
|
-
}
|
257
|
-
},[isLoaded])
|
258
|
-
const child = isLoaded ? <NavigationContainer
|
259
|
-
ref={navigationRef}
|
260
|
-
initialState={initialState}
|
261
|
-
{...containerProps}
|
262
|
-
onStateChange={(state,...rest) =>{
|
263
|
-
setSession(NAVIGATION_PERSISTENCE_KEY,decycle(state),false);
|
264
|
-
if(typeof containerProps.onStateChange =='function'){
|
265
|
-
containerProps.onStateChange(state,...rest);
|
266
|
-
}
|
267
|
-
}}
|
268
|
-
fallback = {React.isValidElement(containerProps.fallback) ? containerProps.fallback : <Logo.Progress/>}
|
269
|
-
>
|
270
|
-
<Navigation
|
271
|
-
initialRouteName = {defaultStr(hasGetStarted ? appInitialRouteName : getStartedRouteName,"Home")}
|
272
|
-
state = {state}
|
273
|
-
hasGetStarted = {hasGetStarted}
|
274
|
-
isInitialized = {isInitialized}
|
275
|
-
onGetStart = {(e)=>{
|
276
|
-
setState({...state,hasGetStarted:true})
|
277
|
-
}}
|
278
|
-
/>
|
279
|
-
</NavigationContainer> : null;
|
280
|
-
const content = isLoaded ? typeof render == 'function'? render({children:child,appConfig,config:appConfig}) : child : null;
|
281
|
-
return <AuthProvider>
|
282
|
-
<GestureHandlerRootView testID={"RN_MainAppGestureHanleRootView"} style={styles.gesture}>
|
283
|
-
<PaperProvider
|
284
|
-
theme={theme}
|
285
|
-
settings={{
|
286
|
-
icon: (props) => {
|
287
|
-
return <FontIcon {...props}/>
|
288
|
-
},
|
289
|
-
}}
|
290
|
-
>
|
291
|
-
<Portal.Host testID="RN_NativePaperPortalHost">
|
292
|
-
<ErrorBoundaryProvider/>
|
293
|
-
<PreloaderProvider/>
|
294
|
-
<DialogProvider responsive testID={"RN_MainAppDialogProvider"}/>
|
295
|
-
<AlertProvider SimpleSelect={SimpleSelect}/>
|
296
|
-
<FormDataDialogProvider/>
|
297
|
-
<BottomSheetProvider/>
|
298
|
-
<DropdownAlert ref={notificationRef}/>
|
299
|
-
<ErrorBoundary>
|
300
|
-
<StatusBar/>
|
301
|
-
<SplashScreen isLoaded={isLoaded}>
|
302
|
-
<PreferencesContext.Provider value={preferences}>
|
303
|
-
{React.isValidElement(content) && content || child}
|
304
|
-
</PreferencesContext.Provider>
|
305
|
-
</SplashScreen>
|
306
|
-
</ErrorBoundary>
|
307
|
-
</Portal.Host>
|
308
|
-
</PaperProvider>
|
309
|
-
</GestureHandlerRootView>
|
310
|
-
</AuthProvider>;
|
311
|
-
}
|
312
|
-
|
313
|
-
export default App;
|
314
|
-
|
315
|
-
const styles = StyleSheet.create({
|
316
|
-
gesture : {
|
317
|
-
flex : 1,
|
318
|
-
flexGrow : 1,
|
319
|
-
}
|
320
|
-
})
|
1
|
+
export {default} from "./App";
|
2
|
+
export * from "./context";
|
@@ -1 +1 @@
|
|
1
|
-
module.exports = {"@fto-consult/expo-ui":{"version":"6.
|
1
|
+
module.exports = {"@fto-consult/expo-ui":{"version":"6.36.0","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.36.0","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-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"},"@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-storage":{"version":"48.1.0","url":"https://github.com/echowaves/expo-storage#readme","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.0","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.7","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"}};
|
@@ -1 +0,0 @@
|
|
1
|
-
1023.609.1142.0
|
@@ -1,40 +0,0 @@
|
|
1
|
-
import registerApp from "$expo-ui-root-path";
|
2
|
-
import screens from "./src/screens";
|
3
|
-
import drawerItems from "./src/navigation/drawerItems";
|
4
|
-
import Logo from "./src/components/Logo";
|
5
|
-
|
6
|
-
registerApp({
|
7
|
-
/**** application navigation */
|
8
|
-
navigation : {
|
9
|
-
//all application screeens
|
10
|
-
screens,
|
11
|
-
drawerItems, //application main drawer items
|
12
|
-
},
|
13
|
-
/**application components */
|
14
|
-
components : {
|
15
|
-
logo : Logo,//logo component's properties
|
16
|
-
loginPropsMutator : {},//login props mutator
|
17
|
-
authEnabled : true,//si le module d'authentification sera requis
|
18
|
-
},
|
19
|
-
/*** //for application initialization
|
20
|
-
@param {
|
21
|
-
appConfig : {object}, //application configuration manager imported from $capp/config
|
22
|
-
}
|
23
|
-
@return {Promise} if rejected, application is suposed to not be started, so we need to display getStarted Screen, il not, application logic is runned
|
24
|
-
*/
|
25
|
-
init : function({appConfig}){
|
26
|
-
return Promise.resolve("app is initialized");
|
27
|
-
},
|
28
|
-
/**
|
29
|
-
* //when main application component is mounted
|
30
|
-
*/
|
31
|
-
onMount : function(){},
|
32
|
-
/****when main application component is unmounted*/
|
33
|
-
onUnmount : function(){},
|
34
|
-
/**** called any time main application's component is rendered */
|
35
|
-
onRender : function(){},
|
36
|
-
/*** if you need to wrap main application content with some custom react Provider */
|
37
|
-
render : ({children})=>{
|
38
|
-
return children;
|
39
|
-
}
|
40
|
-
});
|