Add others screens + init sync
This commit is contained in:
parent
b8ce4ede47
commit
bdf1c994db
15 changed files with 896 additions and 12 deletions
|
|
@ -11,4 +11,7 @@
|
|||
- @react-navigation/native
|
||||
- react-native-screens
|
||||
- react-native-safe-area-context
|
||||
- @react-navigation/native-stack
|
||||
- @react-navigation/native-stack
|
||||
- react-native-vector-icons
|
||||
- react-native-progress
|
||||
- react-native-svg
|
||||
|
|
@ -311,3 +311,5 @@ def isNewArchitectureEnabled() {
|
|||
// - Set an environment variable `ORG_GRADLE_PROJECT_newArchEnabled=true`
|
||||
return project.hasProperty("newArchEnabled") && project.newArchEnabled == "true"
|
||||
}
|
||||
|
||||
apply from: "../../node_modules/react-native-vector-icons/fonts.gradle"
|
||||
374
ComApp/package-lock.json
generated
374
ComApp/package-lock.json
generated
|
|
@ -19,8 +19,11 @@
|
|||
"npm": "^8.19.2",
|
||||
"react": "18.1.0",
|
||||
"react-native": "0.70.1",
|
||||
"react-native-progress": "^5.0.0",
|
||||
"react-native-safe-area-context": "^4.4.1",
|
||||
"react-native-screens": "^3.18.0",
|
||||
"react-native-svg": "^13.2.0",
|
||||
"react-native-vector-icons": "^9.2.0",
|
||||
"react-redux": "^8.0.4",
|
||||
"realm": "^11.0.0-rc.2",
|
||||
"redux": "^4.2.0"
|
||||
|
|
@ -5752,6 +5755,11 @@
|
|||
"node": ">=0.6"
|
||||
}
|
||||
},
|
||||
"node_modules/boolbase": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
|
||||
"integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww=="
|
||||
},
|
||||
"node_modules/bplist-creator": {
|
||||
"version": "0.1.0",
|
||||
"resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.1.0.tgz",
|
||||
|
|
@ -6563,6 +6571,44 @@
|
|||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/css-select": {
|
||||
"version": "5.1.0",
|
||||
"resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz",
|
||||
"integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==",
|
||||
"dependencies": {
|
||||
"boolbase": "^1.0.0",
|
||||
"css-what": "^6.1.0",
|
||||
"domhandler": "^5.0.2",
|
||||
"domutils": "^3.0.1",
|
||||
"nth-check": "^2.0.1"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/fb55"
|
||||
}
|
||||
},
|
||||
"node_modules/css-tree": {
|
||||
"version": "1.1.3",
|
||||
"resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz",
|
||||
"integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==",
|
||||
"dependencies": {
|
||||
"mdn-data": "2.0.14",
|
||||
"source-map": "^0.6.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/css-what": {
|
||||
"version": "6.1.0",
|
||||
"resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz",
|
||||
"integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==",
|
||||
"engines": {
|
||||
"node": ">= 6"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/fb55"
|
||||
}
|
||||
},
|
||||
"node_modules/cssom": {
|
||||
"version": "0.4.4",
|
||||
"resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz",
|
||||
|
|
@ -6969,6 +7015,30 @@
|
|||
"node": ">=6.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/dom-serializer": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
|
||||
"integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
|
||||
"dependencies": {
|
||||
"domelementtype": "^2.3.0",
|
||||
"domhandler": "^5.0.2",
|
||||
"entities": "^4.2.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/domelementtype": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
|
||||
"integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/fb55"
|
||||
}
|
||||
]
|
||||
},
|
||||
"node_modules/domexception": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz",
|
||||
|
|
@ -6992,6 +7062,33 @@
|
|||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/domhandler": {
|
||||
"version": "5.0.3",
|
||||
"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
|
||||
"integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
|
||||
"dependencies": {
|
||||
"domelementtype": "^2.3.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 4"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/fb55/domhandler?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/domutils": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz",
|
||||
"integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==",
|
||||
"dependencies": {
|
||||
"dom-serializer": "^2.0.0",
|
||||
"domelementtype": "^2.3.0",
|
||||
"domhandler": "^5.0.1"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/fb55/domutils?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/ecc-jsbn": {
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
|
||||
|
|
@ -7063,6 +7160,17 @@
|
|||
"node": ">=8.6"
|
||||
}
|
||||
},
|
||||
"node_modules/entities": {
|
||||
"version": "4.4.0",
|
||||
"resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz",
|
||||
"integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==",
|
||||
"engines": {
|
||||
"node": ">=0.12"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/fb55/entities?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/env-editor": {
|
||||
"version": "0.4.2",
|
||||
"resolved": "https://registry.npmjs.org/env-editor/-/env-editor-0.4.2.tgz",
|
||||
|
|
@ -11513,6 +11621,11 @@
|
|||
"resolved": "https://registry.npmjs.org/md5hex/-/md5hex-1.0.0.tgz",
|
||||
"integrity": "sha512-c2YOUbp33+6thdCUi34xIyOU/a7bvGKj/3DB1iaPMTuPHf/Q2d5s4sn1FaCOO43XkXggnb08y5W2PU8UNYNLKQ=="
|
||||
},
|
||||
"node_modules/mdn-data": {
|
||||
"version": "2.0.14",
|
||||
"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz",
|
||||
"integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow=="
|
||||
},
|
||||
"node_modules/media-typer": {
|
||||
"version": "0.3.0",
|
||||
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
|
||||
|
|
@ -15332,6 +15445,17 @@
|
|||
"inBundle": true,
|
||||
"license": "ISC"
|
||||
},
|
||||
"node_modules/nth-check": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
|
||||
"integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
|
||||
"dependencies": {
|
||||
"boolbase": "^1.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/fb55/nth-check?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/nullthrows": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz",
|
||||
|
|
@ -16506,6 +16630,17 @@
|
|||
"integrity": "sha512-oOanj84fJEXUg9FoEAQomA8ISG+DVIrTZ3qF7m69VQUJyOGYyDZmPqKcjvRku4KXlEH6hWO9i4ACLzNBh8gC0A==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/react-native-progress": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/react-native-progress/-/react-native-progress-5.0.0.tgz",
|
||||
"integrity": "sha512-KjnGIt3r9i5Kn2biOD9fXLJocf0bwxPRxOyAgXEnZTJQU2O+HyzgGFRCbM5h3izm9kKIkSc1txh8aGmMafCD9A==",
|
||||
"dependencies": {
|
||||
"prop-types": "^15.7.2"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react-native-svg": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/react-native-safe-area-context": {
|
||||
"version": "4.4.1",
|
||||
"resolved": "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-4.4.1.tgz",
|
||||
|
|
@ -16528,6 +16663,91 @@
|
|||
"react-native": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/react-native-svg": {
|
||||
"version": "13.2.0",
|
||||
"resolved": "https://registry.npmjs.org/react-native-svg/-/react-native-svg-13.2.0.tgz",
|
||||
"integrity": "sha512-bDvMeFReA3F9pVp0EhACPrEerRcITzTu9N2m2lAPinhIMVvwzGzVXyFsXI8fCMSoeOIh+77hKvukoCedh06tLw==",
|
||||
"dependencies": {
|
||||
"css-select": "^5.1.0",
|
||||
"css-tree": "^1.1.3"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": "*",
|
||||
"react-native": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/react-native-vector-icons": {
|
||||
"version": "9.2.0",
|
||||
"resolved": "https://registry.npmjs.org/react-native-vector-icons/-/react-native-vector-icons-9.2.0.tgz",
|
||||
"integrity": "sha512-wKYLaFuQST/chH3AJRjmOLoLy3JEs1JR6zMNgTaemFpNoXs0ztRnTxcxFD9xhX7cJe1/zoN5BpQYe7kL0m5yyA==",
|
||||
"dependencies": {
|
||||
"prop-types": "^15.7.2",
|
||||
"yargs": "^16.1.1"
|
||||
},
|
||||
"bin": {
|
||||
"fa5-upgrade": "bin/fa5-upgrade.sh",
|
||||
"generate-icon": "bin/generate-icon.js"
|
||||
}
|
||||
},
|
||||
"node_modules/react-native-vector-icons/node_modules/cliui": {
|
||||
"version": "7.0.4",
|
||||
"resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
|
||||
"integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
|
||||
"dependencies": {
|
||||
"string-width": "^4.2.0",
|
||||
"strip-ansi": "^6.0.0",
|
||||
"wrap-ansi": "^7.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/react-native-vector-icons/node_modules/wrap-ansi": {
|
||||
"version": "7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
|
||||
"integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
|
||||
"dependencies": {
|
||||
"ansi-styles": "^4.0.0",
|
||||
"string-width": "^4.1.0",
|
||||
"strip-ansi": "^6.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/react-native-vector-icons/node_modules/y18n": {
|
||||
"version": "5.0.8",
|
||||
"resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
|
||||
"integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/react-native-vector-icons/node_modules/yargs": {
|
||||
"version": "16.2.0",
|
||||
"resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
|
||||
"integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
|
||||
"dependencies": {
|
||||
"cliui": "^7.0.2",
|
||||
"escalade": "^3.1.1",
|
||||
"get-caller-file": "^2.0.5",
|
||||
"require-directory": "^2.1.1",
|
||||
"string-width": "^4.2.0",
|
||||
"y18n": "^5.0.5",
|
||||
"yargs-parser": "^20.2.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/react-native-vector-icons/node_modules/yargs-parser": {
|
||||
"version": "20.2.9",
|
||||
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
|
||||
"integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/react-native/node_modules/metro-runtime": {
|
||||
"version": "0.72.1",
|
||||
"resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.72.1.tgz",
|
||||
|
|
@ -23930,6 +24150,11 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"boolbase": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
|
||||
"integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww=="
|
||||
},
|
||||
"bplist-creator": {
|
||||
"version": "0.1.0",
|
||||
"resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.1.0.tgz",
|
||||
|
|
@ -24509,6 +24734,32 @@
|
|||
"resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz",
|
||||
"integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA=="
|
||||
},
|
||||
"css-select": {
|
||||
"version": "5.1.0",
|
||||
"resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz",
|
||||
"integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==",
|
||||
"requires": {
|
||||
"boolbase": "^1.0.0",
|
||||
"css-what": "^6.1.0",
|
||||
"domhandler": "^5.0.2",
|
||||
"domutils": "^3.0.1",
|
||||
"nth-check": "^2.0.1"
|
||||
}
|
||||
},
|
||||
"css-tree": {
|
||||
"version": "1.1.3",
|
||||
"resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz",
|
||||
"integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==",
|
||||
"requires": {
|
||||
"mdn-data": "2.0.14",
|
||||
"source-map": "^0.6.1"
|
||||
}
|
||||
},
|
||||
"css-what": {
|
||||
"version": "6.1.0",
|
||||
"resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz",
|
||||
"integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw=="
|
||||
},
|
||||
"cssom": {
|
||||
"version": "0.4.4",
|
||||
"resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz",
|
||||
|
|
@ -24790,6 +25041,21 @@
|
|||
"esutils": "^2.0.2"
|
||||
}
|
||||
},
|
||||
"dom-serializer": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
|
||||
"integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
|
||||
"requires": {
|
||||
"domelementtype": "^2.3.0",
|
||||
"domhandler": "^5.0.2",
|
||||
"entities": "^4.2.0"
|
||||
}
|
||||
},
|
||||
"domelementtype": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
|
||||
"integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw=="
|
||||
},
|
||||
"domexception": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz",
|
||||
|
|
@ -24807,6 +25073,24 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"domhandler": {
|
||||
"version": "5.0.3",
|
||||
"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
|
||||
"integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
|
||||
"requires": {
|
||||
"domelementtype": "^2.3.0"
|
||||
}
|
||||
},
|
||||
"domutils": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz",
|
||||
"integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==",
|
||||
"requires": {
|
||||
"dom-serializer": "^2.0.0",
|
||||
"domelementtype": "^2.3.0",
|
||||
"domhandler": "^5.0.1"
|
||||
}
|
||||
},
|
||||
"ecc-jsbn": {
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
|
||||
|
|
@ -24859,6 +25143,11 @@
|
|||
"ansi-colors": "^4.1.1"
|
||||
}
|
||||
},
|
||||
"entities": {
|
||||
"version": "4.4.0",
|
||||
"resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz",
|
||||
"integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA=="
|
||||
},
|
||||
"env-editor": {
|
||||
"version": "0.4.2",
|
||||
"resolved": "https://registry.npmjs.org/env-editor/-/env-editor-0.4.2.tgz",
|
||||
|
|
@ -28031,6 +28320,11 @@
|
|||
"resolved": "https://registry.npmjs.org/md5hex/-/md5hex-1.0.0.tgz",
|
||||
"integrity": "sha512-c2YOUbp33+6thdCUi34xIyOU/a7bvGKj/3DB1iaPMTuPHf/Q2d5s4sn1FaCOO43XkXggnb08y5W2PU8UNYNLKQ=="
|
||||
},
|
||||
"mdn-data": {
|
||||
"version": "2.0.14",
|
||||
"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz",
|
||||
"integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow=="
|
||||
},
|
||||
"media-typer": {
|
||||
"version": "0.3.0",
|
||||
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
|
||||
|
|
@ -30778,6 +31072,14 @@
|
|||
"path-key": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"nth-check": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
|
||||
"integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
|
||||
"requires": {
|
||||
"boolbase": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"nullthrows": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz",
|
||||
|
|
@ -31654,6 +31956,14 @@
|
|||
"resolved": "https://registry.npmjs.org/react-native-gradle-plugin/-/react-native-gradle-plugin-0.70.3.tgz",
|
||||
"integrity": "sha512-oOanj84fJEXUg9FoEAQomA8ISG+DVIrTZ3qF7m69VQUJyOGYyDZmPqKcjvRku4KXlEH6hWO9i4ACLzNBh8gC0A=="
|
||||
},
|
||||
"react-native-progress": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/react-native-progress/-/react-native-progress-5.0.0.tgz",
|
||||
"integrity": "sha512-KjnGIt3r9i5Kn2biOD9fXLJocf0bwxPRxOyAgXEnZTJQU2O+HyzgGFRCbM5h3izm9kKIkSc1txh8aGmMafCD9A==",
|
||||
"requires": {
|
||||
"prop-types": "^15.7.2"
|
||||
}
|
||||
},
|
||||
"react-native-safe-area-context": {
|
||||
"version": "4.4.1",
|
||||
"resolved": "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-4.4.1.tgz",
|
||||
|
|
@ -31669,6 +31979,70 @@
|
|||
"warn-once": "^0.1.0"
|
||||
}
|
||||
},
|
||||
"react-native-svg": {
|
||||
"version": "13.2.0",
|
||||
"resolved": "https://registry.npmjs.org/react-native-svg/-/react-native-svg-13.2.0.tgz",
|
||||
"integrity": "sha512-bDvMeFReA3F9pVp0EhACPrEerRcITzTu9N2m2lAPinhIMVvwzGzVXyFsXI8fCMSoeOIh+77hKvukoCedh06tLw==",
|
||||
"requires": {
|
||||
"css-select": "^5.1.0",
|
||||
"css-tree": "^1.1.3"
|
||||
}
|
||||
},
|
||||
"react-native-vector-icons": {
|
||||
"version": "9.2.0",
|
||||
"resolved": "https://registry.npmjs.org/react-native-vector-icons/-/react-native-vector-icons-9.2.0.tgz",
|
||||
"integrity": "sha512-wKYLaFuQST/chH3AJRjmOLoLy3JEs1JR6zMNgTaemFpNoXs0ztRnTxcxFD9xhX7cJe1/zoN5BpQYe7kL0m5yyA==",
|
||||
"requires": {
|
||||
"prop-types": "^15.7.2",
|
||||
"yargs": "^16.1.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"cliui": {
|
||||
"version": "7.0.4",
|
||||
"resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
|
||||
"integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
|
||||
"requires": {
|
||||
"string-width": "^4.2.0",
|
||||
"strip-ansi": "^6.0.0",
|
||||
"wrap-ansi": "^7.0.0"
|
||||
}
|
||||
},
|
||||
"wrap-ansi": {
|
||||
"version": "7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
|
||||
"integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
|
||||
"requires": {
|
||||
"ansi-styles": "^4.0.0",
|
||||
"string-width": "^4.1.0",
|
||||
"strip-ansi": "^6.0.0"
|
||||
}
|
||||
},
|
||||
"y18n": {
|
||||
"version": "5.0.8",
|
||||
"resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
|
||||
"integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="
|
||||
},
|
||||
"yargs": {
|
||||
"version": "16.2.0",
|
||||
"resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
|
||||
"integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
|
||||
"requires": {
|
||||
"cliui": "^7.0.2",
|
||||
"escalade": "^3.1.1",
|
||||
"get-caller-file": "^2.0.5",
|
||||
"require-directory": "^2.1.1",
|
||||
"string-width": "^4.2.0",
|
||||
"y18n": "^5.0.5",
|
||||
"yargs-parser": "^20.2.2"
|
||||
}
|
||||
},
|
||||
"yargs-parser": {
|
||||
"version": "20.2.9",
|
||||
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
|
||||
"integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"react-redux": {
|
||||
"version": "8.0.4",
|
||||
"resolved": "https://registry.npmjs.org/react-redux/-/react-redux-8.0.4.tgz",
|
||||
|
|
|
|||
|
|
@ -21,8 +21,11 @@
|
|||
"npm": "^8.19.2",
|
||||
"react": "18.1.0",
|
||||
"react-native": "0.70.1",
|
||||
"react-native-progress": "^5.0.0",
|
||||
"react-native-safe-area-context": "^4.4.1",
|
||||
"react-native-screens": "^3.18.0",
|
||||
"react-native-svg": "^13.2.0",
|
||||
"react-native-vector-icons": "^9.2.0",
|
||||
"react-redux": "^8.0.4",
|
||||
"realm": "^11.0.0-rc.2",
|
||||
"redux": "^4.2.0"
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
*/
|
||||
|
||||
import React from 'react';
|
||||
import { View, Image, TextInput, TouchableOpacity, Icon } from 'react-native';
|
||||
import { View, Image, TextInput, TouchableOpacity } from 'react-native';
|
||||
// Redux
|
||||
import { Provider } from 'react-redux';
|
||||
// Store
|
||||
|
|
@ -16,6 +16,8 @@ import { store } from './App/Store/ConfigureStore';
|
|||
import { NavigationContainer } from '@react-navigation/native';
|
||||
import { createNativeStackNavigator } from '@react-navigation/native-stack';
|
||||
import CustomNavigation from './Navigation';
|
||||
// Icons
|
||||
import FontAwesome5 from 'react-native-vector-icons/FontAwesome5';
|
||||
// Translations
|
||||
import i18n from "./I18n";
|
||||
// Navigations style
|
||||
|
|
@ -25,6 +27,8 @@ import { Setting } from "./Database";
|
|||
// Views
|
||||
import InstallScreen from './App/Views/InstallScreen';
|
||||
import HomeScreen from './App/Views/HomeScreen';
|
||||
import LoginScreen from './App/Views/LoginScreen';
|
||||
import SyncScreen from './App/Views/SyncScreen';
|
||||
// Lang Flags
|
||||
import flagFR from './Resources/assets/img/flags/fr.png';
|
||||
import flagEN from './Resources/assets/img/flags/en.png';
|
||||
|
|
@ -46,7 +50,7 @@ const App = () => {
|
|||
if (savedLocale !== undefined) {
|
||||
locale = savedLocale.value;
|
||||
} else {
|
||||
locale = store.getState().locale;
|
||||
locale = store.getState().app.locale;
|
||||
}
|
||||
|
||||
let flag;
|
||||
|
|
@ -69,6 +73,30 @@ const App = () => {
|
|||
<Provider store={store}>
|
||||
<NavigationContainer>
|
||||
<Stack.Navigator>
|
||||
<Stack.Screen
|
||||
name="SyncScreen"
|
||||
component={SyncScreen}
|
||||
options={{ headerTitle: () => CustomNavigation.LogoTitle(i18n.t('global.synchronization')) }}
|
||||
/>
|
||||
<Stack.Screen
|
||||
name="LoginScreen"
|
||||
component={LoginScreen}
|
||||
options={(navigation, route) => ({
|
||||
headerTitle: () => CustomNavigation.LogoTitle(i18n.t('global.login')),
|
||||
headerRight: () => (
|
||||
<View style={{ flexDirection: 'row', alignItems: 'center' }}>
|
||||
<TouchableOpacity
|
||||
onPress={() => {
|
||||
store.dispatch({ type: 'UPDATE_LOCALE' });
|
||||
this.setState({ state: this.state }); // to force re-rendering
|
||||
}}
|
||||
style={{ marginRight: 15 }}>
|
||||
<Image source={flag} style={{ width: 25, height: 25 }} />
|
||||
</TouchableOpacity>
|
||||
</View>
|
||||
),
|
||||
})}
|
||||
/>
|
||||
<Stack.Screen
|
||||
name="HomeScreen"
|
||||
component={HomeScreen}
|
||||
|
|
@ -87,7 +115,7 @@ const App = () => {
|
|||
this.setState({ searchTxt: '' });
|
||||
}
|
||||
}}>
|
||||
<Icon name={'search'} size={20} color={'white'} />
|
||||
<FontAwesome5 name={'search'} size={20} color={'white'} />
|
||||
</TouchableOpacity>
|
||||
</View>
|
||||
<TouchableOpacity
|
||||
|
|
@ -101,7 +129,7 @@ const App = () => {
|
|||
<TouchableOpacity
|
||||
onPress={() => navigation.navigation.navigate('MySpaceScreen')}
|
||||
style={{ marginRight: 15 }}>
|
||||
<Icon name="user-circle" size={25} />
|
||||
<FontAwesome5 name="user-circle" size={25} />
|
||||
</TouchableOpacity>
|
||||
)}
|
||||
<TouchableOpacity
|
||||
|
|
@ -111,14 +139,14 @@ const App = () => {
|
|||
})
|
||||
}
|
||||
style={{ marginRight: 15 }}>
|
||||
<Icon name="sync-alt" size={20} />
|
||||
<FontAwesome5 name="sync-alt" size={20} />
|
||||
</TouchableOpacity>
|
||||
<TouchableOpacity
|
||||
onPress={() => {
|
||||
store.dispatch({ type: 'SET_LOGGED', data: false });
|
||||
}}
|
||||
style={{ marginRight: 15 }}>
|
||||
<Icon name="sign-out-alt" size={20} />
|
||||
<FontAwesome5 name="sign-out-alt" size={20} />
|
||||
</TouchableOpacity>
|
||||
</View>
|
||||
)
|
||||
|
|
|
|||
59
ComApp/src/App/Controllers/SyncController.js
Normal file
59
ComApp/src/App/Controllers/SyncController.js
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
// Lodash
|
||||
import _ from 'lodash';
|
||||
// Http Client
|
||||
import axios from 'axios';
|
||||
// Network Infos
|
||||
import NetInfo from "@react-native-community/netinfo";
|
||||
// Application infos
|
||||
import * as Application from 'expo-application';
|
||||
// Database
|
||||
import { Setting } from '../../Database';
|
||||
|
||||
const api_token = 'toto';
|
||||
const app_uuid = '1f6eda31-1f6d-49fe-aa81-4f0aece0f7ca';
|
||||
const url = "https://dev-app.rhd-ldc.fr";
|
||||
|
||||
class SyncController {
|
||||
|
||||
async checkConnection() {
|
||||
NetInfo.fetch().then(state => {
|
||||
return state.isConnected;
|
||||
});
|
||||
return false;
|
||||
}
|
||||
|
||||
async getVersion() {
|
||||
return axios({
|
||||
method: 'GET',
|
||||
url: url + '/api/version',
|
||||
responseType: 'json',
|
||||
params: {
|
||||
token: api_token,
|
||||
app_uuid: app_uuid,
|
||||
app_version: Application.nativeApplicationVersion
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
async getUsers() {
|
||||
return axios({
|
||||
method: 'GET',
|
||||
url: url + '/api/users',
|
||||
responseType: 'json',
|
||||
params: {
|
||||
token: api_token
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
updateShowIsActive(value) {
|
||||
const local = Setting.get('ShowIsActive');
|
||||
if (local === false || local === undefined) {
|
||||
Setting.add({ key: 'ShowIsActive', value: value });
|
||||
} else {
|
||||
Setting.update({ id: local.id, key: 'ShowIsActive', value: value });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default new SyncController();
|
||||
|
|
@ -32,6 +32,12 @@ class SettingModel {
|
|||
}
|
||||
}
|
||||
|
||||
update(data) {
|
||||
this.realm.write(() => {
|
||||
this.realm.create(this.schema, data, 'modified');
|
||||
});
|
||||
}
|
||||
|
||||
get(key) {
|
||||
let tmp = this.realm.objects(this.schema);
|
||||
if (tmp.length === 0) {
|
||||
|
|
|
|||
64
ComApp/src/App/Models/User.js
Normal file
64
ComApp/src/App/Models/User.js
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
class UserModel {
|
||||
constructor(realm) {
|
||||
this.schema = 'Users';
|
||||
this.realm = realm;
|
||||
}
|
||||
|
||||
add(data) {
|
||||
this.realm.write(() => {
|
||||
if (data.id === undefined) {
|
||||
let id = this.realm.objects(this.schema).max('id');
|
||||
data.id = id === undefined ? 1 : id + 1;
|
||||
}
|
||||
try {
|
||||
this.realm.create(this.schema, data, 'never');
|
||||
} catch (e) {
|
||||
console.log('db setting add', e);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
upsert(data) {
|
||||
let tmp = this.get(data.key);
|
||||
if (tmp === false || tmp === undefined) {
|
||||
this.add(data);
|
||||
} else {
|
||||
if (data.id === undefined) {
|
||||
data.id = tmp.id;
|
||||
}
|
||||
this.realm.write(() => {
|
||||
this.realm.create(this.schema, data, 'modified');
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
update(data) {
|
||||
this.realm.write(() => {
|
||||
this.realm.create(this.schema, data, 'modified');
|
||||
});
|
||||
}
|
||||
|
||||
get(key) {
|
||||
let tmp = this.realm.objects(this.schema);
|
||||
if (tmp.length === 0) {
|
||||
return false;
|
||||
} else {
|
||||
tmp = tmp.filtered('key = "' + key + '"')[0];
|
||||
}
|
||||
return tmp;
|
||||
}
|
||||
|
||||
getAll() {
|
||||
let tmp = this.realm.objects(this.schema);
|
||||
return tmp;
|
||||
}
|
||||
|
||||
clear() {
|
||||
this.realm.write(() => {
|
||||
this.realm.delete(this.getAll());
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export default UserModel;
|
||||
|
|
@ -1,3 +1,5 @@
|
|||
import SyncController from "../../Controllers/SyncController";
|
||||
|
||||
const initialState = {
|
||||
locale: 'fr',
|
||||
users: {},
|
||||
|
|
@ -93,7 +95,7 @@ const reducer = (state = initialState, action) => {
|
|||
syncVersion: action.data,
|
||||
};
|
||||
case 'UPDATE_SHOW_IS_ACTIVE':
|
||||
Sync.updateShowIsActive(action.data);
|
||||
SyncController.updateShowIsActive(action.data);
|
||||
return {
|
||||
...state,
|
||||
ShowIsActive: action.data,
|
||||
|
|
|
|||
54
ComApp/src/App/Views/LoginScreen.js
Normal file
54
ComApp/src/App/Views/LoginScreen.js
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
import React from 'react';
|
||||
import { View, ImageBackground, TextInput, Button, Image } from 'react-native';
|
||||
// Common Styles
|
||||
import commonStyles from '../../Resources/CommonStyles';
|
||||
// Style
|
||||
import styles from '../../Resources/Styles/LoginStyle';
|
||||
// Translations
|
||||
import i18n from "../../I18n";
|
||||
// FileSytem
|
||||
import * as FileSystem from 'expo-file-system';
|
||||
|
||||
class LoginScreen extends React.Component {
|
||||
state = {
|
||||
login: '',
|
||||
password: '',
|
||||
};
|
||||
|
||||
render() {
|
||||
return (
|
||||
<ImageBackground source={{ uri: FileSystem.documentDirectory + 'BackgroundImage.png' }} style={commonStyles.background}>
|
||||
<View style={styles.container}>
|
||||
<Image source={{ uri: FileSystem.documentDirectory + 'SquaredLogo.png' }} style={styles.logo} />
|
||||
<View>
|
||||
<TextInput
|
||||
style={styles.text}
|
||||
placeholder={i18n.t('login_s.username')}
|
||||
value={this.state.login}
|
||||
onChangeText={text => this.setState({ login: text })}
|
||||
autoCapitalize={'none'}
|
||||
autoCorrect={false}
|
||||
keyboardType={'email-address'}
|
||||
/>
|
||||
<TextInput
|
||||
style={styles.text}
|
||||
placeholder={i18n.t('login_s.password')}
|
||||
value={this.state.password}
|
||||
onChangeText={text => this.setState({ password: text })}
|
||||
secureTextEntry={true}
|
||||
autoCapitalize={'none'}
|
||||
autoCorrect={false}
|
||||
/>
|
||||
<Button
|
||||
title={i18n.t('global.login')}
|
||||
onPress={() => this.login(this.state.login, this.state.password)}
|
||||
color={'#ce3029'}
|
||||
/>
|
||||
</View>
|
||||
</View>
|
||||
</ImageBackground >
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export default LoginScreen;
|
||||
101
ComApp/src/App/Views/SyncScreen.js
Normal file
101
ComApp/src/App/Views/SyncScreen.js
Normal file
|
|
@ -0,0 +1,101 @@
|
|||
import React from 'react';
|
||||
import { View, Button, Alert, Text } from 'react-native';
|
||||
// Redux
|
||||
import { connect } from 'react-redux';
|
||||
// Style
|
||||
import styles from '../../Resources/Styles/SyncStyle';
|
||||
// Translations
|
||||
import i18n from "../../I18n";
|
||||
// Controller
|
||||
import SyncController from '../Controllers/SyncController';
|
||||
// Progress
|
||||
import * as Progress from 'react-native-progress';
|
||||
|
||||
function mapStateToProps(state) {
|
||||
return {
|
||||
documents: state.documents,
|
||||
syncVersion: state.syncVersion,
|
||||
currentUser: state.currentUser,
|
||||
};
|
||||
}
|
||||
|
||||
class SyncScreen extends React.Component {
|
||||
state = {
|
||||
progress: 0,
|
||||
txtStep: '',
|
||||
downloadProgress: 0,
|
||||
downloadingFile: false,
|
||||
processing: false,
|
||||
newApp: false
|
||||
};
|
||||
|
||||
render() {
|
||||
const fileProgress = this.fileProgress();
|
||||
return (
|
||||
<View style={styles.container}>
|
||||
<Progress.Circle
|
||||
size={250}
|
||||
progress={this.state.progress}
|
||||
showsText={true}
|
||||
color={'#ce3029'}
|
||||
/>
|
||||
<View style={styles.btnWrapper}>
|
||||
<Button
|
||||
disabled={this.state.processing}
|
||||
color={'#ce3029'}
|
||||
title={i18n.t('sync_s.start_sync')}
|
||||
onPress={() => this.sync()}
|
||||
/>
|
||||
</View>
|
||||
<View style={styles.btnWrapper}>
|
||||
<Text>
|
||||
{this.state.txtStep} {fileProgress}
|
||||
</Text>
|
||||
</View>
|
||||
</View>
|
||||
);
|
||||
}
|
||||
|
||||
async sync() {
|
||||
if (!SyncController.checkConnection()) {
|
||||
Alert.alert(
|
||||
i18n.t('global.warning'),
|
||||
i18n.t('error.must_be_connected_internet_sync')
|
||||
);
|
||||
return;
|
||||
}
|
||||
this.setState({ processing: true });
|
||||
// getVersion
|
||||
const resVersion = await SyncController.getVersion().then(res => {
|
||||
return res.data;
|
||||
}).catch(error => {
|
||||
console.log(error);
|
||||
Alert.alert(
|
||||
i18n.t('error.error'),
|
||||
i18n.t('error.error_has_occurred')
|
||||
);
|
||||
});
|
||||
this.setState({ newApp: resVersion.newApp });
|
||||
// getUsers
|
||||
this.setState({ txtStep: i18n.t('sync_s.updating_users') + '...' });
|
||||
// const resUsers = await SyncController.getUsers().then(res => {
|
||||
// return res.data;
|
||||
// }).catch(error => {
|
||||
// console.log(error);
|
||||
// Alert.alert(
|
||||
// i18n.t('error.error'),
|
||||
// i18n.t('error.error_has_occurred')
|
||||
// );
|
||||
// });
|
||||
// End
|
||||
this.setState({ txtStep: i18n.t('sync_s.update_completed') + '.', processing: false });
|
||||
}
|
||||
|
||||
fileProgress() {
|
||||
if (this.state.downloadingFile === true) {
|
||||
return this.state.downloadProgress + ' %';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default connect(mapStateToProps)(SyncScreen);
|
||||
|
|
@ -1,6 +1,7 @@
|
|||
import Realm from "realm";
|
||||
// Models
|
||||
import SettingModel from "./App/Models/Setting";
|
||||
import UserModel from './App/Models/User';
|
||||
|
||||
const SettingsSchema = {
|
||||
name: 'Settings',
|
||||
|
|
@ -11,17 +12,34 @@ const SettingsSchema = {
|
|||
value: 'string',
|
||||
},
|
||||
};
|
||||
|
||||
const UserSchema = {
|
||||
name: 'Users',
|
||||
primaryKey: 'id',
|
||||
properties: {
|
||||
id: 'int',
|
||||
email: 'string',
|
||||
surname: 'string',
|
||||
firstname: 'string',
|
||||
password: 'string',
|
||||
role: 'string',
|
||||
authorizedFolders: 'string',
|
||||
},
|
||||
};
|
||||
|
||||
const Database = {
|
||||
schema: [
|
||||
SettingsSchema,
|
||||
SettingsSchema,
|
||||
UserSchema
|
||||
],
|
||||
//encryptionKey: new Int8Array(64)
|
||||
};
|
||||
|
||||
let realm = new Realm(Database);
|
||||
let Setting = new SettingModel(realm);
|
||||
let User = new UserModel(realm);
|
||||
|
||||
export {
|
||||
Setting
|
||||
Setting,
|
||||
User
|
||||
}
|
||||
25
ComApp/src/Resources/Styles/LoginStyle.js
Normal file
25
ComApp/src/Resources/Styles/LoginStyle.js
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
import { StyleSheet } from 'react-native';
|
||||
|
||||
const styles = StyleSheet.create({
|
||||
container: {
|
||||
flex: 1,
|
||||
alignItems: 'center',
|
||||
justifyContent: 'center',
|
||||
},
|
||||
logo: {
|
||||
width: 150,
|
||||
height: 150,
|
||||
marginBottom: 20
|
||||
},
|
||||
text: {
|
||||
height: 40,
|
||||
width: 300,
|
||||
borderColor: 'grey',
|
||||
borderWidth: 1,
|
||||
marginBottom: 20,
|
||||
backgroundColor: 'white',
|
||||
paddingLeft: 10
|
||||
},
|
||||
});
|
||||
|
||||
export default styles;
|
||||
14
ComApp/src/Resources/Styles/SyncStyle.js
Normal file
14
ComApp/src/Resources/Styles/SyncStyle.js
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
import { StyleSheet } from 'react-native';
|
||||
|
||||
const styles = StyleSheet.create({
|
||||
container: {
|
||||
flex: 1,
|
||||
alignItems: 'center',
|
||||
justifyContent: 'center',
|
||||
},
|
||||
btnWrapper: {
|
||||
marginTop: 20
|
||||
}
|
||||
});
|
||||
|
||||
export default styles;
|
||||
135
ComApp/yarn.lock
135
ComApp/yarn.lock
|
|
@ -3018,6 +3018,11 @@
|
|||
"raw-body" "2.4.0"
|
||||
"type-is" "~1.6.17"
|
||||
|
||||
"boolbase@^1.0.0":
|
||||
"integrity" "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww=="
|
||||
"resolved" "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz"
|
||||
"version" "1.0.0"
|
||||
|
||||
"bplist-creator@0.1.0":
|
||||
"integrity" "sha512-sXaHZicyEEmY86WyueLTQesbeoH/mquvarJaQNbjuOQO+7gbFcDEWqKmcWA4cOTLzFlfgvkiVxolk1k5bBIpmg=="
|
||||
"resolved" "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.1.0.tgz"
|
||||
|
|
@ -3416,6 +3421,15 @@
|
|||
"strip-ansi" "^6.0.0"
|
||||
"wrap-ansi" "^6.2.0"
|
||||
|
||||
"cliui@^7.0.2":
|
||||
"integrity" "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ=="
|
||||
"resolved" "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz"
|
||||
"version" "7.0.4"
|
||||
dependencies:
|
||||
"string-width" "^4.2.0"
|
||||
"strip-ansi" "^6.0.0"
|
||||
"wrap-ansi" "^7.0.0"
|
||||
|
||||
"clone-deep@^4.0.1":
|
||||
"integrity" "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ=="
|
||||
"resolved" "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz"
|
||||
|
|
@ -3706,6 +3720,30 @@
|
|||
"resolved" "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz"
|
||||
"version" "2.0.0"
|
||||
|
||||
"css-select@^5.1.0":
|
||||
"integrity" "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg=="
|
||||
"resolved" "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz"
|
||||
"version" "5.1.0"
|
||||
dependencies:
|
||||
"boolbase" "^1.0.0"
|
||||
"css-what" "^6.1.0"
|
||||
"domhandler" "^5.0.2"
|
||||
"domutils" "^3.0.1"
|
||||
"nth-check" "^2.0.1"
|
||||
|
||||
"css-tree@^1.1.3":
|
||||
"integrity" "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q=="
|
||||
"resolved" "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz"
|
||||
"version" "1.1.3"
|
||||
dependencies:
|
||||
"mdn-data" "2.0.14"
|
||||
"source-map" "^0.6.1"
|
||||
|
||||
"css-what@^6.1.0":
|
||||
"integrity" "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw=="
|
||||
"resolved" "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz"
|
||||
"version" "6.1.0"
|
||||
|
||||
"cssesc@^3.0.0":
|
||||
"version" "3.0.0"
|
||||
|
||||
|
|
@ -3987,6 +4025,20 @@
|
|||
dependencies:
|
||||
"esutils" "^2.0.2"
|
||||
|
||||
"dom-serializer@^2.0.0":
|
||||
"integrity" "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg=="
|
||||
"resolved" "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz"
|
||||
"version" "2.0.0"
|
||||
dependencies:
|
||||
"domelementtype" "^2.3.0"
|
||||
"domhandler" "^5.0.2"
|
||||
"entities" "^4.2.0"
|
||||
|
||||
"domelementtype@^2.3.0":
|
||||
"integrity" "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw=="
|
||||
"resolved" "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz"
|
||||
"version" "2.3.0"
|
||||
|
||||
"domexception@^2.0.1":
|
||||
"integrity" "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg=="
|
||||
"resolved" "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz"
|
||||
|
|
@ -3994,6 +4046,22 @@
|
|||
dependencies:
|
||||
"webidl-conversions" "^5.0.0"
|
||||
|
||||
"domhandler@^5.0.1", "domhandler@^5.0.2":
|
||||
"integrity" "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w=="
|
||||
"resolved" "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz"
|
||||
"version" "5.0.3"
|
||||
dependencies:
|
||||
"domelementtype" "^2.3.0"
|
||||
|
||||
"domutils@^3.0.1":
|
||||
"integrity" "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q=="
|
||||
"resolved" "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz"
|
||||
"version" "3.0.1"
|
||||
dependencies:
|
||||
"dom-serializer" "^2.0.0"
|
||||
"domelementtype" "^2.3.0"
|
||||
"domhandler" "^5.0.1"
|
||||
|
||||
"ecc-jsbn@~0.1.1":
|
||||
"integrity" "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw=="
|
||||
"resolved" "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz"
|
||||
|
|
@ -4046,6 +4114,11 @@
|
|||
dependencies:
|
||||
"ansi-colors" "^4.1.1"
|
||||
|
||||
"entities@^4.2.0":
|
||||
"integrity" "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA=="
|
||||
"resolved" "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz"
|
||||
"version" "4.4.0"
|
||||
|
||||
"env-editor@^0.4.1":
|
||||
"integrity" "sha512-ObFo8v4rQJAE59M69QzwloxPZtd33TpYEIjtKD1rrFDcM1Gd7IkDxEBU+HriziN6HSHQnBJi8Dmy+JWkav5HKA=="
|
||||
"resolved" "https://registry.npmjs.org/env-editor/-/env-editor-0.4.2.tgz"
|
||||
|
|
@ -4991,7 +5064,7 @@
|
|||
"resolved" "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz"
|
||||
"version" "1.0.0-beta.2"
|
||||
|
||||
"get-caller-file@^2.0.1":
|
||||
"get-caller-file@^2.0.1", "get-caller-file@^2.0.5":
|
||||
"integrity" "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
|
||||
"resolved" "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz"
|
||||
"version" "2.0.5"
|
||||
|
|
@ -6951,6 +7024,11 @@
|
|||
"resolved" "https://registry.npmjs.org/md5hex/-/md5hex-1.0.0.tgz"
|
||||
"version" "1.0.0"
|
||||
|
||||
"mdn-data@2.0.14":
|
||||
"integrity" "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow=="
|
||||
"resolved" "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz"
|
||||
"version" "2.0.14"
|
||||
|
||||
"media-typer@0.3.0":
|
||||
"integrity" "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ=="
|
||||
"resolved" "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz"
|
||||
|
|
@ -8010,6 +8088,13 @@
|
|||
"gauge" "^4.0.3"
|
||||
"set-blocking" "^2.0.0"
|
||||
|
||||
"nth-check@^2.0.1":
|
||||
"integrity" "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w=="
|
||||
"resolved" "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz"
|
||||
"version" "2.1.1"
|
||||
dependencies:
|
||||
"boolbase" "^1.0.0"
|
||||
|
||||
"nullthrows@^1.1.1":
|
||||
"integrity" "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw=="
|
||||
"resolved" "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz"
|
||||
|
|
@ -8626,7 +8711,7 @@
|
|||
dependencies:
|
||||
"read" "1"
|
||||
|
||||
"prop-types@^15.6.2", "prop-types@^15.8.1":
|
||||
"prop-types@^15.6.2", "prop-types@^15.7.2", "prop-types@^15.8.1":
|
||||
"integrity" "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg=="
|
||||
"resolved" "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz"
|
||||
"version" "15.8.1"
|
||||
|
|
@ -8769,6 +8854,13 @@
|
|||
"resolved" "https://registry.npmjs.org/react-native-gradle-plugin/-/react-native-gradle-plugin-0.70.3.tgz"
|
||||
"version" "0.70.3"
|
||||
|
||||
"react-native-progress@^5.0.0":
|
||||
"integrity" "sha512-KjnGIt3r9i5Kn2biOD9fXLJocf0bwxPRxOyAgXEnZTJQU2O+HyzgGFRCbM5h3izm9kKIkSc1txh8aGmMafCD9A=="
|
||||
"resolved" "https://registry.npmjs.org/react-native-progress/-/react-native-progress-5.0.0.tgz"
|
||||
"version" "5.0.0"
|
||||
dependencies:
|
||||
"prop-types" "^15.7.2"
|
||||
|
||||
"react-native-safe-area-context@^4.4.1", "react-native-safe-area-context@>= 3.0.0":
|
||||
"integrity" "sha512-N9XTjiuD73ZpVlejHrUWIFZc+6Z14co1K/p1IFMkImU7+avD69F3y+lhkqA2hN/+vljdZrBSiOwXPkuo43nFQA=="
|
||||
"resolved" "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-4.4.1.tgz"
|
||||
|
|
@ -8782,6 +8874,22 @@
|
|||
"react-freeze" "^1.0.0"
|
||||
"warn-once" "^0.1.0"
|
||||
|
||||
"react-native-svg@*", "react-native-svg@^13.2.0":
|
||||
"integrity" "sha512-bDvMeFReA3F9pVp0EhACPrEerRcITzTu9N2m2lAPinhIMVvwzGzVXyFsXI8fCMSoeOIh+77hKvukoCedh06tLw=="
|
||||
"resolved" "https://registry.npmjs.org/react-native-svg/-/react-native-svg-13.2.0.tgz"
|
||||
"version" "13.2.0"
|
||||
dependencies:
|
||||
"css-select" "^5.1.0"
|
||||
"css-tree" "^1.1.3"
|
||||
|
||||
"react-native-vector-icons@^9.2.0":
|
||||
"integrity" "sha512-wKYLaFuQST/chH3AJRjmOLoLy3JEs1JR6zMNgTaemFpNoXs0ztRnTxcxFD9xhX7cJe1/zoN5BpQYe7kL0m5yyA=="
|
||||
"resolved" "https://registry.npmjs.org/react-native-vector-icons/-/react-native-vector-icons-9.2.0.tgz"
|
||||
"version" "9.2.0"
|
||||
dependencies:
|
||||
"prop-types" "^15.7.2"
|
||||
"yargs" "^16.1.1"
|
||||
|
||||
"react-native@*", "react-native@>=0.59", "react-native@>=0.70.0", "react-native@0.70.1":
|
||||
"integrity" "sha512-AUh4NZLFdvyjSiYWCtTROCrC7loxeeZ/TzBnkZwp3kb9XmMu7/kzvWn2c5sEMnzW7X/0JSul8jXexGVdpnCoSA=="
|
||||
"resolved" "https://registry.npmjs.org/react-native/-/react-native-0.70.1.tgz"
|
||||
|
|
@ -10907,6 +11015,11 @@
|
|||
"resolved" "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz"
|
||||
"version" "4.0.3"
|
||||
|
||||
"y18n@^5.0.5":
|
||||
"integrity" "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="
|
||||
"resolved" "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz"
|
||||
"version" "5.0.8"
|
||||
|
||||
"yallist@^4.0.0":
|
||||
"integrity" "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
|
||||
"resolved" "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz"
|
||||
|
|
@ -10920,6 +11033,11 @@
|
|||
"camelcase" "^5.0.0"
|
||||
"decamelize" "^1.2.0"
|
||||
|
||||
"yargs-parser@^20.2.2":
|
||||
"integrity" "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w=="
|
||||
"resolved" "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz"
|
||||
"version" "20.2.9"
|
||||
|
||||
"yargs@^15.1.0", "yargs@^15.3.1", "yargs@^15.4.1":
|
||||
"integrity" "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A=="
|
||||
"resolved" "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz"
|
||||
|
|
@ -10937,6 +11055,19 @@
|
|||
"y18n" "^4.0.0"
|
||||
"yargs-parser" "^18.1.2"
|
||||
|
||||
"yargs@^16.1.1":
|
||||
"integrity" "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw=="
|
||||
"resolved" "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz"
|
||||
"version" "16.2.0"
|
||||
dependencies:
|
||||
"cliui" "^7.0.2"
|
||||
"escalade" "^3.1.1"
|
||||
"get-caller-file" "^2.0.5"
|
||||
"require-directory" "^2.1.1"
|
||||
"string-width" "^4.2.0"
|
||||
"y18n" "^5.0.5"
|
||||
"yargs-parser" "^20.2.2"
|
||||
|
||||
"yocto-queue@^0.1.0":
|
||||
"integrity" "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="
|
||||
"resolved" "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz"
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue