@fto-consult/expo-ui 9.6.1 → 9.7.0
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/bin/create-app/devDependencies.js +2 -1
- package/bin/create-app.js +1 -0
- package/metro.config.js +21 -18
- package/package.json +2 -2
- package/src/auth/utils.js +2 -2
- package/src/index.js +33 -1
- package/src/App.js +0 -31
package/bin/create-app.js
CHANGED
package/metro.config.js
CHANGED
@@ -1,14 +1,10 @@
|
|
1
|
-
|
2
|
-
const
|
3
|
-
const
|
4
|
-
|
5
|
-
|
6
|
-
const
|
7
|
-
|
8
|
-
assetExts = Array.isArray(assetExts)? assetExts: [];
|
9
|
-
sourceExts= Array.isArray(sourceExts)?sourceExts : [];
|
10
|
-
const projectRoot = typeof opts.projectRoot =="string" && opts.projectRoot && fs.existsSync(path.resolve(opts.projectRoot))? path.resolve(opts.projectRoot) : path.resolve(process.cwd());
|
11
|
-
const transpilePath = null;//require("./create-transpile-module-transformer")(opts);
|
1
|
+
module.exports = function(){
|
2
|
+
const isElectron = process.env.isElectronScript || process.env.isElectron;
|
3
|
+
const path = require("path");
|
4
|
+
const fs = require("fs");
|
5
|
+
const { getDefaultConfig } = require('@expo/metro-config');
|
6
|
+
const projectRoot = path.resolve(process.cwd());
|
7
|
+
const transpilePath = null;
|
12
8
|
const hasTranspilePath = typeof transpilePath =='string' && transpilePath && fs.existsSync(transpilePath);
|
13
9
|
//@see : https://docs.expo.dev/versions/latest/config/metro/
|
14
10
|
const config = getDefaultConfig(projectRoot,{
|
@@ -29,15 +25,22 @@ module.exports = function(opts){
|
|
29
25
|
config.projectRoot = projectRoot;
|
30
26
|
config.resolver.assetExts = [
|
31
27
|
...config.resolver.assetExts,
|
32
|
-
...assetExts,
|
33
28
|
"db",
|
34
29
|
"txt"
|
35
30
|
];
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
31
|
+
["txt",'jsx', 'js','tsx','cjs','mjs'].map((ex)=>{
|
32
|
+
if(!config.resolver.sourceExts.includes(ex)){
|
33
|
+
config.resolver.sourceExts.push(ex);
|
34
|
+
}
|
35
|
+
});
|
36
|
+
if(isElectron){
|
37
|
+
config.resolver.sourceExts = [
|
38
|
+
...config.resolver.sourceExts.map((ex)=>{
|
39
|
+
return `electron.${ex}`;
|
40
|
+
}),
|
41
|
+
...config.resolver.sourceExts,
|
42
|
+
]
|
43
|
+
}
|
41
44
|
config.watchFolders = Array.isArray(config.watchFolders)? config.watchFolders : [];
|
42
45
|
const expoUIP = require("./expo-ui-path")(projectRoot);
|
43
46
|
const cPath = require("./common-path")(projectRoot);
|
@@ -61,7 +64,7 @@ module.exports = function(opts){
|
|
61
64
|
|
62
65
|
// Remove all console logs in production...
|
63
66
|
config.transformer.minifierConfig.compress.drop_console = false;
|
64
|
-
|
67
|
+
|
65
68
|
require(path.resolve(__dirname,"bin/find-licenses"))(projectRoot);
|
66
69
|
|
67
70
|
return config;
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@fto-consult/expo-ui",
|
3
|
-
"version": "9.
|
3
|
+
"version": "9.7.0",
|
4
4
|
"description": "Bibliothèque de composants UI Expo,react-native",
|
5
5
|
"react-native-paper-doc": "https://github.com/callstack/react-native-paper/tree/main/docs/docs/guides",
|
6
6
|
"scripts": {
|
@@ -68,7 +68,7 @@
|
|
68
68
|
"dependencies": {
|
69
69
|
"@emotion/react": "^11.11.4",
|
70
70
|
"@faker-js/faker": "^8.0.2",
|
71
|
-
"@fto-consult/common": "^4.53.
|
71
|
+
"@fto-consult/common": "^4.53.2",
|
72
72
|
"@fto-consult/node-utils": "^1.9.3",
|
73
73
|
"apexcharts": "^3.50.0",
|
74
74
|
"file-saver": "^2.0.5",
|
package/src/auth/utils.js
CHANGED
@@ -2,9 +2,9 @@ import {isAllowedFromStr} from "$cauth/perms";
|
|
2
2
|
/***
|
3
3
|
* vérifie si pour la permission perm, l'utilisateur connecté à accès à la resource
|
4
4
|
*/
|
5
|
-
export const isPermAllowed = (perm
|
5
|
+
export const isPermAllowed = (perm,user,returnObject)=>{
|
6
6
|
if(typeof perm === 'boolean') return perm;
|
7
7
|
if(typeof perm ==='function' && perm(...permsArgs) === false) return false;
|
8
|
-
if(isNonNullString(perm) && !isAllowedFromStr(perm
|
8
|
+
if(isNonNullString(perm) && !isAllowedFromStr(perm)) return false;
|
9
9
|
return true;
|
10
10
|
}
|
package/src/index.js
CHANGED
@@ -1,2 +1,34 @@
|
|
1
|
-
|
1
|
+
import session from "$session";
|
2
|
+
import './uuid/deps';
|
3
|
+
import {useState,useEffect} from "$react";
|
4
|
+
import Provider from "$econtext/Provider";
|
5
|
+
import App from "./AppEntry";
|
6
|
+
/****
|
7
|
+
* les options sont de la forme :
|
8
|
+
* {
|
9
|
+
* @param init {function} ()=>Promise<{}>, initialise l'application, lorsque la promèsse n'est pas résolue, alors l'application considère qu'il s'agit d'une étape pour l'écran de GetStarted dans ce cas,
|
10
|
+
* l'option la route getStartedRouteName est utilisée comme route par défaut de l'application
|
11
|
+
* @param initialRouteName {string} la route initiale, par d'afaut Home, valide lorsque la promèsse résultat de la fonction init est résolue
|
12
|
+
* @param getStartedRouteName {string} la route de l'écran de GetStarted, valide lorsque la promèsse résultat de la fonction init n'est pas résolue
|
13
|
+
* L'écran de route getStartedRouteName prend en paramètre onGetStarted {function}, qui est appelée lorsque le contenu de l'écran GetStarted est affiché à l'utilisateur
|
14
|
+
* @maram {swrConfig}, les options supplémentaires à passer au gestinnaire swr
|
15
|
+
* les écrans d'initialisation doivent garder la propriété Start à true ou doivent avoir le groupe INTALL, pour spécifier que ce sont es écrans qui apparaissent lorsque l'application n'est pas initialisée
|
16
|
+
* }
|
17
|
+
*/
|
18
|
+
|
19
|
+
export default function ExpoUIAppEntryProvider({children:cChildren,init,...rest}){
|
20
|
+
const [children,setChildren] = useState(null);
|
21
|
+
const canInit = typeof session.init =="function";
|
22
|
+
useEffect(()=>{
|
23
|
+
if(!canInit) return ()=>{}
|
24
|
+
Promise.resolve(session.init()).finally(()=>{
|
25
|
+
return setChildren(<Provider {...rest}>
|
26
|
+
<App init={init} children={cChildren}/>
|
27
|
+
</Provider>);
|
28
|
+
});
|
29
|
+
},[]);
|
30
|
+
return canInit ? children : <Provider {...rest}><App init={init} children={cChildren}/></Provider>;
|
31
|
+
}
|
32
|
+
|
33
|
+
|
2
34
|
export * from "./context";
|
package/src/App.js
DELETED
@@ -1,31 +0,0 @@
|
|
1
|
-
import session from "$session";
|
2
|
-
import './uuid/deps';
|
3
|
-
import {useState,useEffect} from "$react";
|
4
|
-
import Provider from "$econtext/Provider";
|
5
|
-
import App from "./AppEntry";
|
6
|
-
/****
|
7
|
-
* les options sont de la forme :
|
8
|
-
* {
|
9
|
-
* @param init {function} ()=>Promise<{}>, initialise l'application, lorsque la promèsse n'est pas résolue, alors l'application considère qu'il s'agit d'une étape pour l'écran de GetStarted dans ce cas,
|
10
|
-
* l'option la route getStartedRouteName est utilisée comme route par défaut de l'application
|
11
|
-
* @param initialRouteName {string} la route initiale, par d'afaut Home, valide lorsque la promèsse résultat de la fonction init est résolue
|
12
|
-
* @param getStartedRouteName {string} la route de l'écran de GetStarted, valide lorsque la promèsse résultat de la fonction init n'est pas résolue
|
13
|
-
* L'écran de route getStartedRouteName prend en paramètre onGetStarted {function}, qui est appelée lorsque le contenu de l'écran GetStarted est affiché à l'utilisateur
|
14
|
-
* @maram {swrConfig}, les options supplémentaires à passer au gestinnaire swr
|
15
|
-
* les écrans d'initialisation doivent garder la propriété Start à true ou doivent avoir le groupe INTALL, pour spécifier que ce sont es écrans qui apparaissent lorsque l'application n'est pas initialisée
|
16
|
-
* }
|
17
|
-
*/
|
18
|
-
|
19
|
-
export default function ExpoUIAppEntryProvider({children:cChildren,init,...rest}){
|
20
|
-
const [children,setChildren] = useState(null);
|
21
|
-
const canInit = typeof session.init =="function";
|
22
|
-
useEffect(()=>{
|
23
|
-
if(!canInit) return ()=>{}
|
24
|
-
Promise.resolve(session.init()).finally(()=>{
|
25
|
-
return setChildren(<Provider {...rest}>
|
26
|
-
<App init={init} children={cChildren}/>
|
27
|
-
</Provider>);
|
28
|
-
});
|
29
|
-
},[]);
|
30
|
-
return canInit ? children : <Provider {...rest}><App init={init} children={cChildren}/></Provider>;
|
31
|
-
}
|