Nano santé OK

This commit is contained in:
bricezele 2021-02-26 00:33:16 +01:00
parent a40786c779
commit e6a51feb48
23 changed files with 2326 additions and 1581 deletions

8
App.js
View File

@ -83,6 +83,9 @@ import CasserEpargneUser from './screens/nano-credit/CasserEpargneUser';
import {IlinkEmitter} from './utils/events';
import EnvoieWalletToBankAgent from "./screens/wallet/agent/EnvoieWalletToBankAgent";
import ReattachAccountUser from "./screens/wallet/user/ReattachAccountUser";
import AcceptPrestationAgent from "./screens/nano-sante/AcceptPrestationAgent";
import SouscrireAssuranceUser from "./screens/nano-sante/SouscrireAssuranceUser";
import AskPrestationUser from "./screens/nano-sante/AskPrestationUser";
const instructions = Platform.select({
@ -137,6 +140,8 @@ const AppStack = createDrawerNavigator({
reattachAccountUser: ReattachAccountUser,
epargnerArgentUser: EpargnerArgentUser,
createGroupNanoCredit: CreateGroupNanoCredit,
souscrireAssuranceUser: SouscrireAssuranceUser,
askPrestationUser: AskPrestationUser,
groupNanoCredit: {
screen: createBottomTabNavigator({
demandeValidationGroupe: {
@ -264,6 +269,7 @@ const AppAgentStack = createDrawerNavigator({
envoieWalletToBankAgent: EnvoieWalletToBankAgent,
createGroupNanoCredit: CreateGroupNanoCredit,
cautionNanoCreditAgent: CautionNanoCreditAgent,
acceptPrestationAgent: AcceptPrestationAgent
})
}, {
contentComponent: OptionsMenu,
@ -398,6 +404,7 @@ class App extends React.Component {
OneSignal.setLogLevel(6, 0);
IlinkEmitter.on("langueChange", this.updateLangue.bind(this))
// Replace 'YOUR_ONESIGNAL_APP_ID' with your OneSignal App ID.
/*
OneSignal.init("e8e7251f-713d-4658-9510-86d877fa6a7c", {
kOSSettingsKeyAutoPrompt: false,
kOSSettingsKeyInAppLaunchURL: false,
@ -411,6 +418,7 @@ class App extends React.Component {
OneSignal.addEventListener('received', this.onReceived);
OneSignal.addEventListener('opened', this.onOpened);
OneSignal.addEventListener('ids', this.onIds);
*/
}
updateLangue() {

File diff suppressed because one or more lines are too long

View File

@ -5,11 +5,8 @@ import android.content.Context;
import com.facebook.react.PackageList;
import com.facebook.react.ReactApplication;
<<<<<<< Updated upstream:android/app/src/main/java/com/ilinktest/MainApplication.java
import com.geektime.rnonesignalandroid.ReactNativeOneSignalPackage;
=======
import com.airbnb.android.react.lottie.LottiePackage;
>>>>>>> Stashed changes:android/app/src/main/java/com/appli/ilink/MainApplication.java
import com.facebook.react.ReactNativeHost;
import com.facebook.react.ReactPackage;
import com.facebook.soloader.SoLoader;

View File

@ -1,4 +1,4 @@
{
"name": "iLinkWorld",
"name": "iLink",
"displayName": "iLinkWorld"
}

View File

@ -1,88 +1,84 @@
{
"_from": "react-native@0.61.5",
"_id": "react-native@0.61.5",
"_inBundle": false,
"_integrity": "sha512-MXqE3NoGO0T3dUKIKkIppijBhRRMpfN6ANbhMXHDuyfA+fSilRWgCwYgR/YNCC7ntECoJYikKaNTUBB0DeQy6Q==",
"_location": "/react-native",
"_phantomChildren": {
"@hapi/joi": "15.1.1",
"@react-native-community/cli-debugger-ui": "3.0.0",
"@react-native-community/cli-tools": "3.0.0",
"@react-native-community/cli-types": "3.0.0",
"@types/istanbul-lib-coverage": "2.0.1",
"@types/istanbul-reports": "1.1.1",
"@types/yargs-parser": "15.0.0",
"chalk": "2.4.2",
"command-exists": "1.2.9",
"commander": "2.20.3",
"compression": "1.7.4",
"connect": "3.7.0",
"core-js": "2.6.11",
"cosmiconfig": "5.2.1",
"deepmerge": "3.3.0",
"didyoumean": "1.2.1",
"envinfo": "7.7.4",
"errorhandler": "1.5.1",
"execa": "1.0.0",
"fbjs-css-vars": "1.0.2",
"fs-extra": "7.0.1",
"glob": "7.1.6",
"graceful-fs": "4.2.3",
"inquirer": "3.3.0",
"isomorphic-fetch": "2.2.1",
"lodash": "4.17.15",
"loose-envify": "1.4.0",
"metro": "0.56.4",
"metro-config": "0.56.4",
"metro-core": "0.56.4",
"metro-react-native-babel-transformer": "0.56.4",
"minimist": "1.2.4",
"mkdirp": "0.5.1",
"morgan": "1.10.0",
"node-notifier": "5.4.3",
"object-assign": "4.1.1",
"open": "6.4.0",
"ora": "3.4.0",
"p-limit": "2.2.2",
"plist": "3.0.1",
"promise": "7.3.1",
"react-is": "16.13.0",
"serve-static": "1.14.1",
"setimmediate": "1.0.5",
"shell-quote": "1.6.1",
"sudo-prompt": "9.2.1",
"ua-parser-js": "0.7.21",
"wcwidth": "1.0.1",
"ws": "1.1.5"
},
"_requested": {
"type": "version",
"registry": true,
"raw": "react-native@0.61.5",
"name": "react-native",
"version": "0.61.5",
"bin": "./cli.js",
"description": "A framework for building native apps using React",
"license": "MIT",
"repository": {
"type": "git",
"url": "git@github.com:facebook/react-native.git"
"escapedName": "react-native",
"rawSpec": "0.61.5",
"saveSpec": null,
"fetchSpec": "0.61.5"
},
"engines": {
"node": ">=8.3"
},
"jest-junit": {
"outputDirectory": "reports/junit",
"outputName": "js-test-results.xml"
},
"main": "Libraries/react-native/react-native-implementation.js",
"files": [
".flowconfig",
"android",
"cli.js",
"flow",
"init.sh",
"scripts/compose-source-maps.js",
"scripts/ios-configure-glog.sh",
"scripts/ios-install-third-party.sh",
"scripts/launchPackager.bat",
"scripts/launchPackager.command",
"scripts/node-binary.sh",
"scripts/packager.sh",
"scripts/react-native-xcode.sh",
"jest-preset.js",
"jest",
"lib",
"rn-get-polyfills.js",
"Libraries",
"LICENSE",
"packager",
"react-native.config.js",
"react.gradle",
"React.podspec",
"React-Core.podspec",
"React",
"ReactAndroid",
"ReactCommon",
"README.md",
"third-party-podspecs",
"template",
"local-cli",
"template.config.js",
"!template/node_modules",
"!template/yarn.lock",
"!template/package-lock.json"
"_requiredBy": [
"/"
],
"scripts": {
"start": "react-native start",
"test": "jest",
"test-ci": "jest --maxWorkers=2 --ci --reporters=\"default\" --reporters=\"jest-junit\"",
"flow": "flow",
"flow-check-ios": "flow check",
"flow-check-android": "flow check --flowconfig-name .flowconfig.android",
"lint": "eslint .",
"lint-ci": "./scripts/circleci/analyze_code.sh && yarn shellcheck",
"shellcheck": "./scripts/circleci/analyze_scripts.sh",
"clang-format": "clang-format -i --glob=*/**/*.{h,cpp,m,mm}",
"format": "npm run prettier && npm run clang-format",
"prettier": "prettier --write \"./**/*.{js,md,yml}\"",
"format-check": "prettier --list-different \"./**/*.{js,md,yml}\"",
"docker-setup-android": "docker pull reactnativecommunity/react-native-android",
"docker-build-android": "docker build -t reactnativeci/android -f .circleci/Dockerfiles/Dockerfile.android .",
"test-android-run-instrumentation": "docker run --cap-add=SYS_ADMIN -it reactnativeci/android bash .circleci/Dockerfiles/scripts/run-android-docker-instrumentation-tests.sh",
"test-android-run-unit": "docker run --cap-add=SYS_ADMIN -it reactnativeci/android bash .circleci/Dockerfiles/scripts/run-android-docker-unit-tests.sh",
"test-android-run-e2e": "docker run --privileged -it reactnativeci/android bash .circleci/Dockerfiles/scripts/run-ci-e2e-tests.sh --android --js",
"test-android-all": "yarn run docker-build-android && yarn run test-android-run-unit && yarn run test-android-run-instrumentation && yarn run test-android-run-e2e",
"test-android-instrumentation": "yarn run docker-build-android && yarn run test-android-run-instrumentation",
"test-android-unit": "yarn run docker-build-android && yarn run test-android-run-unit",
"test-android-e2e": "yarn run docker-build-android && yarn run test-android-run-e2e",
"build-ios-e2e": "detox build -c ios.sim.release",
"test-ios-e2e": "detox test -c ios.sim.release RNTester/e2e",
"test-ios": "./scripts/objc-test.sh test"
"_resolved": "https://registry.npmjs.org/react-native/-/react-native-0.61.5.tgz",
"_shasum": "6e21acb56cbd75a3baeb1f70201a66f42600bba8",
"_spec": "react-native@0.61.5",
"_where": "/Users/retina/Documents/Projets/iLinkWorld",
"bin": {
"react-native": "cli.js"
},
"peerDependencies": {
"react": "16.9.0"
"bugs": {
"url": "https://github.com/facebook/react-native/issues"
},
"bundleDependencies": false,
"dependencies": {
"@babel/runtime": "^7.0.0",
"@react-native-community/cli": "^3.0.0",
@ -114,6 +110,27 @@
"stacktrace-parser": "^0.1.3",
"whatwg-fetch": "^3.0.0"
},
"deprecated": false,
"description": "A framework for building native apps using React",
"detox": {
"test-runner": "jest",
"runner-config": "RNTester/e2e/config.json",
"specs": "",
"configurations": {
"ios.sim.release": {
"binaryPath": "RNTester/build/Build/Products/Release-iphonesimulator/RNTester.app/",
"build": "xcodebuild -workspace RNTester/RNTesterPods.xcworkspace -scheme RNTester -configuration Release -sdk iphonesimulator -derivedDataPath RNTester/build -UseModernBuildSystem=NO -quiet",
"type": "ios.simulator",
"name": "iPhone 6s"
},
"ios.sim.debug": {
"binaryPath": "RNTester/build/Build/Products/Debug-iphonesimulator/RNTester.app/",
"build": "xcodebuild -workspace RNTester/RNTesterPods.xcworkspace -scheme RNTester -configuration Debug -sdk iphonesimulator -derivedDataPath RNTester/build -UseModernBuildSystem=NO -quiet",
"type": "ios.simulator",
"name": "iPhone 6s"
}
}
},
"devDependencies": {
"@babel/core": "^7.0.0",
"@babel/generator": "^7.0.0",
@ -151,23 +168,87 @@
"ws": "^6.1.4",
"yargs": "^9.0.0"
},
"detox": {
"test-runner": "jest",
"runner-config": "RNTester/e2e/config.json",
"specs": "",
"configurations": {
"ios.sim.release": {
"binaryPath": "RNTester/build/Build/Products/Release-iphonesimulator/RNTester.app/",
"build": "xcodebuild -workspace RNTester/RNTesterPods.xcworkspace -scheme RNTester -configuration Release -sdk iphonesimulator -derivedDataPath RNTester/build -UseModernBuildSystem=NO -quiet",
"type": "ios.simulator",
"name": "iPhone 6s"
"engines": {
"node": ">=8.3"
},
"ios.sim.debug": {
"binaryPath": "RNTester/build/Build/Products/Debug-iphonesimulator/RNTester.app/",
"build": "xcodebuild -workspace RNTester/RNTesterPods.xcworkspace -scheme RNTester -configuration Debug -sdk iphonesimulator -derivedDataPath RNTester/build -UseModernBuildSystem=NO -quiet",
"type": "ios.simulator",
"name": "iPhone 6s"
}
}
}
"files": [
".flowconfig",
"android",
"cli.js",
"flow",
"init.sh",
"scripts/compose-source-maps.js",
"scripts/ios-configure-glog.sh",
"scripts/ios-install-third-party.sh",
"scripts/launchPackager.bat",
"scripts/launchPackager.command",
"scripts/node-binary.sh",
"scripts/packager.sh",
"scripts/react-native-xcode.sh",
"jest-preset.js",
"jest",
"lib",
"rn-get-polyfills.js",
"Libraries",
"LICENSE",
"packager",
"react-native.config.js",
"react.gradle",
"React.podspec",
"React-Core.podspec",
"React",
"ReactAndroid",
"ReactCommon",
"README.md",
"third-party-podspecs",
"template",
"local-cli",
"template.config.js",
"!template/node_modules",
"!template/yarn.lock",
"!template/package-lock.json"
],
"homepage": "https://github.com/facebook/react-native#readme",
"jest-junit": {
"outputDirectory": "reports/junit",
"outputName": "js-test-results.xml"
},
"license": "MIT",
"main": "Libraries/react-native/react-native-implementation.js",
"name": "react-native",
"peerDependencies": {
"react": "16.9.0"
},
"repository": {
"type": "git",
"url": "git+ssh://git@github.com/facebook/react-native.git"
},
"scripts": {
"build-ios-e2e": "detox build -c ios.sim.release",
"clang-format": "clang-format -i --glob=*/**/*.{h,cpp,m,mm}",
"docker-build-android": "docker build -t reactnativeci/android -f .circleci/Dockerfiles/Dockerfile.android .",
"docker-setup-android": "docker pull reactnativecommunity/react-native-android",
"flow": "flow",
"flow-check-android": "flow check --flowconfig-name .flowconfig.android",
"flow-check-ios": "flow check",
"format": "npm run prettier && npm run clang-format",
"format-check": "prettier --list-different \"./**/*.{js,md,yml}\"",
"lint": "eslint .",
"lint-ci": "./scripts/circleci/analyze_code.sh && yarn shellcheck",
"prettier": "prettier --write \"./**/*.{js,md,yml}\"",
"shellcheck": "./scripts/circleci/analyze_scripts.sh",
"start": "react-native start",
"test": "jest",
"test-android-all": "yarn run docker-build-android && yarn run test-android-run-unit && yarn run test-android-run-instrumentation && yarn run test-android-run-e2e",
"test-android-e2e": "yarn run docker-build-android && yarn run test-android-run-e2e",
"test-android-instrumentation": "yarn run docker-build-android && yarn run test-android-run-instrumentation",
"test-android-run-e2e": "docker run --privileged -it reactnativeci/android bash .circleci/Dockerfiles/scripts/run-ci-e2e-tests.sh --android --js",
"test-android-run-instrumentation": "docker run --cap-add=SYS_ADMIN -it reactnativeci/android bash .circleci/Dockerfiles/scripts/run-android-docker-instrumentation-tests.sh",
"test-android-run-unit": "docker run --cap-add=SYS_ADMIN -it reactnativeci/android bash .circleci/Dockerfiles/scripts/run-android-docker-unit-tests.sh",
"test-android-unit": "yarn run docker-build-android && yarn run test-android-run-unit",
"test-ci": "jest --maxWorkers=2 --ci --reporters=\"default\" --reporters=\"jest-junit\"",
"test-ios": "./scripts/objc-test.sh test",
"test-ios-e2e": "detox test -c ios.sim.release RNTester/e2e"
},
"version": "0.61.5"
}

View File

@ -1,4 +1,4 @@
{
"name": "iLink",
"name": "iLinkWorld",
"displayName": "iLinkWorld"
}

File diff suppressed because one or more lines are too long

View File

@ -6,7 +6,7 @@
"start": "node node_modules/react-native/local-cli/cli.js start",
"test": "jest",
"postinstall": "node ./fix-android/android-release-fix.js",
"release-build": "react-native bundle --platform android --dev false --entry-file index.js --bundle-output ./android/app/src/main/assets/index.android.bundle --assets-dest ./android/app/build/intermediates/res/merged/release/ && rm -rf ./android/app/src/main/res/drawable-* && rm -rf ./android/app/src/main/res/raw/* && cd ./android && ./gradlew assembleRelease && cd .. && adb install ./android/app/build/outputs/apk/release/app-release.apk",
"release-build": "react-native bundle --platform android --dev false --entry-file index.js --bundle-output ./android/app/src/main/assets/index.android.bundle --assets-dest ./android/app/build/intermediates/res/merged/release/ && rm -rf ./android/app/src/main/res/drawable-* && rm -rf ./android/app/src/main/res/raw/* && cd ./android && ./gradlew assembleRelease -x bundleReleaseJsAndAssets && cd .. && adb install ./android/app/build/outputs/apk/release/app-release.apk",
"debug-build": "react-native bundle --platform android --dev false --entry-file index.js --bundle-output ./android/app/src/main/assets/index.android.bundle --assets-dest ./android/app/src/main/res/ && cd ./android && ./gradlew assembleDebug && cd .. && adb install ./android/app/build/outputs/apk/debug/app-debug.apk",
"start-emulator": "emulator -avd Nexus_5X_API_29 -dns-server 8.8.8.8",
"start-emulator-pixel": "emulator -avd Pixel_2_API_29 -dns-server 8.8.8.8",

View File

@ -64,5 +64,8 @@
"cautionNanoCreditAgent": "cautionNanoCreditAgent",
"epargnerArgentUser": "epargnerArgentUser",
"casserEpargneUser": "casserEpargneUser",
"reattachAccountUser": "reattachAccountUser"
"reattachAccountUser": "reattachAccountUser",
"acceptPrestationAgent": "acceptPrestationAgent",
"souscrireAssuranceUser": "souscrireAssuranceUser",
"askPrestationUser": "askPrestationUser"
}

View File

@ -45,7 +45,6 @@ import InterticielAds from './../ads/InterticielAds'
import SnackBar from 'react-native-snackbar-component'
import {FAB, Surface} from 'react-native-paper'
import BottomSheet from 'reanimated-bottom-sheet'
import MarkerManager from './../../webservice/persistences/MarkerManager'
import {bindActionCreators} from 'redux';
import getAuthApiKey from '../../webservice/AuthKeyApi';
import {connect} from 'react-redux';
@ -309,7 +308,6 @@ class Home extends BaseScreen {
this.mounted = true;
this.configuration = new Configuration()
const {navigation} = this.props;
this.markerManager = new MarkerManager()
this.configuration.getCurrentPubValue().then((value) => {
try {
const val = parseInt(value)
@ -1653,7 +1651,7 @@ class Home extends BaseScreen {
translucent={true}
/>
{/* Start here to comment */}
{/*{
{
(this.state.loadingDialog || this.props.loading) ?
<View
style={{
@ -1705,7 +1703,7 @@ class Home extends BaseScreen {
}
}])
}}
/>*/}
/>
{this.makeCardSearch()}
{this.makeSlidingUp()}
{this.makeDialogLoader()}
@ -2088,8 +2086,6 @@ class Home extends BaseScreen {
)
}
markerManager: MarkerManager
getHypervisorActionButton() {
return (<ActionButton
buttonColor={theme.accent}

View File

@ -0,0 +1,152 @@
import React, {Component} from 'react';
import {Color} from "../../config/Color";
import I18n from "react-native-i18n";
import * as Animatable from "react-native-animatable";
import {Fumi} from "react-native-textinput-effects";
import FontAwesomeIcon from "react-native-vector-icons/FontAwesome";
import {ScrollView, StyleSheet, Text, View} from "react-native";
import {responsiveHeight, responsiveWidth} from "react-native-responsive-dimensions";
import {FontWeight, Typography} from "../../config/typography";
import Button from "apsl-react-native-button";
export default class AcceptPrestationAgent extends Component {
static navigatorStyle = {
navBarBackgroundColor: Color.primaryColor,
statusBarColor: Color.primaryDarkColor,
navBarTextColor: '#FFFFFF',
navBarButtonColor: '#FFFFFF'
};
static navigationOptions = () => {
return {
drawerLabel: () => null,
headerTitle: I18n.t('ACCEPTER_PRESTATION'),
headerTintColor: 'white',
headerStyle: {
backgroundColor: Color.primaryColor,
marginTop: 0,
color: 'white'
},
headerTitleStyle: {
color: "white"
},
title: I18n.t('ACCEPTER_PRESTATION')
}
};
constructor(props) {
super(props);
this.state = {
password: null,
numeroTelephone: null
}
}
render() {
return (
<ScrollView style={styles.container}>
<Text style={styles.subbigtitle}>{I18n.t('ACCEPTER_PRESTATION')}</Text>
<Animatable.View ref={(comp) => {
this.numeroTelephoneAnim = comp
}}>
<Fumi iconClass={FontAwesomeIcon} iconName="phone"
label={I18n.t('PHONE')}
iconColor={'#f95a25'}
keyboardType='phone-pad'
iconSize={20}
value={this.state.numeroTelephone}
onChangeText={(numeroTelephone) => {
this.setState({numeroTelephone})
}}
style={styles.input}
>
</Fumi>
</Animatable.View>
<Animatable.View ref={(comp) => {
this.passwordAnim = comp
}}>
<Fumi iconClass={FontAwesomeIcon} iconName={'lock'}
label={I18n.t('PASSWORD')}
iconColor={'#f95a25'}
iconSize={20}
secureTextEntry={true}
value={this.state.password}
onChangeText={(password) => {
this.setState({password})
}}
style={styles.input}
>
</Fumi>
</Animatable.View>
<Button style={styles.btnvalide}
textStyle={styles.textbtnvalide}
onPress={() => {
//this.onSubmitSendWalletToCard()
}}>
{I18n.t('SUBMIT_LABEL')}</Button>
</ScrollView>
)
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: Color.primaryDarkColor,
},
textbtnvalide: {
color: 'white',
fontWeight: 'bold'
},
bigtitle: {
color: 'white',
fontSize: 20,
flex: 1,
fontWeight: 'bold',
textAlign: 'center',
margin: 20,
},
blockView: {
paddingVertical: 10,
borderBottomWidth: 1
},
subbigtitle: {
color: 'white',
fontSize: 17,
textAlign: 'center',
margin: 5,
},
btnvalide: {
marginTop: 20,
marginLeft: 20,
marginRight: 20,
borderColor: 'transparent',
backgroundColor: Color.accentLightColor,
height: 52
},
btnSubmit: {
marginTop: 20,
borderColor: 'transparent',
backgroundColor: Color.accentLightColor,
height: 52,
width: "30%",
marginLeft: 20,
marginRight: 20,
},
input: {
height: 60,
marginTop: responsiveHeight(2),
marginLeft: responsiveWidth(5),
marginRight: responsiveWidth(5),
borderRadius: 5,
}
});

View File

@ -0,0 +1,152 @@
import React, {Component} from 'react';
import {Color} from "../../config/Color";
import I18n from "react-native-i18n";
import * as Animatable from "react-native-animatable";
import {Fumi} from "react-native-textinput-effects";
import FontAwesomeIcon from "react-native-vector-icons/FontAwesome";
import {ScrollView, StyleSheet, Text, View} from "react-native";
import {responsiveHeight, responsiveWidth} from "react-native-responsive-dimensions";
import {FontWeight, Typography} from "../../config/typography";
import Button from "apsl-react-native-button";
export default class AskPrestationUser extends Component {
static navigatorStyle = {
navBarBackgroundColor: Color.primaryColor,
statusBarColor: Color.primaryDarkColor,
navBarTextColor: '#FFFFFF',
navBarButtonColor: '#FFFFFF'
};
static navigationOptions = () => {
return {
drawerLabel: () => null,
headerTitle: I18n.t('DEMANDER_PRESTATION'),
headerTintColor: 'white',
headerStyle: {
backgroundColor: Color.primaryColor,
marginTop: 0,
color: 'white'
},
headerTitleStyle: {
color: "white"
},
title: I18n.t('DEMANDER_PRESTATION')
}
};
constructor(props) {
super(props);
this.state = {
password: null,
numeroTelephone: null
}
}
render() {
return (
<ScrollView style={styles.container}>
<Text style={styles.subbigtitle}>{I18n.t('DEMANDER_PRESTATION')}</Text>
<Animatable.View ref={(comp) => {
this.numeroTelephoneAnim = comp
}}>
<Fumi iconClass={FontAwesomeIcon} iconName="phone"
label={I18n.t('PHONE')}
iconColor={'#f95a25'}
keyboardType='phone-pad'
iconSize={20}
value={this.state.numeroTelephone}
onChangeText={(numeroTelephone) => {
this.setState({numeroTelephone})
}}
style={styles.input}
>
</Fumi>
</Animatable.View>
<Animatable.View ref={(comp) => {
this.passwordAnim = comp
}}>
<Fumi iconClass={FontAwesomeIcon} iconName={'lock'}
label={I18n.t('PASSWORD')}
iconColor={'#f95a25'}
iconSize={20}
secureTextEntry={true}
value={this.state.password}
onChangeText={(password) => {
this.setState({password})
}}
style={styles.input}
>
</Fumi>
</Animatable.View>
<Button style={styles.btnvalide}
textStyle={styles.textbtnvalide}
onPress={() => {
//this.onSubmitSendWalletToCard()
}}>
{I18n.t('SUBMIT_LABEL')}</Button>
</ScrollView>
)
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: Color.primaryDarkColor,
},
textbtnvalide: {
color: 'white',
fontWeight: 'bold'
},
bigtitle: {
color: 'white',
fontSize: 20,
flex: 1,
fontWeight: 'bold',
textAlign: 'center',
margin: 20,
},
blockView: {
paddingVertical: 10,
borderBottomWidth: 1
},
subbigtitle: {
color: 'white',
fontSize: 17,
textAlign: 'center',
margin: 5,
},
btnvalide: {
marginTop: 20,
marginLeft: 20,
marginRight: 20,
borderColor: 'transparent',
backgroundColor: Color.accentLightColor,
height: 52
},
btnSubmit: {
marginTop: 20,
borderColor: 'transparent',
backgroundColor: Color.accentLightColor,
height: 52,
width: "30%",
marginLeft: 20,
marginRight: 20,
},
input: {
height: 60,
marginTop: responsiveHeight(2),
marginLeft: responsiveWidth(5),
marginRight: responsiveWidth(5),
borderRadius: 5,
}
});

View File

View File

@ -0,0 +1,333 @@
import React, {Component} from 'react';
import {
ActivityIndicator,
Image,
Platform,
ProgressBarAndroid,
ScrollView,
StatusBar,
StyleSheet,
Text,
TouchableOpacity,
View
} from 'react-native';
import I18n from 'react-native-i18n';
import {Appbar, Provider} from 'react-native-paper';
import Icon from 'react-native-vector-icons/MaterialCommunityIcons';
import {Color} from '../../config/Color';
import {Typography} from '../../config/typography';
import * as Utils from '../../utils/DeviceUtils';
import {IlinkEmitter} from "../../utils/events";
import {connect} from "react-redux";
import {bindActionCreators} from "redux";
import {getBankListAction, getBankListReset} from "../../webservice/BankApi";
import {store} from "../../redux/store";
import {readUser} from "../../webservice/AuthApi";
import {getOperatorListAction, getOperatorListReset} from "../../webservice/WalletApi";
const route = require('../../route.json');
let slugify = require('slugify');
class SouscrireAssuranceUser extends Component {
constructor(props) {
super(props);
IlinkEmitter.on("langueChange", this.updateLangue.bind(this));
this.state = {
options: this.props.navigation.state.params.optionSelect
}
console.log("OPERATEUR OPTION PROPS", this.props);
console.log("OPERATEUR OPTION STATE", this.state);
}
updateLangue() {
this.props.navigation.setParams({name: I18n.t('WALLET')})
this.forceUpdate();
}
static navigationOptions = ({navigation}) => ({
header: null,
headerMode: 'none',
headerTitle: null,
activeColor: '#f0edf6',
inactiveColor: '#3e2465',
barStyle: {backgroundColor: '#694fad'},
drawerLabel: I18n.t('INSURANCE_LIST'),
drawerIcon: ({tintColor}) => (
<Icon
name={'credit-card'}
size={24}
/>)
});
redirectToRoute = (item) => {
/* console.log("Item selected", item);
if (this.state.options.length > 0) {
this.props.navigation.push(this.state.options[0].screen, {
title: item.operator_name,
type: this.state.options[0].type,
operator_id: item.id_operator,
typeOperator: this.state.operatorType
});
} else {
if (this.state.user.category === 'geolocated')
this.props.navigation.navigate(route.envoieWalletToBankAgent, {bank: item});
else
this.props.navigation.navigate(route.envoieWalletToBankUser, {bank: item});
}
*/
}
renderLoader = () => {
return (
<View style={{flex: 1, justifyContent: 'center', alignItems: 'center'}}>
{Platform.OS === 'android'
?
(
<>
<ProgressBarAndroid/>
<Text>{I18n.t('LOADING_DOTS')}</Text>
</>
) :
<>
<ActivityIndicator size="large" color={'#ccc'}/>
<Text>{I18n.t('LOADING_DOTS')}</Text>
</>
}
</View>
)
}
renderItem = (item, index) => {
return (
<TouchableOpacity
key={index}
style={[styles.paymentItem, {borderBottomColor: Color.borderColor}]}
onPress={() => {
this.redirectToRoute(item);
}}>
<View style={{flexDirection: 'row', alignItems: 'center'}}>
<View>
<Text style={Typography.body1}>{item.title}</Text>
<Text style={[Typography.footnote, Color.grayColor]} style={{marginTop: 5}}>
{I18n.t('AMOUNT')}: {`${item.amount}`}
</Text>
</View>
</View>
</TouchableOpacity>
)
}
renderBankList = () => {
const {result, error} = this.props;
const {options} = this.state;
return (
Array.isArray(options) && (options.length) > 0 ?
(<ScrollView style={{flex: 1, padding: 20}}>
{
options.map((item, index) => (
this.renderItem(item, index)
))
}
</ScrollView>) :
(
<View style={{flex: 1, justifyContent: 'center', alignItems: 'center'}}>
<Text style={Typography.body1}>{I18n.t('NO_OPERATOR_AVAILABLE')}</Text>
</View>
)
)
}
renderItemElement = (item, index) => {
return (
<TouchableOpacity
key={index}
style={[styles.paymentItem, {borderBottomColor: Color.borderColor}]}
onPress={() => {
this.props.navigation.navigate(item.screen, {
type: item.type,
title: item.title
})
}}>
<View style={{flexDirection: 'row', alignItems: 'center'}}>
<View style={styles.iconContent}>
<Image style={{width: 48, height: 48}} source={{uri: item.icon}}/>
</View>
<View>
<Text style={Typography.body1}>{item.title}</Text>
<Text style={Typography.footnote}>{item.title}</Text>
</View>
</View>
</TouchableOpacity>
)
}
renderList = () => {
const {options} = this.state;
return (
<ScrollView style={{flex: 1, padding: 20}}>
{
options.map((item, index) => (
this.renderItem(item, index)
))
}
</ScrollView>
);
}
render() {
console.log("OPERATEUR OPTION STATE", this.state.options.length);
return (
<Provider>
<View style={{flex: 1}}>
<StatusBar
backgroundColor={Color.primaryDarkColor}
barStyle="light-content"
translucent={false}
/>
<Appbar.Header dark={true} style={{backgroundColor: Color.primaryColor}}>
<Appbar.BackAction
onPress={() => {
this.props.navigation.pop()
}}
/>
<Appbar.Content
title={I18n.t("INSURANCE_LIST")}
subtitle={I18n.t("CHOOSE_OPTION")}
/>
</Appbar.Header>
<View style={styles.container}>
{
this.renderBankList()
}
</View>
</View>
</Provider>
);
}
}
const mapStateToProps = state => ({
loading: state.getListOperatorReducer.loading,
result: state.getListOperatorReducer.result,
error: state.getListOperatorReducer.error,
});
const mapDispatchToProps = dispatch => bindActionCreators({
getBankListAction,
getBankListReset,
getOperatorListAction,
getOperatorListReset
}, dispatch);
export default connect(mapStateToProps, mapDispatchToProps)(SouscrireAssuranceUser);
const styles = StyleSheet.create({
container: {
flex: 1,
},
paymentItem: {
flexDirection: "row",
alignItems: "center",
justifyContent: "space-between",
borderBottomWidth: 1,
paddingVertical: 5,
width: "100%",
marginBottom: 15
},
iconContent: {
width: 60,
marginRight: 10,
alignItems: "center"
},
item: {
paddingVertical: 15,
borderBottomWidth: 1,
flexDirection: "row",
justifyContent: "space-between",
alignItems: "center"
},
/* item: {
paddingVertical: 15,
borderBottomWidth: 1,
flexDirection: "row",
justifyContent: "space-between",
alignItems: "center"
}, */
lottie: {
width: 540,
height: 240
},
checkDefault: {
flexDirection: "row",
justifyContent: "space-between",
alignItems: "center",
borderBottomWidth: 1,
paddingVertical: 10,
marginTop: 5
},
transactionContainer: {
flexDirection: 'row',
paddingTop: 10,
},
containerTouch: {
flex: 1,
flexDirection: 'row',
alignItems: 'center',
shadowColor: Color.borderColor,
borderColor: Color.borderColor,
borderWidth: 0.5,
shadowOffset: {width: 1.5, height: 1.5},
shadowOpacity: 1.0,
elevation: 5,
borderRadius: 10,
backgroundColor: Color.cardBackgroundColor
},
contain: {
flexDirection: 'row',
justifyContent: 'space-between',
},
imageBanner: {
marginTop: 15,
marginLeft: 5,
width: Utils.scaleWithPixel(30),
height: Utils.scaleWithPixel(30)
},
content: {
height: Utils.scaleWithPixel(60),
paddingHorizontal: 10,
justifyContent: 'space-between',
alignItems: 'flex-start',
flex: 1,
},
contentTitle: {
paddingTop: 12,
}
});

View File

@ -271,7 +271,8 @@ export default class OptionsMenu extends Component {
|| item === 'envoieCashVersAutreWalletAgent' || item === 'retraitCarteVersCashUser' || item === 'envoiCashVersCashAgent' || item === 'envoieCashVersCashAgent'
|| item === 'envoieCashVersCarteAgent' || item === 'modifyIdentificationUser' || item === 'createGroupNanoCredit' || item === 'groupNanoCredit' || item === 'demandeValidationGroupe'
|| item === 'adhererGroupNanoCredit' || item === 'myNanoCreditGroup' || item === 'askNanoCredit' || item === 'refundNanoCreditUser' || item === 'cautionNanoCreditAgent'
|| item === 'epargnerArgentUser' || item === 'askNanoCredit' || item === 'casserEpargneUser' || item === 'envoieWalletToBankAgent' || item === 'reattachAccountUser') {
|| item === 'epargnerArgentUser' || item === 'askNanoCredit' || item === 'casserEpargneUser' || item === 'envoieWalletToBankAgent' || item === 'reattachAccountUser'
|| item === 'acceptPrestationAgent' || item === 'souscrireAssuranceUser' || item === 'askPrestationUser') {
return null
} else {
const color = this.state.currentId === item.id ? theme.accent : "grey"

View File

@ -43,7 +43,7 @@ import {
isIlinkWorldWallet,
optionDepotScreen,
optionIdentificationScreen,
optionNanoCreditAgentScreen,
optionNanoCreditAgentScreen, optionNanoSanteAgent, optionNanoSanteUser,
optionPaiementFacture,
optionRetraitScreen,
transactionHistoryIlinkLabel
@ -1478,6 +1478,14 @@ class WalletDetail extends Component {
<View style={[styles.containerTouch]}>
<TouchableOpacity style={styles.contain}
onPress={() => {
this.props.navigation.push(route.walletOptionSelect, {
optionSelect: optionNanoSanteAgent,
onGoBack: () => this.refresh(),
lottie: {
source: require("./../../datas/json/spend-healthies.json"),
loop: true
}
})
}}
activeOpacity={0.9}>
<Icon name='heart-multiple'

View File

@ -49,7 +49,7 @@ import {
optionDepotUserScreen,
optionIdentificationUserScreen,
optionLinkAccountUserScreen,
optionNanoCreditScreen,
optionNanoCreditScreen, optionNanoSanteUser,
optionPaiementFacture,
optionRetraitUserScreen,
transactionHistoryIlinkLabel
@ -574,16 +574,26 @@ class WalletDetailUser extends Component {
<View style={[styles.containerTouch]}>
<TouchableOpacity style={styles.contain}
onPress={() => {
this.props.navigation.push(route.walletOptionSelect, {
optionSelect: optionNanoSanteUser,
onGoBack: () => this.refresh(),
lottie: {
source: require("./../../datas/json/spend-healthies.json"),
loop: true
}
})
}}
activeOpacity={0.9}>
<Icon name='heart-multiple'
color={Color.primaryColor}
size={30}
style={styles.imageBanner}/>
<View style={[styles.content]}>
<View style={{paddingTop: 20,}}>
<Text style={[Typography.headline, Typography.semibold]}>
<Text
style={[Typography.headline, Typography.semibold]}>
{I18n.t('NANO_SANTE')}
</Text>
</View>

View File

@ -223,6 +223,14 @@ class WalletOptionSelect extends Component {
onGoBack: () => this.props.navigation.state.params.onGoBack(),
});
break;
case 'NANO_SANTE':
console.log("Option param", optionsParam);
this.props.navigation.push(optionsParam.screen, {
wallet: this.state.wallet,
optionSelect: optionsParam.subScreenOption,
onGoBack: () => this.props.navigation.state.params.onGoBack(),
});
break;
default:
this.props.navigation.push(optionsParam.screen);
break;
@ -274,7 +282,7 @@ class WalletOptionSelect extends Component {
displayToast(I18n.t('ALREADY_IDENTIFIED'));
else
this.redirectToRoute(options);
} else if (_.isEqual(options.screen, 'modifyIdentificationUser')) {
} else if (_.isEqual(options.screen, 'modifyIdentificationUser') || _.isEqual(options.screen, 'askPrestationUser')) {
if (!this.state.isIdentified)
displayToast(I18n.t('NOT_YET_IDENTIFY'));
else

View File

@ -791,3 +791,84 @@ export const optionPaiementFacture = {
},
]
}
export const operateurAssureurUser = [
{
type: 'PAIEMENT_EAU',
screen: route.paiementFacture,
icon: 'http://test.ilink-app.com:8080/mobilebackend/datas/img/network/ilink-world-logo.png',
title: 'Assureur 1',
amount: "10 000 FCFA"
},
{
type: 'PAIEMENT_EAU',
screen: route.paiementFacture,
icon: 'http://test.ilink-app.com:8080/mobilebackend/datas/img/network/ilink-world-logo.png',
title: 'Assureur 2',
amount: "20 000 FCFA"
},
{
type: 'PAIEMENT_EAU',
screen: route.paiementFacture,
icon: 'http://test.ilink-app.com:8080/mobilebackend/datas/img/network/ilink-world-logo.png',
title: 'Assureur 3',
amount: "30 000 FCFA"
},
{
type: 'PAIEMENT_EAU',
screen: route.paiementFacture,
icon: 'http://test.ilink-app.com:8080/mobilebackend/datas/img/network/ilink-world-logo.png',
title: 'Assureur 4',
amount: "40 000 FCFA"
},
{
type: 'PAIEMENT_EAU',
screen: route.paiementFacture,
icon: 'http://test.ilink-app.com:8080/mobilebackend/datas/img/network/ilink-world-logo.png',
title: 'Assureur 5',
amount: "50 000 FCFA"
}
];
export const optionNanoSanteUser = {
type: 'NANO_SANTE',
title: 'NANO_SANTE',
subTitle: 'CHOOSE_OPTION',
options: [
{
type: 'FACTURE_WATER_ELECTRICITY',
icon: 'heart-pulse',
title: 'SOUSCRIRE_ASSURANCE',
screen: route.souscrireAssuranceUser,
subScreenOption: operateurAssureurUser
},
{
type: 'FACTURE_ELECTRICITY',
icon: 'note-plus',
title: 'DEMANDER_PRESTATION',
screen: route.askPrestationUser,
subScreenOption: operateurAssureurUser
},
{
type: 'FACTURE_SCHOOL',
icon: 'cash',
title: 'PAYER_ASSURANCE',
screen: "",
subScreenOption: operateurAssureurUser
}
]
}
export const optionNanoSanteAgent = {
type: 'NANO_SANTE',
title: 'NANO_SANTE',
subTitle: 'CHOOSE_OPTION',
options: [
{
type: 'FACTURE_WATER_ELECTRICITY',
icon: 'check-circle',
title: 'ACCEPTER_PRESTATION',
screen: route.acceptPrestationAgent
}
]
}

View File

@ -555,5 +555,10 @@
"UNABLE_GET_INFORMATION_TEXT": "Make sure your GPS is turned on and put in high precision mode and restart iLink World",
"TITLE_HELP_SOON": "Help not available!",
"YOUR_NETWORK": "Select your network",
"HELP_SOON": "A tutorial helping you in understanding the features of the application will soon be available."
"HELP_SOON": "A tutorial helping you in understanding the features of the application will soon be available.",
"ACCEPTER_PRESTATION": "Accept a service",
"SOUSCRIRE_ASSURANCE": "Take out insurance",
"DEMANDER_PRESTATION": "Request a service",
"PAYER_ASSURANCE": "Pay an insurance",
"INSURANCE_LIST": "Insurance list"
}

View File

@ -558,5 +558,10 @@
"UNABLE_GET_INFORMATION_TEXT": "Vérifiez que votre GPS est activé et mis en mode haute precision et relancez iLink World",
"TITLE_HELP_SOON": "Aide non disponible !",
"YOUR_NETWORK": "Sélectionner votre réseau",
"HELP_SOON": "Un tutoriel vous aidant dans la compréhension des fonctionnalités de l'application vous sera bientôt mis à disposition."
"HELP_SOON": "Un tutoriel vous aidant dans la compréhension des fonctionnalités de l'application vous sera bientôt mis à disposition.",
"ACCEPTER_PRESTATION": "Accepter une prestation",
"SOUSCRIRE_ASSURANCE": "Souscrire à une assurance",
"DEMANDER_PRESTATION": "Demander une prestation",
"PAYER_ASSURANCE": "Payer une assurance",
"INSURANCE_LIST": "Liste des assureurs"
}

View File

@ -7,8 +7,13 @@ export const isDebugMode = false
//export const baseUrl = "http://test.ilink-app.com:8080/mobilebackendtest";
//const baseUrl = "https://ilink-app.com/mobilebackendtest2"
export const baseUrl = "http://test.ilink-app.com:8080/mobilebackend";
export const testBaseUrl = "https://test.ilink-app.com";
/*
export const baseUrl = " http://ilink-app.com:8082/mobilebackend";
export const testBaseUrl = "http://ilink-app.com:8080";
*/
/* export const baseUrl = "https://preprod.ilink-app.com:8080/mobilebackend";
export const testBaseUrl = "https://preprod.ilink-app.com"; */

View File

@ -1,74 +0,0 @@
const Realm = require('realm');
let geolib=require("geolib")
import GeolocatedPoint from './../../model/GeolocatedPoint'
import Network from './../../model/Network'
import { getLocalMarkers } from '../MapService';
GeolocatedPointSchema={
name:"GeolocatedPoint",
properties:{
id:'int',
firstname:'string?',
lastname:'string',
adresse:'string',
longitude:'float',
latitude:'float',
phone:'string?',
solde:'int',
country:'string',
category:'string',
email:'string',
etat:'int' ,
code_parrain:'string',
code_dial:'string',
network_id:'int',
transactionNumber:'string?',
code_membre:'string',
network:'string'
}
}
export default class MarkerManager {
realm
constructor(){
this.realm=new Realm({schema: [GeolocatedPointSchema]})
}
getLocalMarkers(){
return this.realm.objects('GeolocatedPoint').slice(0,3);
}
async getLocalMarkersFromDistance(distance:5,location){
return new Promise((resolve,reject)=>{
let points=getLocalMarkers();
return points.filter((mark,index)=>{
const position={longitude:parseFloat(mark.longitude),latitude:parseFloat(mark.latitude)}
return geolib.getDistance(position,location)<=(distance*1000)
})
});
}
close(){
this.realm.close();
}
async insertMarkers(markers:Array<any>){
return new Promise((resolve,reject)=>{
var count=0
let rejet=[]
markers.forEach((value,index)=>{
try {
this.realm.write(() => {
this.realm.create('GeolocatedPoint',value);
});
count++
} catch (e) {
console.log("Error on creation");
reject(e)
rejet.push(value)
}
})
resolve({row:count,total:markers.length,rejet:rejet})
})
}
}