@fto-consult/expo-ui 6.70.0 → 6.70.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.
@@ -35,6 +35,16 @@ export default function AppMainEntry(){
35
35
  profilePropsMutator : ({fields,...props})=>({fields,...props}),//la fonction permettant de muter les champs liés à l'écran de mise à jour d'un profil utilisateur
36
36
  }}
37
37
  components = {{
38
+ /**
39
+ * ///le composant permettant de faire office de provider principal de l'application,
40
+ //ce composatnn permet de wrapper le contenu principal de l'application, les utilitaires de navigation, de la boîte de dialogue et bien d'autre ne doivent pas être utilisé
41
+ il peut être utilisé pour par exemple wrapper le contenu au travaer d'un store redux et bien d'autre
42
+ * @param {*} param0
43
+ * @returns
44
+ */
45
+ MainProvider : function({children,...props}){
46
+ return children;
47
+ },
38
48
  /*** logo : ReactNode|ReactElement | ReactComponent | object {
39
49
  image{ReactComponent} :,text {ReactComponent}
40
50
  },*/
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fto-consult/expo-ui",
3
- "version": "6.70.0",
3
+ "version": "6.70.2",
4
4
  "description": "Bibliothèque de composants UI Expo,react-native",
5
5
  "main": "main",
6
6
  "scripts": {
@@ -1,16 +1,20 @@
1
1
  import {View,StyleSheet} from "react-native";
2
2
  import { useSafeAreaInsets } from 'react-native-safe-area-context';
3
- export default function AppEntryRootView(props){
3
+ import React from "$react";
4
+ export default function AppEntryRootView({MainProvider,...props}){
5
+ const Wrapper = React.isComponent(MainProvider)? MainProvider : React.Fragment;
4
6
  const insets = useSafeAreaInsets();
5
- return <View
6
- testID="RN_MainAppEntryRootView"
7
- {...props}
8
- style = {StyleSheet.flatten([
9
- {
10
- paddingBottom: insets.bottom,
11
- paddingLeft: insets.left,
12
- paddingRight: insets.right,
13
- },
14
- props.style,{flex:1}])}
15
- />
7
+ return <Wrapper>
8
+ <View
9
+ testID="RN_MainAppEntryRootView"
10
+ {...props}
11
+ style = {StyleSheet.flatten([
12
+ {
13
+ paddingBottom: insets.bottom,
14
+ paddingLeft: insets.left,
15
+ paddingRight: insets.right,
16
+ },
17
+ props.style,{flex:1}])}
18
+ />
19
+ </Wrapper>
16
20
  }
@@ -64,7 +64,7 @@ const NAVIGATION_PERSISTENCE_KEY = 'NAVIGATION_STATE';
64
64
  */
65
65
  function App({init:initApp,initialRouteName:appInitialRouteName,children}) {
66
66
  AppStateService.init();
67
- const {FontsIconsFilter,beforeExit,preferences:appPreferences,navigation,getStartedRouteName} = useContext();
67
+ const {FontsIconsFilter,beforeExit,AppWrapper,preferences:appPreferences,navigation,getStartedRouteName,components:{MainProvider}} = useContext();
68
68
  const {containerProps} = navigation;
69
69
  const [initialState, setInitialState] = React.useState(undefined);
70
70
  const appReadyRef = React.useRef(true);
@@ -292,7 +292,7 @@ function App({init:initApp,initialRouteName:appInitialRouteName,children}) {
292
292
  const content = isLoaded ? typeof children == 'function'? children({children:child,appConfig,config:appConfig}) : child : null;
293
293
  return <SafeAreaProvider>
294
294
  <GestureHandlerRootView testID={"RN_MainAppGestureHanleRootView"} style={styles.gesture}>
295
- <AppEntryRootView>
295
+ <AppEntryRootView MainProvider={MainProvider}>
296
296
  <PaperProvider
297
297
  theme={theme}
298
298
  settings={{
@@ -81,6 +81,7 @@ const AutoSizerVerticalComponent = React.forwardRef(({onLayout,isScrollView,scre
81
81
  if(canUpdate && typeof getRenderingStyle ==='function'){
82
82
  getRenderingStyle({...cStyle,...restStyle});
83
83
  }
84
+ return children;
84
85
  return <View ref={layoutRef}
85
86
  onLayout={(a,b,c)=>{
86
87
  if(onLayout && onLayout(a,b,c) === false) return;
@@ -213,7 +213,7 @@ const SWRDatagridComponent = React.forwardRef((props,ref)=>{
213
213
  });
214
214
  const dataRef = React.useRef(null);
215
215
  const totalRef = React.useRef(0);
216
- const loading = (customIsLoading === true || isLoading || (isValidating && showProgressRef.current));
216
+ const loading = (customIsLoading === true || isLoading || (false && isValidating && showProgressRef.current));
217
217
  const {data,total} = React.useMemo(()=>{
218
218
  if((loading && customIsLoading !== false) || !isObjOrArray(result)){
219
219
  return {data:dataRef.current,total:totalRef.current};
@@ -1,27 +1,9 @@
1
1
  import React from '$react';
2
2
  import { ScrollView} from 'react-native';
3
3
  import PropTypes from "prop-types";
4
- import {defaultStr,defaultObj} from "$cutils";
5
- import {Vertical as AutoSizeVertical} from "$ecomponents/AutoSizer";
6
- import {isWeb} from "$cplatform";
7
4
 
8
5
  const ScrollViewComponent = React.forwardRef(({withAutoSizer,autoSizerProps,testID,...rest},ref) => {
9
6
  return <ScrollView testID={testID} {...rest} ref={ref}/>
10
- testID = defaultStr(testID,'RN_ScrollViewComponent');
11
- const autoSize = React.useRef(withAutoSizer).current;
12
- if(!autoSize || rest.horizontal === true || rest.vertical === false){
13
- return <ScrollView testID={testID} ref={ref} {...rest}/>
14
- }
15
- autoSizerProps = defaultObj(autoSizerProps);
16
- const autoSizerRef = React.useRef(null);
17
- return <AutoSizeVertical ref={autoSizerRef} isScrollView {...autoSizerProps} testID={testID+"_ScrollViewContainer"}>
18
- <ScrollView
19
- ref={ref} {...rest}
20
- testID={testID}
21
- style = {[{flex:1}]}
22
- contentContainerStyle = {[{flex:1,height:'100%'},rest.contentContainerStyle]}
23
- />
24
- </AutoSizeVertical>
25
7
  });
26
8
 
27
9
  ScrollViewComponent.displayName = "ScrollViewComponent";
@@ -6,6 +6,7 @@ import {defaultStr,isObj,defaultObj} from "$cutils";
6
6
  const AutoSizeVerticalList = React.forwardRef(({testID,autoSizerProps,...props},ref)=>{
7
7
  testID = defaultStr(testID,"RN_AutoSizeVerticalListComponent")
8
8
  autoSizerProps = defaultObj(autoSizerProps);
9
+ return <List {...props} style={[props.style]} ref={ref}/>;
9
10
  return <AutoSizeVertical withPadding={false} testID={testID+"_AutoSizerVertical"} {...autoSizerProps} >
10
11
  <List {...props} style={[props.style]} ref={ref}/>
11
12
  </AutoSizeVertical>
@@ -48,6 +48,7 @@ Object.map(Utils,(v,i)=>{
48
48
  handleHelpScreen : {boolean}, //si l'écran d'aide sera pris en compte, l'écran d'aide ainsi que les écrans des termes d'utilisations et autres
49
49
  convertFiltersToSQL : {boolean}, si les filtres de datagrid ou filtres seront convertis au format SQL
50
50
  components : {
51
+ MainProvider : {ReactComponent}, //le composant qui permet de wrapper le contenu de l'application expo. Nb, ce composant ne peut utiliser ni les routes, nis les DialogProvider,
51
52
  logo : ReactNode | ReactComponent | object {
52
53
  image{ReactComponent} :,
53
54
  text {ReactComponent}
@@ -61,6 +62,7 @@ Object.map(Utils,(v,i)=>{
61
62
  TableDataScreen | TableDataScreenItem : {ReactComponent}, le composant TableDataScreenItem, à utiliser pour le rendu des écrans
62
63
  TableDataScreenList | TableDataListScreen {ReactComponent}, le composant TableDataList à utiliser pour le rendu des écrans listants les éléments du table data
63
64
  },
65
+
64
66
  navigation : {
65
67
  screens : {Array}, les écrans de navigation,
66
68
  screenOptions : {object}, les options du composant Stack.Navigator, voir https://reactnavigation.org/docs/native-stack-navigator/