Commit 3031d1e0 authored by Ishini Kiridena's avatar Ishini Kiridena

progress bars

parent a249a58e
This source diff could not be displayed because it is too large. You can view the blob instead.
import React, { useState } from "react";
import { View, Text, Button, StyleSheet, Alert, Clipboard } from "react-native";
import {
View,
Text,
Button,
StyleSheet,
Alert,
Clipboard,
ActivityIndicator,
} from "react-native";
import RadioForm, {
RadioButton,
RadioButtonInput,
......@@ -13,6 +21,7 @@ import AsyncStorage from "@react-native-async-storage/async-storage";
export default function PatientRegEight({ navigation, route }) {
const [educationLevel, setEducationLevel] = useState("");
const [employedStatus, setEmployedStatus] = useState("");
const [isLoading, setIsLoading] = useState(false);
const educationLevelOptions = [
{ label: "Schooling", value: "Schooling" },
......@@ -28,6 +37,8 @@ export default function PatientRegEight({ navigation, route }) {
];
const handleSave = async () => {
setIsLoading(true);
//encrypt the data
const encryptedEmail = EncryptWithServerKey(route.params.email);
const encryptedUsername = EncryptWithServerKey(route.params.username);
......@@ -132,7 +143,7 @@ export default function PatientRegEight({ navigation, route }) {
`\nSecret key : ` +
decryptedStellarSecretKey +
`\n Save the keys in a safe place`;
setIsLoading(false);
//Show keys on the alert
Alert.alert("Account keys", alertMessage, [
{
......@@ -156,84 +167,92 @@ export default function PatientRegEight({ navigation, route }) {
//on close send to main UI
} catch (errorWhenStoringInAsyncStorage) {
console.log(errorWhenStoringInAsyncStorage);
setIsLoading(false);
}
} else {
console.log(responseData);
}
} catch (errorWhenSendingRegObj) {
console.error("Error : ", errorWhenSendingRegObj);
setIsLoading(false);
}
};
return (
<View style={styles.container}>
<Text>Highest Education Level:</Text>
<RadioForm animation={true}>
{educationLevelOptions.map((option, index) => (
<RadioButton
labelHorizontal={true}
key={index}
labelWrapStyle={{ flexDirection: "row", alignItems: "center" }}
>
<RadioButtonInput
obj={option}
index={index}
isSelected={educationLevel === option.value}
onPress={() => setEducationLevel(option.value)}
buttonInnerColor={"#2196f3"}
buttonOuterColor={
educationLevel === option.value ? "#2196f3" : "#000"
}
buttonSize={15}
buttonOuterSize={25}
buttonStyle={{}}
buttonWrapStyle={{ marginLeft: 10 }}
/>
<RadioButtonLabel
obj={option}
index={index}
labelHorizontal={true}
onPress={() => setEducationLevel(option.value)}
labelStyle={{ fontSize: 16, marginRight: 10 }}
/>
</RadioButton>
))}
</RadioForm>
<Text>Employed:</Text>
<RadioForm animation={true}>
{employedOptions.map((option, index) => (
<RadioButton
labelHorizontal={true}
key={index}
labelWrapStyle={{ flexDirection: "row", alignItems: "center" }}
>
<RadioButtonInput
obj={option}
index={index}
isSelected={employedStatus === option.value}
onPress={() => setEmployedStatus(option.value)}
buttonInnerColor={"#2196f3"}
buttonOuterColor={
employedStatus === option.value ? "#2196f3" : "#000"
}
buttonSize={15}
buttonOuterSize={25}
buttonStyle={{}}
buttonWrapStyle={{ marginLeft: 10 }}
/>
<RadioButtonLabel
obj={option}
index={index}
labelHorizontal={true}
onPress={() => setEmployedStatus(option.value)}
labelStyle={{ fontSize: 16, marginRight: 10 }}
/>
</RadioButton>
))}
</RadioForm>
<Button title="All Done" onPress={handleSave} />
{isLoading ? (
<ActivityIndicator size="large" color="#560CCE" />
) : (
<>
<Text>Highest Education Level:</Text>
<RadioForm animation={true}>
{educationLevelOptions.map((option, index) => (
<RadioButton
labelHorizontal={true}
key={index}
labelWrapStyle={{ flexDirection: "row", alignItems: "center" }}
>
<RadioButtonInput
obj={option}
index={index}
isSelected={educationLevel === option.value}
onPress={() => setEducationLevel(option.value)}
buttonInnerColor={"#2196f3"}
buttonOuterColor={
educationLevel === option.value ? "#2196f3" : "#000"
}
buttonSize={15}
buttonOuterSize={25}
buttonStyle={{}}
buttonWrapStyle={{ marginLeft: 10 }}
/>
<RadioButtonLabel
obj={option}
index={index}
labelHorizontal={true}
onPress={() => setEducationLevel(option.value)}
labelStyle={{ fontSize: 16, marginRight: 10 }}
/>
</RadioButton>
))}
</RadioForm>
<Text>Employed:</Text>
<RadioForm animation={true}>
{employedOptions.map((option, index) => (
<RadioButton
labelHorizontal={true}
key={index}
labelWrapStyle={{ flexDirection: "row", alignItems: "center" }}
>
<RadioButtonInput
obj={option}
index={index}
isSelected={employedStatus === option.value}
onPress={() => setEmployedStatus(option.value)}
buttonInnerColor={"#2196f3"}
buttonOuterColor={
employedStatus === option.value ? "#2196f3" : "#000"
}
buttonSize={15}
buttonOuterSize={25}
buttonStyle={{}}
buttonWrapStyle={{ marginLeft: 10 }}
/>
<RadioButtonLabel
obj={option}
index={index}
labelHorizontal={true}
onPress={() => setEmployedStatus(option.value)}
labelStyle={{ fontSize: 16, marginRight: 10 }}
/>
</RadioButton>
))}
</RadioForm>
<Button title="All Done" onPress={handleSave} />
</>
)}
</View>
);
}
......
import { useNavigation } from "@react-navigation/core";
import { View, TextInput, Button, StyleSheet, Alert } from "react-native";
import {
View,
TextInput,
Button,
StyleSheet,
Alert,
ActivityIndicator,
} from "react-native";
import React, { useState } from "react";
import EncryptWithServerKey from "../../services/encryptByServerKey";
import { LOCALBACKEND } from "../../env";
......@@ -13,8 +20,11 @@ export default function PractitionerRegistration() {
const [email, setEmail] = useState("");
const [fullName, setFullName] = useState("");
const [workspace, setWorkspace] = useState("");
const [isLoading, setIsLoading] = useState(false);
const handleNext = async () => {
setIsLoading(true);
//encrypt the data
const encryptedUsername = EncryptWithServerKey(username);
const encryptedPassword = EncryptWithServerKey(password);
......@@ -75,6 +85,7 @@ export default function PractitionerRegistration() {
`\nSecret key : ` +
decryptedStellarSecretKey +
`\n Save the keys in a safe place`;
setIsLoading(false);
Alert.alert("Account keys", alertMessage, [
{
......@@ -94,49 +105,57 @@ export default function PractitionerRegistration() {
"Error when saving details in the async storage : ",
errorWhenStoringInTheAsyncStorage
);
setIsLoading(false);
}
} catch (errorWhenRegisteringPractitioner) {
console.log(
"Error when registering practitioner : ",
errorWhenRegisteringPractitioner
);
setIsLoading(false);
}
};
return (
<View style={styles.container}>
<TextInput
style={styles.input}
placeholder="User name"
value={username}
onChangeText={(text) => setUsername(text)}
/>
<TextInput
style={styles.input}
placeholder="Password"
value={password}
onChangeText={(text) => setPassword(text)}
secureTextEntry={true}
/>
<TextInput
style={styles.input}
placeholder="Full Name"
value={fullName}
onChangeText={(text) => setFullName(text)}
/>
<TextInput
style={styles.input}
placeholder="Workspace"
value={workspace}
onChangeText={(text) => setWorkspace(text)}
/>
<TextInput
style={styles.input}
placeholder="Email"
value={email}
onChangeText={(text) => setEmail(text)}
/>
<Button title="Register" onPress={handleNext} />
{isLoading ? (
<ActivityIndicator size="large" color="#560CCE" />
) : (
<>
<TextInput
style={styles.input}
placeholder="User name"
value={username}
onChangeText={(text) => setUsername(text)}
/>
<TextInput
style={styles.input}
placeholder="Password"
value={password}
onChangeText={(text) => setPassword(text)}
secureTextEntry={true}
/>
<TextInput
style={styles.input}
placeholder="Full Name"
value={fullName}
onChangeText={(text) => setFullName(text)}
/>
<TextInput
style={styles.input}
placeholder="Workspace"
value={workspace}
onChangeText={(text) => setWorkspace(text)}
/>
<TextInput
style={styles.input}
placeholder="Email"
value={email}
onChangeText={(text) => setEmail(text)}
/>
<Button title="Register" onPress={handleNext} />
</>
)}
</View>
);
}
......
This diff is collapsed.
......@@ -23,10 +23,10 @@
"react-native-base64": "^0.2.1",
"react-native-crypto-js": "^1.0.0",
"react-native-datepicker": "^1.7.2",
"react-native-gesture-handler": "^2.10.0",
"react-native-gesture-handler": "~2.9.0",
"react-native-render-html": "^6.3.4",
"react-native-rsa-native": "^2.0.5",
"react-native-safe-area-context": "^4.5.3",
"react-native-safe-area-context": "4.5.0",
"react-native-simple-radio-button": "^2.7.4",
"react-native-toast-message": "^2.1.6",
"react-native-webview": "11.26.0"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment