Osa Details page icon
This commit is contained in:
@@ -263,7 +263,7 @@
|
|||||||
buildSettings = {
|
buildSettings = {
|
||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
CURRENT_PROJECT_VERSION = 7;
|
CURRENT_PROJECT_VERSION = 8;
|
||||||
DEVELOPMENT_TEAM = JGDHGNH9XY;
|
DEVELOPMENT_TEAM = JGDHGNH9XY;
|
||||||
ENABLE_BITCODE = NO;
|
ENABLE_BITCODE = NO;
|
||||||
INFOPLIST_FILE = PerformicsStoreDNA/Info.plist;
|
INFOPLIST_FILE = PerformicsStoreDNA/Info.plist;
|
||||||
@@ -272,7 +272,7 @@
|
|||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.7;
|
MARKETING_VERSION = 1.8;
|
||||||
OTHER_LDFLAGS = (
|
OTHER_LDFLAGS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"-ObjC",
|
"-ObjC",
|
||||||
@@ -292,7 +292,7 @@
|
|||||||
buildSettings = {
|
buildSettings = {
|
||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
CURRENT_PROJECT_VERSION = 7;
|
CURRENT_PROJECT_VERSION = 8;
|
||||||
DEVELOPMENT_TEAM = JGDHGNH9XY;
|
DEVELOPMENT_TEAM = JGDHGNH9XY;
|
||||||
INFOPLIST_FILE = PerformicsStoreDNA/Info.plist;
|
INFOPLIST_FILE = PerformicsStoreDNA/Info.plist;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 15.1;
|
IPHONEOS_DEPLOYMENT_TARGET = 15.1;
|
||||||
@@ -300,7 +300,7 @@
|
|||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.7;
|
MARKETING_VERSION = 1.8;
|
||||||
OTHER_LDFLAGS = (
|
OTHER_LDFLAGS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"-ObjC",
|
"-ObjC",
|
||||||
|
|||||||
@@ -2,11 +2,10 @@ export const BASE_URL = 'https://dax.parinaam.in/execute/dabur';
|
|||||||
|
|
||||||
export const ApiURL = {
|
export const ApiURL = {
|
||||||
|
|
||||||
// login: `${BASE_URL}/api/v1/auth/login`,
|
|
||||||
|
|
||||||
pssscoreApi: `${BASE_URL}/mtd/pssscore`,
|
pssscoreApi: `${BASE_URL}/mtd/pssscore`,
|
||||||
getotpApi: `https://api1.parinaam.in/api/dabur/SendOTP`,
|
getotpApi: `https://api1.parinaam.in/api/dabur/SendOTP`,
|
||||||
verifyotpApi: `https://api1.parinaam.in/api/dabur/AuthenticateOTP`,
|
verifyotpApi: `https://api1.parinaam.in/api/dabur/AuthenticateOTP`,
|
||||||
storeDNAfilter:`https://api1.parinaam.in/api/dabur/StoreDNAfilter`,
|
storeDNAfilter:`https://api1.parinaam.in/api/dabur/StoreDNAfilter`,
|
||||||
storeSearch :`https://api1.parinaam.in/api/dabur/StoreDNAstoreSearch`,
|
storeSearch :`https://api1.parinaam.in/api/dabur/StoreDNAstoreSearch`,
|
||||||
|
storeInfo :`https://api1.parinaam.in/api/dabur/StoreDNAstoreInfo`,
|
||||||
};
|
};
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 38 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 112 KiB |
@@ -25,6 +25,8 @@ const IMAGES = {
|
|||||||
AuthTopBG: require('../assets/Images/logintopBG.png'),
|
AuthTopBG: require('../assets/Images/logintopBG.png'),
|
||||||
AuthTopBGNew: require('../assets/Images/appLogoNew.png'),
|
AuthTopBGNew: require('../assets/Images/appLogoNew.png'),
|
||||||
AuthBottomBG: require('../assets/Images/loginbottomBG.png'),
|
AuthBottomBG: require('../assets/Images/loginbottomBG.png'),
|
||||||
|
projectIdImg: require('../assets/Images/projectId.png'),
|
||||||
|
PerformicsLogo: require('../assets/Images/PerformicsLogo.png'),
|
||||||
dotsIcon: require('../assets/Icons/dots.png'),
|
dotsIcon: require('../assets/Icons/dots.png'),
|
||||||
pending: require('../assets/Icons/wall-clock.png'),
|
pending: require('../assets/Icons/wall-clock.png'),
|
||||||
alert: require('../assets/Icons/question-mark.png'),
|
alert: require('../assets/Icons/question-mark.png'),
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import React from 'react';
|
|||||||
import { NavigationContainer } from '@react-navigation/native';
|
import { NavigationContainer } from '@react-navigation/native';
|
||||||
import { createNativeStackNavigator } from '@react-navigation/native-stack';
|
import { createNativeStackNavigator } from '@react-navigation/native-stack';
|
||||||
import Splash from '../screens/AuthScreen/Splash';
|
import Splash from '../screens/AuthScreen/Splash';
|
||||||
import Login from '../screens/AuthScreen/Login';
|
import Login from '../screens/AuthScreen/Login/Login';
|
||||||
import VerifyOTP from '../screens/AuthScreen/VerifyOTP';
|
import VerifyOTP from '../screens/AuthScreen/VerifyOTP';
|
||||||
import { ToastComponent } from '../constants/Toast';
|
import { ToastComponent } from '../constants/Toast';
|
||||||
import StoreInfo from '../screens/MainScreen/StoreInfo';
|
import StoreInfo from '../screens/MainScreen/StoreInfo';
|
||||||
@@ -13,6 +13,7 @@ import FeedbackCategories from '../screens/MainScreen/Feedback/FeedbackCategorie
|
|||||||
import { Platform, StatusBar, View } from 'react-native';
|
import { Platform, StatusBar, View } from 'react-native';
|
||||||
import Welcome from '../screens/MainScreen/WelcomePage';
|
import Welcome from '../screens/MainScreen/WelcomePage';
|
||||||
import Details from '../screens/MainScreen/Dashboard/Details';
|
import Details from '../screens/MainScreen/Dashboard/Details';
|
||||||
|
import Project from '../screens/AuthScreen/Project/Project';
|
||||||
|
|
||||||
const Stack = createNativeStackNavigator();
|
const Stack = createNativeStackNavigator();
|
||||||
|
|
||||||
@@ -40,6 +41,7 @@ const Routes = () => {
|
|||||||
<Stack.Screen name="Feedback" component={Feedback} />
|
<Stack.Screen name="Feedback" component={Feedback} />
|
||||||
<Stack.Screen name="FeedbackCategories" component={FeedbackCategories} />
|
<Stack.Screen name="FeedbackCategories" component={FeedbackCategories} />
|
||||||
<Stack.Screen name="Details" component={Details} />
|
<Stack.Screen name="Details" component={Details} />
|
||||||
|
<Stack.Screen name="Project" component={Project} />
|
||||||
|
|
||||||
</Stack.Navigator>
|
</Stack.Navigator>
|
||||||
<ToastComponent />
|
<ToastComponent />
|
||||||
|
|||||||
@@ -0,0 +1,103 @@
|
|||||||
|
|
||||||
|
import React, { useEffect, useState } from 'react';
|
||||||
|
import { View, Text, Image, Platform, ImageBackground, TextInput } from 'react-native';
|
||||||
|
import { KeyboardAwareScrollView } from 'react-native-keyboard-aware-scroll-view';
|
||||||
|
import IMAGES from '../../../constants/Images';
|
||||||
|
import { styles } from './style';
|
||||||
|
import { useDispatch } from 'react-redux';
|
||||||
|
import CustomButton from '../../../components/CustomButton';
|
||||||
|
import Loader from '../../../constants/Loader';
|
||||||
|
import { ApiURL } from '../../../api/ApiConstant';
|
||||||
|
import { toastError, toastSuccess } from '../../../constants/Toast';
|
||||||
|
import axios from 'axios';
|
||||||
|
import { SafeAreaView } from 'react-native-safe-area-context';
|
||||||
|
import { GlobalTheme } from '../../../theme';
|
||||||
|
import Geolocation from '@react-native-community/geolocation';
|
||||||
|
|
||||||
|
|
||||||
|
const Project = ({ navigation }) => {
|
||||||
|
const [loading, setLoading] = useState(false);
|
||||||
|
const dispatch = useDispatch();
|
||||||
|
const [username, setUsername] = useState('');
|
||||||
|
|
||||||
|
|
||||||
|
// geo loc
|
||||||
|
useEffect(() => {
|
||||||
|
Geolocation.getCurrentPosition(info => console.log("Location infoooo====>", JSON.stringify(info)));
|
||||||
|
}, [])
|
||||||
|
// end geo loc
|
||||||
|
|
||||||
|
|
||||||
|
const onSubmit = () => {
|
||||||
|
// setLoading(true);
|
||||||
|
// getOTP();
|
||||||
|
navigation.navigate("Login")
|
||||||
|
};
|
||||||
|
|
||||||
|
const getOTP = async () => {
|
||||||
|
try {
|
||||||
|
const params = {
|
||||||
|
"UserId": username
|
||||||
|
};
|
||||||
|
|
||||||
|
const config = {
|
||||||
|
method: 'post',
|
||||||
|
url: ApiURL.getotpApi,
|
||||||
|
headers: {
|
||||||
|
'api_key': '9a1f056fecb84eaf8eb4152dda22ab0501955c4f9bbe7daa8780740459fdde7a',
|
||||||
|
'Content-Type': 'application/json'
|
||||||
|
},
|
||||||
|
data: params
|
||||||
|
};
|
||||||
|
|
||||||
|
const response = await axios.request(config);
|
||||||
|
const res = response.data || [];
|
||||||
|
console.log('OTP is ===> ', res?.SendOTP);
|
||||||
|
if (res?.SendOTP[0].OTP === '0' || res?.SendOTP[0].OTP === 0) {
|
||||||
|
setLoading(false);
|
||||||
|
toastError("Alert", "Invalid User");
|
||||||
|
} else {
|
||||||
|
toastSuccess("Alert", res?.SendOTP[0]?.Messages);
|
||||||
|
navigation.navigate('VerifyOTP', { username: username });
|
||||||
|
setLoading(false);
|
||||||
|
}
|
||||||
|
// console.log('getotpApi res==>', JSON.stringify(res?.SendOTP[0]));
|
||||||
|
} catch (error) {
|
||||||
|
console.log("❌ OTP API error:", error);
|
||||||
|
setLoading(false);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
return (
|
||||||
|
<SafeAreaView style={styles.container}>
|
||||||
|
<KeyboardAwareScrollView keyboardShouldPersistTaps="handled" enableOnAndroid={true} contentContainerStyle={{ justifyContent: 'center', flexGrow: 1, marginTop: 0 }} style={styles.container}>
|
||||||
|
{/* <View style={{ backgroundColor: GlobalTheme.colors.primary, height: 40 }} /> */}
|
||||||
|
<Image style={styles.performicsLogo} source={IMAGES.PerformicsLogo} resizeMode='contain' />
|
||||||
|
<Image style={styles.appLogo} source={IMAGES.projectIdImg} resizeMode='contain' />
|
||||||
|
<View style={styles.card}>
|
||||||
|
<View style={{marginTop:25}}>
|
||||||
|
<Text style={[styles.loginTitle, { fontSize: 15, color: '#555555', marginBottom: 10 }]}>Hey There</Text>
|
||||||
|
<Text style={styles.loginTitle}>Enter Your Project Id</Text>
|
||||||
|
</View>
|
||||||
|
|
||||||
|
<View style={{ marginTop: 20, height: 50, backgroundColor: '#eee', borderRadius: 10 }}>
|
||||||
|
<TextInput
|
||||||
|
style={{ height: 50, paddingHorizontal: 15 }}
|
||||||
|
placeholder='Enter Project Id'
|
||||||
|
placeholderTextColor={'gray'}
|
||||||
|
keyboardType='numeric'
|
||||||
|
/>
|
||||||
|
</View>
|
||||||
|
|
||||||
|
<CustomButton onPress={() => onSubmit()} title={'Next'} style={styles.btnbg} textstyle={styles.btntext} />
|
||||||
|
<ImageBackground source={IMAGES.AuthBottomBG} style={styles.AuthBottomBG} >
|
||||||
|
<Text style={{ position: 'absolute', textAlign: 'center', alignContent: 'center', alignSelf: 'center', bottom: 20, color: GlobalTheme.colors.gray }}> Copyright CPM India - 2025</Text>
|
||||||
|
</ImageBackground>
|
||||||
|
</View>
|
||||||
|
</KeyboardAwareScrollView>
|
||||||
|
<Loader visible={loading} loadingtext={'Loading ...'} />
|
||||||
|
</SafeAreaView>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default Project;
|
||||||
|
|
||||||
@@ -0,0 +1,87 @@
|
|||||||
|
import { StyleSheet, Dimensions } from 'react-native';
|
||||||
|
import { GlobalTheme } from '../../../theme';
|
||||||
|
import { normalize } from '../../../utilis/responsive';
|
||||||
|
const { width, height } = Dimensions.get('window');
|
||||||
|
|
||||||
|
export const styles = StyleSheet.create({
|
||||||
|
container: {
|
||||||
|
flex: 1,
|
||||||
|
backgroundColor: "#fff",
|
||||||
|
},
|
||||||
|
logoContainer: {
|
||||||
|
width: '100%',
|
||||||
|
},
|
||||||
|
appLogo: {
|
||||||
|
height: normalize(180),
|
||||||
|
width: '100%',
|
||||||
|
resizeMode: 'contain',
|
||||||
|
marginTop: 30,
|
||||||
|
},
|
||||||
|
performicsLogo: {
|
||||||
|
height: normalize(50),
|
||||||
|
width: '55%',
|
||||||
|
resizeMode: 'contain',
|
||||||
|
alignSelf: 'center',
|
||||||
|
marginTop:10,
|
||||||
|
},
|
||||||
|
titleContainer: {
|
||||||
|
alignSelf: 'center',
|
||||||
|
marginBottom: normalize(10),
|
||||||
|
},
|
||||||
|
titleText: {
|
||||||
|
fontSize: normalize(20),
|
||||||
|
fontWeight: 'bold',
|
||||||
|
color: GlobalTheme.colors.black,
|
||||||
|
},
|
||||||
|
card: {
|
||||||
|
padding: normalize(25),
|
||||||
|
width: width,
|
||||||
|
alignSelf: 'center',
|
||||||
|
// marginTop: normalize(30),
|
||||||
|
shadowColor: '#000',
|
||||||
|
shadowOpacity: 0.05,
|
||||||
|
shadowOffset: { width: 0, height: 4 },
|
||||||
|
shadowRadius: 8,
|
||||||
|
// elevation: 4,
|
||||||
|
flex: 1,
|
||||||
|
},
|
||||||
|
btnbg: {
|
||||||
|
backgroundColor: GlobalTheme.colors.secondary,
|
||||||
|
borderRadius: GlobalTheme.borderRadius.md,
|
||||||
|
marginTop: normalize(30),
|
||||||
|
paddingVertical: normalize(12),
|
||||||
|
alignItems: 'center',
|
||||||
|
},
|
||||||
|
btntext: {
|
||||||
|
color: GlobalTheme.colors.white,
|
||||||
|
fontSize: normalize(GlobalTheme.typography.fontSize.small),
|
||||||
|
fontWeight: GlobalTheme.typography.fontWeight.regular,
|
||||||
|
},
|
||||||
|
footer: {
|
||||||
|
marginTop: normalize(60),
|
||||||
|
alignItems: 'center',
|
||||||
|
},
|
||||||
|
footerImage: {
|
||||||
|
width: '100%',
|
||||||
|
height: normalize(80),
|
||||||
|
resizeMode: 'contain',
|
||||||
|
marginTop: normalize(160),
|
||||||
|
},
|
||||||
|
AuthBottomBG: {
|
||||||
|
width: '100%',
|
||||||
|
resizeMode: 'contain',
|
||||||
|
height: normalize(210),
|
||||||
|
justifyContent: 'center',
|
||||||
|
},
|
||||||
|
loginTitle: {
|
||||||
|
color: GlobalTheme.colors.black,
|
||||||
|
fontSize: normalize(GlobalTheme.typography.fontSize.small),
|
||||||
|
fontWeight: GlobalTheme.typography.fontWeight.medium,
|
||||||
|
textAlign: 'center',
|
||||||
|
marginBottom: normalize(20),
|
||||||
|
},
|
||||||
|
mainContainer: {
|
||||||
|
flex: 1,
|
||||||
|
backgroundColor: '#EAF0FF',
|
||||||
|
},
|
||||||
|
});
|
||||||
@@ -29,7 +29,7 @@ const SplashScreen = ({ navigation }) => {
|
|||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
navigation.reset({
|
navigation.reset({
|
||||||
index: 0,
|
index: 0,
|
||||||
routes: [{ name: 'Login' }],
|
routes: [{ name: 'Project' }],
|
||||||
});
|
});
|
||||||
}, 1000);
|
}, 1000);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -84,6 +84,8 @@ const Details = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const isOSATab = selectedDetails.some(item => item.GraphTitle === "OSA - Category");
|
const isOSATab = selectedDetails.some(item => item.GraphTitle === "OSA - Category");
|
||||||
|
console.log('isOSATab----',isOSATab);
|
||||||
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<SafeAreaView style={{ flex: 1, backgroundColor: '#113F8C' }}>
|
<SafeAreaView style={{ flex: 1, backgroundColor: '#113F8C' }}>
|
||||||
@@ -300,13 +302,16 @@ const Details = () => {
|
|||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
style={{ width: '20%', }}>
|
style={{ width: '20%', }}>
|
||||||
<Text style={{ color: '#113F8C', textAlign: 'center', fontWeight: '500' }}>
|
<View style={{ flexDirection: 'row', alignItems: 'center' }}>
|
||||||
{presentKey ? (
|
<Text style={{ color: '#113F8C', textAlign: 'center', fontWeight: '500' }}>
|
||||||
typeof row[presentKey] === 'string' && ['Yes', 'No'].includes(row[presentKey]) ? row[presentKey] :
|
{presentKey ? (
|
||||||
typeof row[presentKey] === 'boolean' ? (row[presentKey] ? 'Yes' : 'No') :
|
typeof row[presentKey] === 'string' && ['Yes', 'No'].includes(row[presentKey]) ? row[presentKey] :
|
||||||
typeof row[presentKey] === 'number' ? row[presentKey].toFixed(2) : row[presentKey] || '-'
|
typeof row[presentKey] === 'boolean' ? (row[presentKey] ? 'Yes' : 'No') :
|
||||||
) : '-'}
|
typeof row[presentKey] === 'number' ? row[presentKey].toFixed(2) : row[presentKey] || '-'
|
||||||
</Text>
|
) : '-'}
|
||||||
|
</Text>
|
||||||
|
{ isOSATab && row[presentKey] != 100 || isOSATab && row[presentKey] != '100'? <Image source={IMAGES.rightArrowIcon} style={{marginLeft:6, height: 12, width: 12, resizeMode: 'contain' }} /> :null}
|
||||||
|
</View>
|
||||||
</TouchableOpacity>
|
</TouchableOpacity>
|
||||||
</View>
|
</View>
|
||||||
);
|
);
|
||||||
@@ -321,7 +326,7 @@ const Details = () => {
|
|||||||
</View>
|
</View>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}) :
|
}) :
|
||||||
<Loader visible={true} />
|
<Loader visible={true} />
|
||||||
}
|
}
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import IMAGES from '../../../constants/Images';
|
|||||||
import axios from 'axios';
|
import axios from 'axios';
|
||||||
import Loader from '../../../constants/Loader';
|
import Loader from '../../../constants/Loader';
|
||||||
import { SafeAreaView } from 'react-native-safe-area-context';
|
import { SafeAreaView } from 'react-native-safe-area-context';
|
||||||
|
import { ApiURL } from '../../../api/ApiConstant';
|
||||||
|
|
||||||
const storeinfodata = [
|
const storeinfodata = [
|
||||||
{
|
{
|
||||||
@@ -154,14 +155,7 @@ const SectionListView = ({ listData }) => {
|
|||||||
{/* <View style={[horizonalLine, { marginVertical: 10 }]} /> */}
|
{/* <View style={[horizonalLine, { marginVertical: 10 }]} /> */}
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
<View style={styles.section}>
|
<View style={styles.section}>
|
||||||
{/* ✅ Only show title if not hidden */}
|
|
||||||
|
|
||||||
|
|
||||||
{/* <Text style={styles.sectionTitle}>{item.section}</Text>
|
|
||||||
<View style={[horizonalLine, { marginVertical: 10 }]} /> */}
|
|
||||||
|
|
||||||
{/* Shared horizontal scroll view for header + rows */}
|
|
||||||
<ScrollView
|
<ScrollView
|
||||||
horizontal
|
horizontal
|
||||||
ref={scrollRef}
|
ref={scrollRef}
|
||||||
@@ -201,7 +195,7 @@ const StoreInfo = ({ navigation, route }) => {
|
|||||||
const params = { StoreId: storeData?.StoreId || "723" };
|
const params = { StoreId: storeData?.StoreId || "723" };
|
||||||
const config = {
|
const config = {
|
||||||
method: 'post',
|
method: 'post',
|
||||||
url: 'https://api1.parinaam.in/api/dabur/StoreDNAstoreInfo',
|
url: ApiURL.storeInfo,
|
||||||
headers: {
|
headers: {
|
||||||
'api_key': '9a1f056fecb84eaf8eb4152dda22ab0501955c4f9bbe7daa8780740459fdde7a',
|
'api_key': '9a1f056fecb84eaf8eb4152dda22ab0501955c4f9bbe7daa8780740459fdde7a',
|
||||||
'Content-Type': 'application/json'
|
'Content-Type': 'application/json'
|
||||||
|
|||||||
@@ -60,8 +60,8 @@ export const styles = StyleSheet.create({
|
|||||||
elevation: 2,
|
elevation: 2,
|
||||||
width: Screen.screenWidth * 0.92,
|
width: Screen.screenWidth * 0.92,
|
||||||
marginVertical: 5,
|
marginVertical: 5,
|
||||||
borderWidth: 1,
|
borderWidth: 0.5,
|
||||||
borderColor: '#113F8C',
|
borderColor: 'gray',
|
||||||
marginBottom:15,
|
marginBottom:15,
|
||||||
marginTop:10,
|
marginTop:10,
|
||||||
// ...shadow,
|
// ...shadow,
|
||||||
|
|||||||
Reference in New Issue
Block a user