@fto-consult/expo-ui 7.24.3 → 8.0.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/App.js +6 -3
- package/app.json +1 -0
- package/bin/create-app.js +14 -11
- package/copy-env-file.js +1 -1
- package/docs/navigation/drawerItems/index.js +16 -0
- package/docs/navigation/drawerSections.js +14 -0
- package/docs/screens/Datagrid/{Datagrid.js → index.js} +1 -1
- package/docs/screens/index.js +1 -0
- package/package.json +141 -139
- package/src/App.js +1 -1
- package/src/AppEntry/index.js +1 -0
- package/src/components/AppBar/BackAction.js +46 -0
- package/src/components/AppBar/Content.js +3 -3
- package/src/components/AppBar/index.js +8 -3
- package/src/components/Datagrid/Accordion/index.js +1 -0
- package/src/components/Datagrid/Common/Common.js +1 -1
- package/src/components/Datagrid/Test/index.js +1 -1
- package/src/components/Drawer/DrawerItems/index.js +1 -1
- package/src/components/Dropdown/index.js +30 -8
- package/src/components/ErrorBoundary/ErrorMessage.js +5 -5
- package/src/components/Form/Fields/SelectTableData/Component.js +2 -2
- package/src/components/Image/index.js +13 -15
- package/src/components/Link/index.js +2 -2
- package/src/components/SplashScreen/index.js +9 -1
- package/src/components/TableLink/index.js +2 -1
- package/src/components/TouchableRipple/index.js +38 -0
- package/src/components/TouchableRipple/index.web.js +22 -0
- package/src/context/Provider.js +0 -1
- package/src/layouts/AppBar/index.js +1 -1
- package/src/layouts/DatabaseStatistics/DatabaseStatistic.js +6 -11
- package/src/layouts/DatabaseStatistics/index.js +10 -4
- package/src/layouts/Screen/TableData.js +15 -5
- package/src/media/camera.js +13 -1
- package/src/media/camera.native.js +135 -2
- package/src/media/file-system/utils/FileSaver.native.js +62 -25
- package/src/media/file-system/utils/native/index.js +11 -1
- package/src/media/file-system/utils/web/index.js +21 -1
- package/src/media/index.js +27 -35
- package/src/media/utils.js +27 -0
- package/src/navigation/Drawer/items/index.js +1 -1
- package/src/navigation/animationTypes.js +48 -0
- package/src/navigation/index.js +11 -7
- package/src/screens/Auth/Profile.js +12 -0
- package/src/screens/Help/openLibraries.js +9 -9
- package/webpack.config.js +5 -0
- package/docs/drawerItems/index.js +0 -17
- package/docs/drawerItems/introduction.js +0 -8
package/App.js
CHANGED
@@ -1,11 +1,12 @@
|
|
1
1
|
import AppEntry from "./src";
|
2
2
|
import {disableAuth} from "$cauth";
|
3
|
-
|
3
|
+
import { registerRootComponent } from 'expo';
|
4
4
|
export default function MainExpoApp(props){
|
5
5
|
return <AppEntry
|
6
6
|
navigation={{
|
7
7
|
screens : require("./docs/screens").default,
|
8
|
-
drawerItems:require("./docs/drawerItems").default,
|
8
|
+
drawerItems:require("./docs/navigation/drawerItems").default,
|
9
|
+
drawerSections : require("./docs/navigation/drawerSections")?.default,
|
9
10
|
}}
|
10
11
|
init ={({appConfig})=>{
|
11
12
|
disableAuth();
|
@@ -13,4 +14,6 @@ export default function MainExpoApp(props){
|
|
13
14
|
}}
|
14
15
|
{...props}
|
15
16
|
/>
|
16
|
-
}
|
17
|
+
}
|
18
|
+
|
19
|
+
registerRootComponent(MainExpoApp);
|
package/app.json
CHANGED
package/bin/create-app.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
const {exec,thowError,copy,writeFile,createDirSync,
|
1
|
+
const {exec,thowError,copy,writeFile,createDirSync,FILE:{sanitizeFileName},JSONFileManager} = require("./utils");
|
2
2
|
const fs = require("fs"), path = require("path");
|
3
3
|
const getAppDir = x=>path.resolve(__dirname,"create-app");
|
4
4
|
module.exports = function(appName,{projectRoot:root}){
|
@@ -21,8 +21,6 @@ module.exports = function(appName,{projectRoot:root}){
|
|
21
21
|
...defaultDevDependencies,
|
22
22
|
...(devDependencies && typeof devDependencies ==='object'? devDependencies : {}),
|
23
23
|
};
|
24
|
-
const reactNativeVersion = getDependencyVersion(packageObj,"react-native");
|
25
|
-
const expoVersion = getDependencyVersion(packageObj,"expo");
|
26
24
|
const euModule = "@fto-consult/expo-ui";
|
27
25
|
let hasUpdateDeps = false;
|
28
26
|
console.log("creating application name "+name);
|
@@ -42,17 +40,13 @@ module.exports = function(appName,{projectRoot:root}){
|
|
42
40
|
"build-ios" : "eas build --platform ios",
|
43
41
|
},
|
44
42
|
"dependencies" : {
|
45
|
-
[euModule] : "latest"
|
46
|
-
//"expo" : expoVersion,
|
47
|
-
//"react-native" : reactNativeVersion,
|
43
|
+
[euModule] : "latest"
|
48
44
|
},
|
49
45
|
devDependencies : devDeps
|
50
46
|
}
|
51
47
|
} else {
|
52
48
|
mainPackage.devDependencies = typeof mainPackage.devDependencies =='object' && mainPackage.devDependencies || {};
|
53
49
|
mainPackage.dependencies = typeof mainPackage.dependencies ==="object" && mainPackage.dependencies || {};
|
54
|
-
mainPackage.dependencies["react-native"] = reactNativeVersion;
|
55
|
-
mainPackage.dependencies["expo"] = expoVersion;
|
56
50
|
mainPackage.main = mainPackage.main || "node_modules/expo/AppEntry.js";
|
57
51
|
for(let i in devDeps){
|
58
52
|
if(!(i in mainPackage.devDependencies)){
|
@@ -109,12 +103,14 @@ const createAPPJSONFile = (projectRoot,{name,version})=>{
|
|
109
103
|
writeFile(gP,gitignore);
|
110
104
|
} catch{};
|
111
105
|
}
|
106
|
+
appSheme = name? sanitizeFileName(name).replace(/ /g, '') : null;
|
112
107
|
const appJSONPath = path.join(projectRoot,"app.json");
|
113
108
|
if(!fs.existsSync(appJSONPath)){
|
114
109
|
writeFile(appJSONPath,`
|
115
110
|
{
|
116
111
|
"expo": {
|
117
112
|
"name": "${name}",
|
113
|
+
${appSheme ? `"scheme": "${appSheme}"`:""}
|
118
114
|
"slug": "${name.toLowerCase().replace(/\s\s+/g, '-')}",
|
119
115
|
"version":"${version}",
|
120
116
|
"orientation": "portrait",
|
@@ -148,9 +144,16 @@ const createAPPJSONFile = (projectRoot,{name,version})=>{
|
|
148
144
|
}
|
149
145
|
`)
|
150
146
|
} else {
|
151
|
-
const
|
152
|
-
|
153
|
-
|
147
|
+
const appJSONManager = JSONFileManager(appJSONPath);
|
148
|
+
if(appSheme && !appJSONManager.hasKey("expo.scheme")){
|
149
|
+
appJSONManager.set({
|
150
|
+
"expo": {
|
151
|
+
"scheme":appSheme
|
152
|
+
},
|
153
|
+
});
|
154
|
+
}
|
155
|
+
appJSONManager.set({version})
|
156
|
+
appJSONManager.save();
|
154
157
|
}
|
155
158
|
return fs.existsSync(appJSONPath);
|
156
159
|
}
|
package/copy-env-file.js
CHANGED
@@ -10,7 +10,7 @@ module.exports = (projectRoot,forceCreate)=>{
|
|
10
10
|
const pWithEnv = path.resolve(projectRoot,`.env.${env}`);
|
11
11
|
const environmentPath = fs.existsSync(pWithEnv) ? pWithEnv : path.resolve(projectRoot,".env");
|
12
12
|
const localEnv = path.resolve(__dirname,".env");
|
13
|
-
if(environmentPath && fs.existsSync(environmentPath)){
|
13
|
+
if(environmentPath && fs.existsSync(environmentPath) && environmentPath !== localEnv){
|
14
14
|
// File ".env" will be created or overwritten by default.
|
15
15
|
try {
|
16
16
|
copy(environmentPath, localEnv,{overwrite:true});
|
@@ -0,0 +1,16 @@
|
|
1
|
+
import Introdoction from "../../screens/Introduction";
|
2
|
+
import Datagrid from "../../screens/Datagrid";
|
3
|
+
export default [
|
4
|
+
{
|
5
|
+
text : "Introduction",
|
6
|
+
icon : "alpha-i-box",
|
7
|
+
drawerSection : "introduction",
|
8
|
+
routeName : Introdoction.screenName,
|
9
|
+
},
|
10
|
+
{
|
11
|
+
text : "Datagrid",
|
12
|
+
icon : "table",
|
13
|
+
drawerSection : "components",
|
14
|
+
routeName : Datagrid.screenName,
|
15
|
+
}
|
16
|
+
]
|
package/docs/screens/index.js
CHANGED
package/package.json
CHANGED
@@ -1,139 +1,141 @@
|
|
1
|
-
{
|
2
|
-
"name": "@fto-consult/expo-ui",
|
3
|
-
"version": "
|
4
|
-
"description": "Bibliothèque de composants UI Expo,react-native",
|
5
|
-
"scripts": {
|
6
|
-
"clear-npx-cache": "npx clear-npx-cache",
|
7
|
-
"publish1": "npm publish --access=public",
|
8
|
-
"unpublish": "npm -f unpublish @fto-consult/expo-ui",
|
9
|
-
"build-web": "",
|
10
|
-
"start": "npx expo start --dev --no-minify",
|
11
|
-
"start-d": "npx expo start -c --no-dev --no-minify",
|
12
|
-
"start-p": "npm run start-d",
|
13
|
-
"expo-start-client": "npx expo start --dev --no-minify --dev-client",
|
14
|
-
"start-m": "npx expo start - c--dev--no -minify",
|
15
|
-
"android": "npx expo start --android -c",
|
16
|
-
"ios": "npx expo start --ios",
|
17
|
-
"web": "npx expo start --web",
|
18
|
-
"web-c": "npx expo start --web -c",
|
19
|
-
"eject": "expo eject",
|
20
|
-
"emulator": "npm run android-emulator",
|
21
|
-
"web-server": "npx serve web-build",
|
22
|
-
"build-android": "eas build --clear-cache -p android --profile preview",
|
23
|
-
"build-android-local": "eas build --platform android --local",
|
24
|
-
"build-android-dist": "eas build --clear-cache -p android",
|
25
|
-
"build-ios": "eas build --clear-cache -p ios --profile preview",
|
26
|
-
"build-ios-dist": "eas build --clear-cache -p ios",
|
27
|
-
"install-apk": "adb -s emulator-5554 install myapp.apk",
|
28
|
-
"android-emulator": "emulator -avd EMULATOR",
|
29
|
-
"flipper": "npx cross-env METRO_SERVER_PORT=19000 E:\\Studies\\react-native\\debugger\\Flipper-win\\Flipper.exe",
|
30
|
-
"test:build": "electron-webpack && electron-builder --dir -c.compression=store -c.mac.identity=null",
|
31
|
-
"compile-electron": "webpack --env platform=electron",
|
32
|
-
"compile-electron-p": "webpack --config ./electron/webpack.config.js --mode=production",
|
33
|
-
"electron": "electron ./electron",
|
34
|
-
"logcat": "adb -d logcat com.ftc.apps.salite1:E > errors.txt",
|
35
|
-
"logcat-export": "adb -d logcat com.ftc.apps.salite1 *:S > logcat.txt",
|
36
|
-
"electron-c": "npm run compile-electron && npm run electron",
|
37
|
-
"electron-p": "npm run compile-electron-p && npm run electron",
|
38
|
-
"update-app-version": "node ./update-app-version.js",
|
39
|
-
"find-licenses": "node ./find-licenses.js",
|
40
|
-
"fix-dependencies": "expo-cli doctor --fix-dependencies",
|
41
|
-
"expo-fix": "npx expo install --fix",
|
42
|
-
"update-apexchart": "node ./bin/update-appex-chart.js",
|
43
|
-
"
|
44
|
-
"
|
45
|
-
"
|
46
|
-
"
|
47
|
-
"
|
48
|
-
"
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
"
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
"
|
60
|
-
|
61
|
-
|
62
|
-
"
|
63
|
-
"
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
"
|
68
|
-
|
69
|
-
"@emotion/
|
70
|
-
"@
|
71
|
-
"@expo/
|
72
|
-
"@
|
73
|
-
"@
|
74
|
-
"@fto-consult/
|
75
|
-
"@
|
76
|
-
"@
|
77
|
-
"@react-native-
|
78
|
-
"@react-native-community/
|
79
|
-
"@react-native-
|
80
|
-
"@react-native
|
81
|
-
"@react-navigation/native": "^6.
|
82
|
-
"@react-navigation/
|
83
|
-
"@
|
84
|
-
"
|
85
|
-
"
|
86
|
-
"
|
87
|
-
"expo": "^
|
88
|
-
"expo-camera": "~
|
89
|
-
"expo-clipboard": "~
|
90
|
-
"expo-font": "~11.
|
91
|
-
"expo-image-picker": "~14.
|
92
|
-
"expo-linking": "~
|
93
|
-
"expo-sharing": "~11.
|
94
|
-
"expo-sqlite": "~
|
95
|
-
"expo-status-bar": "~1.
|
96
|
-
"expo-system-ui": "~2.
|
97
|
-
"expo-web-browser": "~12.
|
98
|
-
"file-saver": "^2.0.5",
|
99
|
-
"fs-extra": "^11.2.0",
|
100
|
-
"google-libphonenumber": "^3.2.34",
|
101
|
-
"htmlparser2-without-node-native": "^3.9.2",
|
102
|
-
"is-plain-obj": "^4.1.0",
|
103
|
-
"js-base64": "^3.7.5",
|
104
|
-
"
|
105
|
-
"
|
106
|
-
"
|
107
|
-
"react": "^
|
108
|
-
"react-
|
109
|
-
"react-
|
110
|
-
"react-native": "
|
111
|
-
"react-native-
|
112
|
-
"react-native-
|
113
|
-
"react-native-get-random-values": "~1.
|
114
|
-
"react-native-iphone-x-helper": "^1.3.1",
|
115
|
-
"react-native-mime-types": "^2.4.0",
|
116
|
-
"react-native-paper": "^5.12.1",
|
117
|
-
"react-native-paper-dates": "^0.21.7",
|
118
|
-
"react-native-reanimated": "~3.
|
119
|
-
"react-native-safe-area-context": "4.
|
120
|
-
"react-native-screens": "~3.
|
121
|
-
"react-native-svg": "
|
122
|
-
"react-native-web": "^0.19.10",
|
123
|
-
"react-native-webview": "13.
|
124
|
-
"react-virtuoso": "^4.6.2",
|
125
|
-
"
|
126
|
-
"
|
127
|
-
"
|
128
|
-
"
|
129
|
-
"
|
130
|
-
"
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
"@
|
136
|
-
"
|
137
|
-
"
|
138
|
-
|
139
|
-
|
1
|
+
{
|
2
|
+
"name": "@fto-consult/expo-ui",
|
3
|
+
"version": "8.0.1",
|
4
|
+
"description": "Bibliothèque de composants UI Expo,react-native",
|
5
|
+
"scripts": {
|
6
|
+
"clear-npx-cache": "npx clear-npx-cache",
|
7
|
+
"publish1": "npm publish --access=public",
|
8
|
+
"unpublish": "npm -f unpublish @fto-consult/expo-ui",
|
9
|
+
"build-web": "",
|
10
|
+
"start": "npx expo start --dev --no-minify",
|
11
|
+
"start-d": "npx expo start -c --no-dev --no-minify",
|
12
|
+
"start-p": "npm run start-d",
|
13
|
+
"expo-start-client": "npx expo start --dev --no-minify --dev-client",
|
14
|
+
"start-m": "npx expo start - c--dev--no -minify",
|
15
|
+
"android": "npx expo start --android -c",
|
16
|
+
"ios": "npx expo start --ios",
|
17
|
+
"web": "npx expo start --web",
|
18
|
+
"web-c": "npx expo start --web -c",
|
19
|
+
"eject": "expo eject",
|
20
|
+
"emulator": "npm run android-emulator",
|
21
|
+
"web-server": "npx serve web-build",
|
22
|
+
"build-android": "eas build --clear-cache -p android --profile preview",
|
23
|
+
"build-android-local": "eas build --platform android --local",
|
24
|
+
"build-android-dist": "eas build --clear-cache -p android",
|
25
|
+
"build-ios": "eas build --clear-cache -p ios --profile preview",
|
26
|
+
"build-ios-dist": "eas build --clear-cache -p ios",
|
27
|
+
"install-apk": "adb -s emulator-5554 install myapp.apk",
|
28
|
+
"android-emulator": "emulator -avd EMULATOR",
|
29
|
+
"flipper": "npx cross-env METRO_SERVER_PORT=19000 E:\\Studies\\react-native\\debugger\\Flipper-win\\Flipper.exe",
|
30
|
+
"test:build": "electron-webpack && electron-builder --dir -c.compression=store -c.mac.identity=null",
|
31
|
+
"compile-electron": "webpack --env platform=electron",
|
32
|
+
"compile-electron-p": "webpack --config ./electron/webpack.config.js --mode=production",
|
33
|
+
"electron": "electron ./electron",
|
34
|
+
"logcat": "adb -d logcat com.ftc.apps.salite1:E > errors.txt",
|
35
|
+
"logcat-export": "adb -d logcat com.ftc.apps.salite1 *:S > logcat.txt",
|
36
|
+
"electron-c": "npm run compile-electron && npm run electron",
|
37
|
+
"electron-p": "npm run compile-electron-p && npm run electron",
|
38
|
+
"update-app-version": "node ./update-app-version.js",
|
39
|
+
"find-licenses": "node ./find-licenses.js",
|
40
|
+
"fix-dependencies": "expo-cli doctor --fix-dependencies",
|
41
|
+
"expo-fix": "npx expo install --fix",
|
42
|
+
"update-apexchart": "node ./bin/update-appex-chart.js",
|
43
|
+
"test-bin": "node ./bin/index.js",
|
44
|
+
"update-appexchart": "npm run update-apexchart",
|
45
|
+
"delete-node-modules": "rimraf ./**/node_modules",
|
46
|
+
"dev": "npx expo start --no-dev --minify -c",
|
47
|
+
"modifier-url-remote-git": "git remote set-url origin 'https://borispipo@github.com/borispipo/smart-eneo.git'",
|
48
|
+
"update": "npm i @fto-consult/node-utils@latest expo @emotion/native@latest react-native-big-list@latest apexcharts@latest file-saver@latest fs-extra@latest google-libphonenumber@latest @pchmn/expo-material3-theme@latest @emotion/native@latest @fto-consult/common@latest @react-navigation/stack react-native-blob-util react-native-iphone-x-helper@latest react-native-mime-types@latest react-native-paper@5 react-native-paper-dates@latest @react-navigation/native@latest @react-navigation/native-stack@latest react-virtuoso@latest tippy.js@latest websql@latest xlsx@latest react-native-web@latest react-dom@latest && npx expo install --fix && npm run update-apexchart && npm run find-licenses"
|
49
|
+
},
|
50
|
+
"bin": {
|
51
|
+
"expo-ui": "./bin/index.js"
|
52
|
+
},
|
53
|
+
"repository": {
|
54
|
+
"type": "git",
|
55
|
+
"url": "git+https://github.com/borispipo/expo-ui.git"
|
56
|
+
},
|
57
|
+
"keywords": [
|
58
|
+
"Expo",
|
59
|
+
"React-Native"
|
60
|
+
],
|
61
|
+
"author": "Boris Fouomene",
|
62
|
+
"license": "ISC",
|
63
|
+
"bugs": {
|
64
|
+
"url": "https://github.com/borispipo/expo-ui/issues"
|
65
|
+
},
|
66
|
+
"homepage": "https://github.com/borispipo/expo-ui#readme",
|
67
|
+
"dependencies": {
|
68
|
+
"@emotion/native": "^11.11.0",
|
69
|
+
"@emotion/react": "^11.11.1",
|
70
|
+
"@expo/html-elements": "^0.5.1",
|
71
|
+
"@expo/vector-icons": "^14.0.0",
|
72
|
+
"@faker-js/faker": "^8.0.2",
|
73
|
+
"@fto-consult/common": "^4.8.33",
|
74
|
+
"@fto-consult/node-utils": "^1.4.7",
|
75
|
+
"@pchmn/expo-material3-theme": "^1.3.2",
|
76
|
+
"@react-native-async-storage/async-storage": "1.21.0",
|
77
|
+
"@react-native-community/datetimepicker": "7.6.1",
|
78
|
+
"@react-native-community/netinfo": "11.1.0",
|
79
|
+
"@react-native/assets-registry": "^0.72.0",
|
80
|
+
"@react-navigation/native": "^6.1.9",
|
81
|
+
"@react-navigation/native-stack": "^6.9.17",
|
82
|
+
"@react-navigation/stack": "^6.3.20",
|
83
|
+
"@shopify/flash-list": "1.6.3",
|
84
|
+
"apexcharts": "^3.45.1",
|
85
|
+
"commander": "^11.1.0",
|
86
|
+
"crypto-browserify": "^3.12.0",
|
87
|
+
"expo": "^50.0.2",
|
88
|
+
"expo-camera": "~14.0.1",
|
89
|
+
"expo-clipboard": "~5.0.1",
|
90
|
+
"expo-font": "~11.10.2",
|
91
|
+
"expo-image-picker": "~14.7.1",
|
92
|
+
"expo-linking": "~6.2.2",
|
93
|
+
"expo-sharing": "~11.10.0",
|
94
|
+
"expo-sqlite": "~13.2.1",
|
95
|
+
"expo-status-bar": "~1.11.1",
|
96
|
+
"expo-system-ui": "~2.9.3",
|
97
|
+
"expo-web-browser": "~12.8.1",
|
98
|
+
"file-saver": "^2.0.5",
|
99
|
+
"fs-extra": "^11.2.0",
|
100
|
+
"google-libphonenumber": "^3.2.34",
|
101
|
+
"htmlparser2-without-node-native": "^3.9.2",
|
102
|
+
"is-plain-obj": "^4.1.0",
|
103
|
+
"js-base64": "^3.7.5",
|
104
|
+
"process": "^0.11.10",
|
105
|
+
"prop-types": "^15.8.1",
|
106
|
+
"react": "^18.2.0",
|
107
|
+
"react-content-loader": "^6.2.1",
|
108
|
+
"react-dom": "^18.2.0",
|
109
|
+
"react-native": "0.73.2",
|
110
|
+
"react-native-big-list": "^1.6.1",
|
111
|
+
"react-native-blob-util": "^0.18.6",
|
112
|
+
"react-native-gesture-handler": "~2.14.0",
|
113
|
+
"react-native-get-random-values": "~1.8.0",
|
114
|
+
"react-native-iphone-x-helper": "^1.3.1",
|
115
|
+
"react-native-mime-types": "^2.4.0",
|
116
|
+
"react-native-paper": "^5.12.1",
|
117
|
+
"react-native-paper-dates": "^0.21.7",
|
118
|
+
"react-native-reanimated": "~3.6.0",
|
119
|
+
"react-native-safe-area-context": "4.8.2",
|
120
|
+
"react-native-screens": "~3.29.0",
|
121
|
+
"react-native-svg": "14.1.0",
|
122
|
+
"react-native-web": "^0.19.10",
|
123
|
+
"react-native-webview": "13.6.4",
|
124
|
+
"react-virtuoso": "^4.6.2",
|
125
|
+
"readable-stream": "^4.5.2",
|
126
|
+
"sanitize-filename": "^1.6.3",
|
127
|
+
"sharp-cli": "^2.1.0",
|
128
|
+
"stream-browserify": "^3.0.0",
|
129
|
+
"tippy.js": "^6.3.7",
|
130
|
+
"uninstall": "^0.0.0",
|
131
|
+
"websql": "^2.0.3",
|
132
|
+
"xlsx": "^0.18.5"
|
133
|
+
},
|
134
|
+
"devDependencies": {
|
135
|
+
"@babel/plugin-proposal-export-namespace-from": "^7.18.9",
|
136
|
+
"@expo/metro-config": "~0.17.1",
|
137
|
+
"@expo/webpack-config": "^19.0.1",
|
138
|
+
"babel-plugin-inline-dotenv": "^1.7.0",
|
139
|
+
"babel-plugin-module-resolver": "^5.0.0"
|
140
|
+
}
|
141
|
+
}
|
package/src/App.js
CHANGED
package/src/AppEntry/index.js
CHANGED
@@ -41,6 +41,7 @@ import Logo from "$ecomponents/Logo";
|
|
41
41
|
import AppEntryRootView from "./RootView";
|
42
42
|
import { SafeAreaProvider } from 'react-native-safe-area-context';
|
43
43
|
import {isNeutralino} from "$cplatform";
|
44
|
+
import "react-native-gesture-handler";
|
44
45
|
|
45
46
|
let MAX_BACK_COUNT = 1;
|
46
47
|
let countBack = 0;
|
@@ -0,0 +1,46 @@
|
|
1
|
+
import Icon from "$ecomponents/Icon";
|
2
|
+
import { forwardRef } from 'react';
|
3
|
+
import PropTypes from "prop-types";
|
4
|
+
import {isIos} from "$cplatform";
|
5
|
+
|
6
|
+
const AppbarBackAction = forwardRef(
|
7
|
+
({ accessibilityLabel = 'Back', ...rest }, ref) => {
|
8
|
+
console.log("will render ",rest);
|
9
|
+
return (
|
10
|
+
<Icon
|
11
|
+
accessibilityLabel={accessibilityLabel}
|
12
|
+
icon={isIos()?"chevron-left":"arrow-left"}
|
13
|
+
{...rest}
|
14
|
+
isLeading
|
15
|
+
ref={ref}
|
16
|
+
/>
|
17
|
+
);
|
18
|
+
}
|
19
|
+
);
|
20
|
+
|
21
|
+
AppbarBackAction.displayName = 'AppBar.BackAction';
|
22
|
+
|
23
|
+
export default AppbarBackAction;
|
24
|
+
|
25
|
+
AppbarBackAction.propTypes = {
|
26
|
+
/**
|
27
|
+
* Custom color for back icon.
|
28
|
+
*/
|
29
|
+
color: PropTypes.string,
|
30
|
+
/**
|
31
|
+
* Optional icon size.
|
32
|
+
*/
|
33
|
+
size : PropTypes.number,
|
34
|
+
/**
|
35
|
+
* Whether the button is disabled. A disabled button is greyed out and `onPress` is not called on touch.
|
36
|
+
*/
|
37
|
+
disabled : PropTypes.bool,
|
38
|
+
/**
|
39
|
+
* Accessibility label for the button. This is read by the screen reader when the user taps the button.
|
40
|
+
*/
|
41
|
+
accessibilityLabel : PropTypes.string,
|
42
|
+
/**
|
43
|
+
* Function to execute on press.
|
44
|
+
*/
|
45
|
+
onPress : PropTypes.func,
|
46
|
+
}
|
@@ -2,7 +2,7 @@ import * as React from 'react';
|
|
2
2
|
import {
|
3
3
|
Platform,
|
4
4
|
StyleSheet,
|
5
|
-
|
5
|
+
Pressable,
|
6
6
|
View,
|
7
7
|
} from 'react-native';
|
8
8
|
import Label from "$ecomponents/Label";
|
@@ -83,7 +83,7 @@ const AppbarContent = ({
|
|
83
83
|
|
84
84
|
if (onPress) {
|
85
85
|
return (
|
86
|
-
<
|
86
|
+
<Pressable
|
87
87
|
testID={testID+"_Container"}
|
88
88
|
{...containerProps}
|
89
89
|
role={touchableRole}
|
@@ -93,7 +93,7 @@ const AppbarContent = ({
|
|
93
93
|
disabled={disabled}
|
94
94
|
>
|
95
95
|
{content}
|
96
|
-
</
|
96
|
+
</Pressable>
|
97
97
|
);
|
98
98
|
}
|
99
99
|
return content;
|
@@ -3,7 +3,8 @@ import { Appbar} from 'react-native-paper';
|
|
3
3
|
import {defaultObj,defaultVal,defaultStr} from "$cutils";
|
4
4
|
import APP from "$capp/instance"
|
5
5
|
import {isSplitedActions,renderSplitedActions,splitActions,TITLE_FONT_SIZE,getThemeColors} from "./utils";
|
6
|
-
import
|
6
|
+
import {Colors} from "$theme";
|
7
|
+
import BackAction from "./BackAction";
|
7
8
|
import {StyleSheet} from "react-native";
|
8
9
|
import {goBack as navGoBack,useNavigation,useRoute,useScreenOptions } from "$cnavigation";
|
9
10
|
import PropTypes from "prop-types";
|
@@ -71,7 +72,7 @@ const AppBarComponent = React.forwardRef((props,ref)=> {
|
|
71
72
|
backActionProps = Object.assign({},backActionProps);
|
72
73
|
backActionProps.testID = defaultStr(backActionProps.testID)+"_AppBarBackAction";
|
73
74
|
|
74
|
-
let BackActionComponent = backAction === false ? null : React.isComponent(backAction)? backAction : back ?
|
75
|
+
let BackActionComponent = backAction === false ? null : React.isComponent(backAction)? backAction : back ? BackAction : Icon ;
|
75
76
|
backActionProps.color = backActionProps.color && Colors.isValid(backActionProps.color)? backActionProps.color : anchorStyle.color;
|
76
77
|
|
77
78
|
let {onPress} = backActionProps;
|
@@ -188,4 +189,8 @@ AppBarComponent.propTypes = {
|
|
188
189
|
backActionProps : PropTypes.oneOfType([
|
189
190
|
PropTypes.object,
|
190
191
|
]),
|
191
|
-
}
|
192
|
+
}
|
193
|
+
|
194
|
+
export {BackAction};
|
195
|
+
|
196
|
+
AppBarComponent.BackAction = BackAction;
|
@@ -207,7 +207,7 @@ export default class CommonDatagridComponent extends AppComponent {
|
|
207
207
|
let hasFoundDisplayTypes = false;
|
208
208
|
const pArgs = {context:this,data,props:this.props}
|
209
209
|
const perm = checkPerm(renderChartIsAllowed,pArgs)
|
210
|
-
const ePDFIsAllowed = checkPerm(exportToPDFIsAllowed,pArgs);
|
210
|
+
const ePDFIsAllowed = !isMobileNative() && checkPerm(exportToPDFIsAllowed,pArgs);
|
211
211
|
const eExcelISAllowed = checkPerm(exportToExcelIsAllowed,pArgs);
|
212
212
|
const renderSectionListIsAllowedP = checkPerm(renderSectionListIsAllowed,pArgs);
|
213
213
|
if(typeof customCheckPerms =='function'){
|
@@ -8,7 +8,7 @@ import { faker } from '@faker-js/faker';
|
|
8
8
|
import DateLib from "$clib/date";
|
9
9
|
export default function TestDatagridComponent({count,...props}){
|
10
10
|
const data = React.useMemo(()=>{
|
11
|
-
count = typeof count =='number' && count > 5 ? count :
|
11
|
+
count = typeof count =='number' && count > 5 ? count : 10000;
|
12
12
|
return faker.helpers.multiple(createRandomUser, {
|
13
13
|
count,
|
14
14
|
});
|
@@ -123,7 +123,7 @@ DrawerItemsComponent.propTypes = {
|
|
123
123
|
const getDefaultProps = function(item){
|
124
124
|
if(!isObj(item)) return null;
|
125
125
|
item.label = defaultVal(item.label,item.text,item["aria-label"]);
|
126
|
-
item["aria-label"] =
|
126
|
+
item["aria-label"] = defaultStr(item["aria-label"],item.tooltip,item.label);
|
127
127
|
item.title = defaultVal(item.title,item.label);
|
128
128
|
return item;
|
129
129
|
}
|