2019-06-16 13:09:54 +00:00
/ * *
* Sample React Native App
* https : //github.com/facebook/react-native
*
* @ format
* @ flow
* /
2021-02-25 18:47:49 +00:00
import React from 'react' ;
import { ActionSheetProvider } from '@expo/react-native-action-sheet'
import { AsyncStorage , Platform , StyleSheet } from 'react-native' ;
import {
createAppContainer ,
createBottomTabNavigator ,
createDrawerNavigator ,
createStackNavigator ,
createSwitchNavigator
} from 'react-navigation' ;
import OneSignal from 'react-native-onesignal' ;
2019-06-16 13:09:54 +00:00
import Connect from "./screens/login/Connect" ;
2023-10-05 06:09:30 +00:00
import SplaSplashScreen from "./screens/splashscreen/SplashScreen" ;
2019-06-16 13:09:54 +00:00
import HelpMenu from "./screens/help/HelpMenu" ;
import Help from "./screens/help/Help" ;
import ForgottenPassword from "./screens/login/ForgottenPassword" ;
import TypeChoiser from "./screens/login/TypeChoiser" ;
import CreateUserStep2 from "./screens/login/createUserStep2" ;
import createAccount from "./screens/login/createAccount" ;
import UpdateInformations from "./screens/account/UpdateInformations" ;
import UserAccount from "./screens/account/UserAccount" ;
import ActivateAccount from "./screens/login/ActivateAccount" ;
import Notifications from "./screens/notifications/Notifications" ;
import About from "./screens/configurations/About" ;
import Configurations from "./screens/configurations/Configurations" ;
import OptionsMenu from "./screens/optionMenu/OptionsMenu" ;
import Home from "./screens/home/Home" ;
import HistoryItemDetails from "./screens/history-request/HistoryItemDetails" ;
import SuperViseurGroupeHome from "./screens/groupes/SuperViseurGroupeHome" ;
import HistoryRequester from "./screens/history-request/HistoryRequester" ;
import AddNetwork from "./screens/account/AddNetwork" ;
import MyHistory from "./screens/history-request/MyHistory" ;
import Icon from "react-native-vector-icons/FontAwesome5" ;
import I18n from "react-native-i18n" ;
2023-11-14 13:59:34 +00:00
import WalletNanosante from './app/screens/wallet/user/WalletNanosante' ;
2021-02-25 18:47:49 +00:00
import WalletDetail from './screens/wallet/WalletDetail' ;
import WalletSelect from './screens/wallet/WalletSelect' ;
import { PersistGate } from 'redux-persist/integration/react' ;
import { persistor , store } from './redux/store' ;
import { Provider } from 'react-redux' ;
import WalletDepot from './screens/wallet/WalletDepot' ;
import WalletRetrait from './screens/wallet/WalletRetrait' ;
import CreateIdentification from './screens/identification/createIdentification' ;
import WalletDetailUser from './screens/wallet/WalletDetailUser' ;
import WalletOptionSelect from './screens/wallet/WalletOptionSelect' ;
2023-10-28 06:22:46 +00:00
import PaymentCarteVersAutreWallet from './app/screens/wallet/user/PaymentCarteVersAutreWallet' ;
import PaymentCarteVersAutreWalletNanosante from './app/screens/nano-sante/paymentCard/PaymentCarteVersAutreWalletNanosante' ;
import AutreCarteN from './screens/nano-sante/paymentCard/AutreCarteN' ;
import CarteLierN from './screens/nano-sante/paymentCard/carteLierN' ;
import AutreCarte from './screens/wallet/user/AutreCarte' ;
import CarteLier from './screens/wallet/user/CarteLier'
2023-11-14 13:59:34 +00:00
import MobileMoneyNanoSante from './app/screens/wallet/user/MobileMoneyNanoSante' ; './s'
2021-02-25 18:47:49 +00:00
import ValidateIdentification from './screens/identification/validateIdentification' ;
import CreateIdentificationUser from './screens/identification/CreateIdentificationUser' ;
import OperateurOptionSelect from './screens/wallet/OperateurOptionSelect' ;
import PaiementFacture from './screens/wallet/PaiementFacture' ;
import EnvoieWalletToWalletUser from './screens/wallet/user/EnvoieWalletToWalletUser' ;
2023-10-28 06:22:46 +00:00
import EnvoieWalletToWalletUsers from './screens/wallet/user/EnvoieWalletToWalletUsers' ;
2021-02-25 18:47:49 +00:00
import EnvoieWalletToCashUser from './screens/wallet/user/EnvoieWalletToCash' ;
import LinkCard from './screens/wallet/user/LinkCard' ;
import EnvoieWalletToCardUser from './screens/wallet/user/EnvoieWalletToCardUser' ;
import EnvoieWalletToBankUser from './screens/wallet/user/EnvoieWalletToBankUser' ;
import RetraitWalletVersCashUser from './screens/wallet/user/RetraitWalletVersCashUser' ;
import RetraitCarteVersCashUser from './screens/wallet/user/RetraitCarteVersCashUser' ;
import RetraitCarteVersWalletUser from './screens/wallet/user/RetraitCarteVersWalletUser' ;
import RetraitEnCashAgent from './screens/wallet/agent/RetraitEnCashAgent' ;
import RetraitCarteVersCashAgent from './screens/wallet/agent/RetraitCarteVersCashAgent' ;
import EnvoieCashVersWalletAgent from './screens/wallet/agent/EnvoieCashVersWalletAgent' ;
import EnvoieCashVersAutreWalletAgent from './screens/wallet/agent/EnvoieCashVersAutreWalletAgent' ;
import EnvoieCashVersCarteAgent from './screens/wallet/agent/EnvoieCashVersCarteAgent' ;
import EnvoiCashVersCashAgent from './screens/wallet/agent/EnvoiCashVersCashAgent' ;
import ModifyIdentificationUser from './screens/identification/ModifyIdentificationUser' ;
import CreateGroupNanoCredit from './screens/nano-credit/CreateGroupNanoCredit' ;
import DemandValidationGroup from './screens/nano-credit/DemandGroupNanoCredit' ;
import DemandGroupNanoCreditDetail from './screens/nano-credit/DemandGroupNanoCreditDetail' ;
import AdhererGroupNanoCredit from './screens/nano-credit/AdhererGroupNanoCredit' ;
import MyNanoCreditGroup from './screens/nano-credit/MyNanoCreditGroup' ;
import AskNanoCredit from './screens/nano-credit/AskNanoCredit' ;
import RefundNanoCreditUser from './screens/nano-credit/RefundNanoCreditUser' ;
import CautionNanoCreditAgent from './screens/nano-credit/CautionNanoCreditAgent' ;
import EpargnerArgentUser from './screens/nano-credit/EpargnerArgentUser' ;
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" ;
2019-06-16 13:09:54 +00:00
const instructions = Platform . select ( {
2021-02-25 18:47:49 +00:00
ios : 'Press Cmd+R to reload,\n' + 'Cmd+D or shake for dev menu' ,
android :
'Double tap R on your keyboard to reload,\n' +
'Shake or press menu button for dev menu' ,
2019-06-16 13:09:54 +00:00
} ) ;
2020-03-20 18:28:22 +00:00
const theme = require ( "./utils/theme" )
2021-02-25 18:47:49 +00:00
2020-03-20 18:28:22 +00:00
const AuthStack = createStackNavigator ( {
2021-02-25 18:47:49 +00:00
login : Connect ,
helpMenu : HelpMenu ,
help : Help ,
forgottenpass : ForgottenPassword ,
typeaccountcreate : TypeChoiser ,
simpleusercreate : createAccount ,
step2 : CreateUserStep2 ,
activateaccout : ActivateAccount
2020-03-20 18:28:22 +00:00
} , {
2021-02-25 18:47:49 +00:00
headerMode : 'none'
2020-03-20 18:28:22 +00:00
} )
const AppStack = createDrawerNavigator ( {
2021-02-25 18:47:49 +00:00
sta : createStackNavigator ( {
home : Home ,
/ * f i l t r e : F i l t e r ,
network : Networks , * /
useraccount : {
screen : UserAccount ,
navigationOptions : { } ,
} ,
walletSelect : WalletSelect ,
createIdentificationUser : CreateIdentificationUser ,
modifyIdentificationUser : ModifyIdentificationUser ,
notificationview : Notifications ,
configuration : Configurations ,
about : About ,
walletDetailUser : WalletDetailUser ,
walletOptionSelect : WalletOptionSelect ,
2023-10-28 06:22:46 +00:00
paymentCarteVersAutreWallet : PaymentCarteVersAutreWallet ,
autreCarte : AutreCarte ,
carteLier : CarteLier ,
paymentCarteVersAutreWalletNanosante : PaymentCarteVersAutreWalletNanosante ,
autreCarteN : AutreCarteN ,
carteLierN : CarteLierN ,
2023-11-14 13:59:34 +00:00
mobileMoneyNanoSante : MobileMoneyNanoSante ,
2021-02-25 18:47:49 +00:00
operateurOptionSelect : OperateurOptionSelect ,
paiementFacture : PaiementFacture ,
envoieWalletToWalletUser : EnvoieWalletToWalletUser ,
2023-10-28 06:22:46 +00:00
envoieWalletToWalletUsers : EnvoieWalletToWalletUsers ,
2021-02-25 18:47:49 +00:00
envoieWalletToCashUser : EnvoieWalletToCashUser ,
envoieWalletToCardUser : EnvoieWalletToCardUser ,
envoieWalletToBankUser : EnvoieWalletToBankUser ,
retraitWalletVersCashUser : RetraitWalletVersCashUser ,
retraitCarteVersCashUser : RetraitCarteVersCashUser ,
retraitCarteVersWalletUser : RetraitCarteVersWalletUser ,
linkCard : LinkCard ,
reattachAccountUser : ReattachAccountUser ,
epargnerArgentUser : EpargnerArgentUser ,
createGroupNanoCredit : CreateGroupNanoCredit ,
groupNanoCredit : {
screen : createBottomTabNavigator ( {
demandeValidationGroupe : {
screen : DemandValidationGroup ,
navigationOptions : {
tabBarLabel : I18n . t ( 'DEMAND_VALIDATION_GROUP_RECEIVE' ) ,
tabBarIcon : ( { focused , horizontal , tintColor } ) => {
return ( < Icon
size = { 20 }
name = { "users-cog" }
color = { focused ? tintColor : "grey" }
/ > )
}
}
} ,
myNanoCreditGroup : {
screen : MyNanoCreditGroup ,
navigationOptions : {
tabBarLabel : I18n . t ( 'MY_GROUP' ) ,
tabBarIcon : ( { focused , horizontal , tintColor } ) => {
return ( < Icon
size = { 20 }
name = { "users" }
color = { focused ? tintColor : "grey" }
/ > )
}
}
} ,
} , {
headerMode : "none" ,
header : null ,
headerTitle : null ,
title : I18n . t ( 'MANAGE_GROUP' ) ,
tabBarOptions : {
labelStyle : {
fontSize : 13 ,
} ,
}
} ) ,
navigationOptions : ( ) => ( {
header : null ,
headerMode : 'none' ,
headerTitle : null ,
activeColor : '#f0edf6' ,
inactiveColor : '#3e2465' ,
barStyle : { backgroundColor : '#694fad' } ,
drawerLabel : I18n . t ( 'MANAGE_GROUP' ) ,
drawerIcon : ( { tintColor } ) => (
< Icon
name = { 'account-multiple' }
size = { 24 }
/ > )
} ) ,
} ,
demandeValidationGroupe : DemandGroupNanoCreditDetail ,
adhererGroupNanoCredit : AdhererGroupNanoCredit ,
askNanoCredit : AskNanoCredit ,
refundNanoCreditUser : RefundNanoCreditUser ,
casserEpargneUser : CasserEpargneUser
} )
} , {
contentComponent : OptionsMenu ,
headerMode : 'none' ,
contentOptions : { activeTintColor : theme . accent }
} )
2020-03-20 18:28:22 +00:00
const AppAgentStack = createDrawerNavigator ( {
2021-02-25 18:47:49 +00:00
sta : createStackNavigator ( {
home : Home ,
useraccount : UserAccount ,
walletSelect : WalletSelect ,
createIdentification : CreateIdentification ,
validateIdentification : ValidateIdentification ,
Historique :
{
screen : createBottomTabNavigator ( { myDemand : MyHistory } , {
2020-03-20 18:28:22 +00:00
headerMode : "none" ,
header : null ,
headerTitle : I18n . t ( 'CREDIT_MANAGE' ) ,
tabBarOptions : {
2021-02-25 18:47:49 +00:00
labelStyle : {
fontSize : 13 ,
fontWeight : "bold"
} ,
2020-03-20 18:28:22 +00:00
}
2021-02-25 18:47:49 +00:00
} ) ,
navigationOptions : ( ) => ( {
2020-03-20 18:28:22 +00:00
header : null ,
headerMode : 'none' ,
headerTitle : null ,
activeColor : '#f0edf6' ,
inactiveColor : '#3e2465' ,
2021-02-25 18:47:49 +00:00
barStyle : { backgroundColor : '#694fad' } ,
/* headerLeft: (<HeaderBackButton />), */
2020-03-20 18:28:22 +00:00
drawerLabel : I18n . t ( 'CREDIT_MANAGE' ) ,
2021-02-25 18:47:49 +00:00
drawerIcon : ( { tintColor } ) => (
< Icon
name = { 'credit-card' }
size = { 24 }
/ > )
} ) ,
} ,
historyItemDetails : HistoryItemDetails ,
creditrequest : HistoryRequester ,
addNetwork : AddNetwork ,
updateinformation : UpdateInformations ,
notificationview : Notifications ,
configuration : Configurations ,
about : About ,
walletDetail : WalletDetail ,
walletDepot : WalletDepot ,
walletRetrait : WalletRetrait ,
walletOptionSelect : WalletOptionSelect ,
2023-10-28 06:22:46 +00:00
CarteLier : CarteLier ,
AutreCarte : AutreCarte ,
2023-11-14 13:59:34 +00:00
AutreCarteN : AutreCarteN ,
CarteLierN : CarteLierN ,
MobileMoneyNanoSante : MobileMoneyNanoSante ,
WalletNanosante : WalletNanosante ,
2021-02-25 18:47:49 +00:00
operateurOptionSelect : OperateurOptionSelect ,
paiementFacture : PaiementFacture ,
retraitEnCashAgent : RetraitEnCashAgent ,
retraitCarteVersCashAgent : RetraitCarteVersCashAgent ,
envoieCashVersWalletAgent : EnvoieCashVersWalletAgent ,
envoieCashVersAutreWalletAgent : EnvoieCashVersAutreWalletAgent ,
envoieCashVersCarteAgent : EnvoieCashVersCarteAgent ,
envoiCashVersCashAgent : EnvoiCashVersCashAgent ,
envoieWalletToBankAgent : EnvoieWalletToBankAgent ,
createGroupNanoCredit : CreateGroupNanoCredit ,
cautionNanoCreditAgent : CautionNanoCreditAgent ,
} )
2020-03-20 18:28:22 +00:00
} , {
2021-02-25 18:47:49 +00:00
contentComponent : OptionsMenu ,
backBehavior : "none" ,
lazy : false ,
headerMode : 'none' , contentOptions : { activeTintColor : theme . accent }
} ) ;
2020-03-20 18:28:22 +00:00
const AppAdministratorStack = createDrawerNavigator ( {
2021-02-25 18:47:49 +00:00
sta : createStackNavigator ( {
home : Home ,
useraccount : UserAccount ,
walletSelect : WalletSelect ,
Historique : {
screen : createBottomTabNavigator ( {
2020-03-20 18:28:22 +00:00
myDemand : MyHistory , OthersDemand : MyHistory
2021-02-25 18:47:49 +00:00
} , {
2020-03-20 18:28:22 +00:00
headerMode : "none" ,
header : null ,
headerTitle : null ,
title : I18n . t ( 'CREDIT_MANAGE' ) ,
tabBarOptions : {
2021-02-25 18:47:49 +00:00
labelStyle : {
fontSize : 13 ,
} ,
2020-03-20 18:28:22 +00:00
}
2021-02-25 18:47:49 +00:00
} ) ,
navigationOptions : ( ) => ( {
2020-03-20 18:28:22 +00:00
header : null ,
headerMode : 'none' ,
headerTitle : null ,
activeColor : '#f0edf6' ,
inactiveColor : '#3e2465' ,
2021-02-25 18:47:49 +00:00
barStyle : { backgroundColor : '#694fad' } ,
2020-03-20 18:28:22 +00:00
drawerLabel : I18n . t ( 'CREDIT_MANAGE' ) ,
2021-02-25 18:47:49 +00:00
drawerIcon : ( { tintColor } ) => (
< Icon
name = { 'credit-card' }
size = { 24 }
/ > )
} ) ,
} ,
creditrequest : HistoryRequester ,
historyItemDetails : HistoryItemDetails ,
superviseurgroup : SuperViseurGroupeHome ,
notificationview : Notifications ,
configuration : Configurations ,
about : About ,
walletDetail : WalletDetail ,
walletDepot : WalletDepot ,
walletRetrait : WalletRetrait
} )
} ,
{
contentComponent : OptionsMenu ,
backBehavior : "none" ,
headerMode : 'none'
} ) ;
2020-03-20 18:28:22 +00:00
const AppSuperAdministrator = createDrawerNavigator ( {
2021-02-25 18:47:49 +00:00
sta : createStackNavigator ( {
home : Home ,
useraccount : UserAccount ,
walletSelect : WalletSelect ,
Historique : {
screen : createBottomTabNavigator ( { OthersDemand : MyHistory } , {
headerMode : "none" ,
header : null ,
headerTitle : null ,
title : I18n . t ( 'CREDIT_MANAGE' ) ,
tabBarOptions : {
labelStyle : {
fontSize : 13 ,
fontWeight : "bold"
} ,
}
} ) ,
navigationOptions : ( ) => ( {
title : I18n . t ( 'CREDIT_MANAGE' ) ,
headerMode : "none" ,
header : null ,
headerTitle : null ,
drawerIcon : ( { tintColor } ) => (
< Icon
name = { 'credit-card' }
size = { 24 }
/ > )
} ) ,
} ,
creditrequest : HistoryRequester ,
historyItemDetails : HistoryItemDetails ,
superviseurgroup : SuperViseurGroupeHome ,
notificationview : Notifications ,
configuration : Configurations ,
about : About ,
walletDetail : WalletDetail ,
walletDepot : WalletDepot ,
walletRetrait : WalletRetrait
} )
2020-03-20 18:28:22 +00:00
} , {
2021-02-25 18:47:49 +00:00
contentComponent : OptionsMenu ,
backBehavior : "none" ,
headerMode : 'none'
} ) ;
2021-10-26 18:19:13 +00:00
const AppNavigator = createSwitchNavigator ( {
2021-02-25 18:47:49 +00:00
first : {
screen : SplashScreen
} ,
App : AppStack ,
AgentApp : AppAgentStack ,
adminApp : AppAdministratorStack ,
supAdminApp : AppSuperAdministrator ,
Auth : AuthStack
2020-03-20 18:28:22 +00:00
} , {
2021-02-25 18:47:49 +00:00
initialRouteName : 'first'
2019-06-16 13:09:54 +00:00
} ) ;
const AppContainer = createAppContainer ( AppNavigator ) ;
2023-03-12 23:38:33 +00:00
export default class AppIos extends React . Component {
2021-02-25 18:47:49 +00:00
constructor ( props ) {
super ( props ) ;
console . log ( "APP PROPS" , this . props ) ;
global . appHasLoaded = false ;
//Remove this method to stop OneSignal Debugging
2021-10-26 18:19:13 +00:00
OneSignal . setLogLevel ( 6 , 0 ) ;
IlinkEmitter . on ( "langueChange" , this . updateLangue . bind ( this ) )
2021-02-25 18:47:49 +00:00
// Replace 'YOUR_ONESIGNAL_APP_ID' with your OneSignal App ID.
OneSignal . init ( "e8e7251f-713d-4658-9510-86d877fa6a7c" , {
kOSSettingsKeyAutoPrompt : false ,
kOSSettingsKeyInAppLaunchURL : false ,
kOSSettingsKeyInFocusDisplayOption : 2
} ) ;
OneSignal . inFocusDisplaying ( 2 ) ; // Controls what should happen if a notification is received while the app is open. 2 means that the notification will go directly to the device's notification center.
// The promptForPushNotifications function code will show the iOS push notification prompt. We recommend removing the following code and instead using an In-App Message to prompt for notification permission (See step below)
OneSignal . promptForPushNotificationsWithUserResponse ( myiOSPromptCallback ) ;
OneSignal . addEventListener ( 'received' , this . onReceived ) ;
OneSignal . addEventListener ( 'opened' , this . onOpened ) ;
2021-10-26 18:19:13 +00:00
OneSignal . addEventListener ( 'ids' , this . onIds ) ;
2021-02-25 18:47:49 +00:00
}
updateLangue ( ) {
this . forceUpdate ( )
}
_getOneSignalIds = ( ) => {
return new Promise ( async ( resolve , reject ) => {
try {
const getElement = await AsyncStorage . getItem ( '@config:onesignalIds' ) ;
resolve ( getElement ) ;
} catch ( error ) {
reject ( error ) ;
}
} ) ;
}
_saveOneSignalIds = async ( ids ) => {
try {
await AsyncStorage . setItem ( '@config:onesignalIds' , ids ) ;
} catch ( error ) {
console . warn ( error ) ;
}
}
goToScreen = ( routeName , params , isReset = true ) => {
const { navigator } = this . refs ;
if ( typeof navigator !== 'undefined' ) {
console . log ( "APP HAS LOADED" , global . appHasLoaded ) ;
if ( global . appHasLoaded ) {
navigator . dispatch ( {
type : "Navigation/NAVIGATE" ,
routeName ,
params
} ) ;
/ * r e a d U s e r ( ) . t h e n ( ( r e s u l t ) = > {
if ( result === null || result === undefined ) {
console . warn ( "APP HAS LOADED NOTIFICATION PARAMS" , params ) ;
navigator . dispatch ( {
type : "Navigation/NAVIGATE" ,
routeName : "first" ,
params : { routeName , params }
} ) ;
} else {
navigator . dispatch ( {
type : "Navigation/NAVIGATE" ,
routeName ,
params
} ) ;
}
} ) ; * /
} else {
navigator . dispatch ( {
type : "Navigation/NAVIGATE" ,
routeName : "first" ,
params : { routeName , params }
} ) ;
}
}
} ;
handleDeepLink = ( openResult ) => {
const data = openResult . notification . payload . additionalData ;
//const dataParse = data.replace("'", "\"");
console . warn ( "HANDLE DEEP LINK" , data ) ;
switch ( data . screen ) {
case 'historyItemDetails' :
console . log ( "History Item" ) ;
this . goToScreen ( data . screen , {
item : data . data
} ) ;
break ;
default :
console . log ( "Not History Item" ) ;
this . goToScreen ( data . screen , {
id : data . data . id
} ) ;
break ;
}
/ * i f ( d a t a & & d a t a . i d ) {
this . goToScreen ( data . screen , {
id : data . id ,
goToScreen : this . goToScreen
} ) ;
} else {
console . log ( "notification is invalid data" ) ;
} * /
} ;
componentWillUnmount ( ) {
OneSignal . removeEventListener ( 'received' , this . onReceived ) ;
OneSignal . removeEventListener ( 'opened' , this . onOpened ) ;
OneSignal . removeEventListener ( 'ids' , this . onIds ) ;
}
onReceived ( notification ) {
console . log ( "Notification received: " , notification ) ;
}
onOpened = ( openResult ) => {
let data = openResult . notification . payload . additionalData ;
this . handleDeepLink ( openResult ) ;
console . log ( 'Message: ' , openResult . notification . payload . body ) ;
console . log ( 'Data: ' , openResult . notification . payload . additionalData ) ;
console . log ( 'isActive: ' , openResult . notification . isAppInFocus ) ;
console . log ( 'openResult: ' , openResult ) ;
}
render ( ) {
return (
< Provider store = { store } >
< PersistGate persistor = { persistor } >
< ActionSheetProvider >
< AppContainer ref = "navigator" / >
< / A c t i o n S h e e t P r o v i d e r >
< / P e r s i s t G a t e >
< / P r o v i d e r >
) ;
}
}
function myiOSPromptCallback ( permission ) {
// do something with permission value
}
2019-06-16 13:09:54 +00:00
const styles = StyleSheet . create ( {
2021-02-25 18:47:49 +00:00
container : {
flex : 1 ,
justifyContent : 'center' ,
alignItems : 'center' ,
backgroundColor : '#F5FCFF' ,
} ,
welcome : {
fontSize : 20 ,
textAlign : 'center' ,
margin : 10 ,
} ,
instructions : {
textAlign : 'center' ,
color : '#333333' ,
marginBottom : 5 ,
} ,
2019-06-16 13:09:54 +00:00
} ) ;