@fto-consult/expo-ui 6.2.0 → 6.2.1
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/package.json
CHANGED
package/src/App.js
CHANGED
|
@@ -18,6 +18,7 @@ import { Dimensions,Keyboard } from 'react-native';
|
|
|
18
18
|
import {isTouchDevice} from "$platform";
|
|
19
19
|
import * as Utils from "$cutils";
|
|
20
20
|
import useContext from "$econtext";
|
|
21
|
+
import appConfig from "$capp/config";
|
|
21
22
|
|
|
22
23
|
Object.map(Utils,(v,i)=>{
|
|
23
24
|
if(typeof v =='function' && typeof window !='undefined' && window && !window[i]){
|
|
@@ -26,7 +27,7 @@ Object.map(Utils,(v,i)=>{
|
|
|
26
27
|
});
|
|
27
28
|
|
|
28
29
|
export default function getIndex({onMount,onUnmount,onRender}){
|
|
29
|
-
const {swrConfig
|
|
30
|
+
const {swrConfig} = useContext();
|
|
30
31
|
const isScreenFocusedRef = React.useRef(true);
|
|
31
32
|
///garde pour chaque écran sa date de dernière activité
|
|
32
33
|
const screensRef = React.useRef({});//la liste des écrans actifs
|
|
@@ -11,7 +11,7 @@ import {getFetchOptions,prepareFilters} from "$cutils/filters";
|
|
|
11
11
|
import fetch from "$capi"
|
|
12
12
|
import {willConvertFiltersToSQL} from "$ecomponents/Datagrid/utils";
|
|
13
13
|
import React from "$react";
|
|
14
|
-
import
|
|
14
|
+
import useApp from "$econtext";
|
|
15
15
|
|
|
16
16
|
/*** la tabledataSelectField permet de faire des requêtes distantes pour rechercher les données
|
|
17
17
|
* Elle doit prendre en paramètre et de manière requis : les props suivante :
|
|
@@ -19,8 +19,9 @@ import appConfig from "$appConfig";
|
|
|
19
19
|
* foreignKeyTable : la tableData dans laquelle effectuer les donées de la requêtes
|
|
20
20
|
* foreignKeyLabel : Le libélé dans la table étrangère
|
|
21
21
|
*/
|
|
22
|
-
const TableDataSelectField = React.forwardRef(({foreignKeyColumn,prepareFilters:cPrepareFilters,bindUpsert2RemoveEvents,onAdd,showAdd:customShowAdd,canShowAdd,foreignKeyTable,fetchItemsPath,foreignKeyLabel,foreignKeyLabelIndex,dropdownActions,fields,fetchItems:customFetchItem,convertFiltersToSQL,mutateFetchedItems,
|
|
22
|
+
const TableDataSelectField = React.forwardRef(({foreignKeyColumn,prepareFilters:cPrepareFilters,bindUpsert2RemoveEvents,onAdd,showAdd:customShowAdd,canShowAdd,foreignKeyTable,fetchItemsPath,foreignKeyLabel,foreignKeyLabelIndex,dropdownActions,fields,fetchItems:customFetchItem,convertFiltersToSQL,mutateFetchedItems,onFetchItems,isFilter,isUpdate,isDocEditing,items,onAddProps,fetchOptions,...props},ref)=>{
|
|
23
23
|
props.data = defaultObj(props.data);
|
|
24
|
+
const {getTableData:getForeignKeyTable} = useApp();
|
|
24
25
|
if(!foreignKeyColumn && isNonNullString(props.field)){
|
|
25
26
|
foreignKeyColumn = props.field;
|
|
26
27
|
}
|
|
@@ -32,11 +33,13 @@ const TableDataSelectField = React.forwardRef(({foreignKeyColumn,prepareFilters:
|
|
|
32
33
|
foreignKeyLabel = foreignKeyLabel.ltrim("[").rtrim("]").split(",");
|
|
33
34
|
}
|
|
34
35
|
convertFiltersToSQL = defaultVal(convertFiltersToSQL,willConvertFiltersToSQL());
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
const foreignKeyTableStr = defaultStr(foreignKeyTable,props.tableName,props.table);
|
|
37
|
+
if(typeof getForeignKeyTable !=='function'){
|
|
38
|
+
console.error("la fonction getTableData non définie des les paramètres d'initialisation de l'application!!! Rassurez vous d'avoir définier cette fonction!!, options : foreignKeyTable:",foreignKeyTable,"foreignKeyColumn:",foreignKeyColumn,props)
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
let fKeyTable = getForeignKeyTable(foreignKeyTableStr,props);
|
|
38
42
|
fetchItemsPath = defaultStr(fetchItemsPath).trim();
|
|
39
|
-
|
|
40
43
|
if(!fetchItemsPath && (!isObj(fKeyTable) || !(defaultStr(fKeyTable.tableName,fKeyTable.table)))){
|
|
41
44
|
console.error("type de données invalide pour la foreignKeyTable ",foreignKeyTable," label : ",foreignKeyLabel,fKeyTable," composant SelectTableData",foreignKeyColumn,foreignKeyTable,props);
|
|
42
45
|
return null;
|
|
@@ -306,7 +309,6 @@ TableDataSelectField.propTypes = {
|
|
|
306
309
|
canShowAdd : PropTypes.func, //({foreignKeyTable,foreignKeyColumn})=><boolean> la fonction permettant de spécifier si l'on peut afficher le bouton showAdd
|
|
307
310
|
mutateFetchedItems : PropTypes.func, //la fonction permettant d'effectuer une mutation sur l'ensemble des donnéees récupérées à distance
|
|
308
311
|
fetchItems : PropTypes.func,//la fonction de rappel à utiliser pour faire une requête fetch permettant de selectionner les données à distance
|
|
309
|
-
getForeignKeyTable : PropTypes.func, //la fonction permettant de récupérer la fKeyTable data dont fait référence le champ
|
|
310
312
|
foreignKeyTable : PropTypes.string, //le nom de la fKeyTable data à laquelle se reporte le champ
|
|
311
313
|
fetchItemsPath : PropTypes.string, //le chemin d'api pour récupérer les items des données étrangères en utilisant la fonction fetch
|
|
312
314
|
beforeFetchItems : PropTypes.func, //appelée immédiatement avant l'exécution de la requête fetch
|
package/src/context/index.js
CHANGED
|
@@ -3,6 +3,7 @@ import appConfig from "$capp/config";
|
|
|
3
3
|
import {MD3LightTheme,MD3DarkTheme} from "react-native-paper";
|
|
4
4
|
import { useMaterial3Theme } from '@pchmn/expo-material3-theme';
|
|
5
5
|
import {colorsAlias,Colors} from "$theme";
|
|
6
|
+
import {isObj} from "$cutils";
|
|
6
7
|
|
|
7
8
|
const ExpoUIContext = React.createContext(null);
|
|
8
9
|
|
|
@@ -15,11 +16,25 @@ export const useExpoUI = ()=> React.useContext(ExpoUIContext);
|
|
|
15
16
|
FontsIconsFilter : (font{object},fontName{string},fontNameLower{string})=><boolean> //porte le nom de la props de appConfig dans lequel définir les filtres à utiliser pour charger l'iconSet désirée pour l'appication
|
|
16
17
|
///fonction de rappel appelée avant d'exit l'application, doit retourner une promesse que lorsque résolue, exit l'application
|
|
17
18
|
beforeExit : ()=><Promise>
|
|
18
|
-
|
|
19
|
+
getTableData : ()=>{object|array}
|
|
20
|
+
getStructData : ()=>{object|array}
|
|
21
|
+
tablesData : {object}, la liste des tables de données
|
|
22
|
+
strucsData : {object}, la liste des données de structures
|
|
19
23
|
*/
|
|
20
|
-
export const Provider = ({children,...props})=>{
|
|
21
|
-
const {extendAppTheme} = appConfig;
|
|
24
|
+
export const Provider = ({children,getTableData,getStructData,tablesData,structsData,...props})=>{
|
|
25
|
+
const {extendAppTheme,structsData,getTableData} = appConfig;
|
|
22
26
|
const { theme : pTheme } = useMaterial3Theme();
|
|
27
|
+
structsData = isObj(structsData)? structsData : null;
|
|
28
|
+
tablesData = isObj(tablesData) ? tablesData : null;
|
|
29
|
+
if(!isObj(appConfig.tablesData)){
|
|
30
|
+
appConfig.tablesData = tablesData;
|
|
31
|
+
}
|
|
32
|
+
if(!isObj(appConfig.structsData)){
|
|
33
|
+
appConfig.structsData = structsData;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
appConfig.getTableData = getTableData = typeof getTableData =='function'? getTableData : undefined;
|
|
37
|
+
appConfig.getStructData = getStructData = typeof getStructData =='function' ? getStructData : undefined;
|
|
23
38
|
//const colorScheme = useColorScheme();
|
|
24
39
|
appConfig.extendAppTheme = (theme)=>{
|
|
25
40
|
if(!isObj(theme)) return;
|
|
@@ -49,9 +64,11 @@ export const Provider = ({children,...props})=>{
|
|
|
49
64
|
theme.fonts = newTheme.fonts;
|
|
50
65
|
return typeof extendAppTheme == 'function'? extendAppTheme(theme) : theme;
|
|
51
66
|
}
|
|
52
|
-
return <ExpoUIContext.Provider value={{...props,appConfig}} children={children}/>;
|
|
67
|
+
return <ExpoUIContext.Provider value={{...props,getTableData,getStructData,tablesData,structsData,appConfig}} children={children}/>;
|
|
53
68
|
}
|
|
54
69
|
|
|
55
70
|
export default useExpoUI;
|
|
56
71
|
|
|
57
|
-
export const useContext = useExpoUI;
|
|
72
|
+
export const useContext = useExpoUI;
|
|
73
|
+
|
|
74
|
+
export const useApp = useContext;
|