diff --git a/ios/PerformicsStoreDNA.xcodeproj/project.pbxproj b/ios/PerformicsStoreDNA.xcodeproj/project.pbxproj
index f85f1c1..65fb6a5 100644
--- a/ios/PerformicsStoreDNA.xcodeproj/project.pbxproj
+++ b/ios/PerformicsStoreDNA.xcodeproj/project.pbxproj
@@ -263,7 +263,7 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
- CURRENT_PROJECT_VERSION = 7;
+ CURRENT_PROJECT_VERSION = 8;
DEVELOPMENT_TEAM = JGDHGNH9XY;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = PerformicsStoreDNA/Info.plist;
@@ -272,7 +272,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
- MARKETING_VERSION = 1.7;
+ MARKETING_VERSION = 1.8;
OTHER_LDFLAGS = (
"$(inherited)",
"-ObjC",
@@ -292,7 +292,7 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
- CURRENT_PROJECT_VERSION = 7;
+ CURRENT_PROJECT_VERSION = 8;
DEVELOPMENT_TEAM = JGDHGNH9XY;
INFOPLIST_FILE = PerformicsStoreDNA/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 15.1;
@@ -300,7 +300,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
- MARKETING_VERSION = 1.7;
+ MARKETING_VERSION = 1.8;
OTHER_LDFLAGS = (
"$(inherited)",
"-ObjC",
diff --git a/src/api/ApiConstant.js b/src/api/ApiConstant.js
index d7d02f8..10ab37f 100644
--- a/src/api/ApiConstant.js
+++ b/src/api/ApiConstant.js
@@ -2,11 +2,10 @@ export const BASE_URL = 'https://dax.parinaam.in/execute/dabur';
export const ApiURL = {
- // login: `${BASE_URL}/api/v1/auth/login`,
-
pssscoreApi: `${BASE_URL}/mtd/pssscore`,
getotpApi: `https://api1.parinaam.in/api/dabur/SendOTP`,
verifyotpApi: `https://api1.parinaam.in/api/dabur/AuthenticateOTP`,
storeDNAfilter:`https://api1.parinaam.in/api/dabur/StoreDNAfilter`,
storeSearch :`https://api1.parinaam.in/api/dabur/StoreDNAstoreSearch`,
+ storeInfo :`https://api1.parinaam.in/api/dabur/StoreDNAstoreInfo`,
};
diff --git a/src/assets/Images/PerformicsLogo.png b/src/assets/Images/PerformicsLogo.png
new file mode 100644
index 0000000..1d072e2
Binary files /dev/null and b/src/assets/Images/PerformicsLogo.png differ
diff --git a/src/assets/Images/projectId.png b/src/assets/Images/projectId.png
new file mode 100644
index 0000000..1a061c2
Binary files /dev/null and b/src/assets/Images/projectId.png differ
diff --git a/src/constants/Images.js b/src/constants/Images.js
index 5e7fdac..32f17c4 100644
--- a/src/constants/Images.js
+++ b/src/constants/Images.js
@@ -25,6 +25,8 @@ const IMAGES = {
AuthTopBG: require('../assets/Images/logintopBG.png'),
AuthTopBGNew: require('../assets/Images/appLogoNew.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'),
pending: require('../assets/Icons/wall-clock.png'),
alert: require('../assets/Icons/question-mark.png'),
diff --git a/src/navigation/Routes.js b/src/navigation/Routes.js
index 610578c..b613111 100644
--- a/src/navigation/Routes.js
+++ b/src/navigation/Routes.js
@@ -2,7 +2,7 @@ import React from 'react';
import { NavigationContainer } from '@react-navigation/native';
import { createNativeStackNavigator } from '@react-navigation/native-stack';
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 { ToastComponent } from '../constants/Toast';
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 Welcome from '../screens/MainScreen/WelcomePage';
import Details from '../screens/MainScreen/Dashboard/Details';
+import Project from '../screens/AuthScreen/Project/Project';
const Stack = createNativeStackNavigator();
@@ -40,6 +41,7 @@ const Routes = () => {
+
diff --git a/src/screens/AuthScreen/Login/index.js b/src/screens/AuthScreen/Login/Login.js
similarity index 100%
rename from src/screens/AuthScreen/Login/index.js
rename to src/screens/AuthScreen/Login/Login.js
diff --git a/src/screens/AuthScreen/Project/Project.js b/src/screens/AuthScreen/Project/Project.js
new file mode 100644
index 0000000..413b890
--- /dev/null
+++ b/src/screens/AuthScreen/Project/Project.js
@@ -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 (
+
+
+ {/* */}
+
+
+
+
+ Hey There
+ Enter Your Project Id
+
+
+
+
+
+
+ onSubmit()} title={'Next'} style={styles.btnbg} textstyle={styles.btntext} />
+
+ Copyright CPM India - 2025
+
+
+
+
+
+ );
+};
+
+export default Project;
+
diff --git a/src/screens/AuthScreen/Project/style.js b/src/screens/AuthScreen/Project/style.js
new file mode 100644
index 0000000..a62ecde
--- /dev/null
+++ b/src/screens/AuthScreen/Project/style.js
@@ -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',
+ },
+});
diff --git a/src/screens/AuthScreen/Splash/index.js b/src/screens/AuthScreen/Splash/index.js
index 5ccb0f7..20cfc54 100644
--- a/src/screens/AuthScreen/Splash/index.js
+++ b/src/screens/AuthScreen/Splash/index.js
@@ -29,7 +29,7 @@ const SplashScreen = ({ navigation }) => {
setTimeout(() => {
navigation.reset({
index: 0,
- routes: [{ name: 'Login' }],
+ routes: [{ name: 'Project' }],
});
}, 1000);
}
diff --git a/src/screens/MainScreen/Dashboard/Details.js b/src/screens/MainScreen/Dashboard/Details.js
index 9cd6cfd..12be6f0 100644
--- a/src/screens/MainScreen/Dashboard/Details.js
+++ b/src/screens/MainScreen/Dashboard/Details.js
@@ -84,6 +84,8 @@ const Details = () => {
}
const isOSATab = selectedDetails.some(item => item.GraphTitle === "OSA - Category");
+ console.log('isOSATab----',isOSATab);
+
return (
@@ -300,13 +302,16 @@ const Details = () => {
}
}}
style={{ width: '20%', }}>
-
- {presentKey ? (
- typeof row[presentKey] === 'string' && ['Yes', 'No'].includes(row[presentKey]) ? row[presentKey] :
- typeof row[presentKey] === 'boolean' ? (row[presentKey] ? 'Yes' : 'No') :
- typeof row[presentKey] === 'number' ? row[presentKey].toFixed(2) : row[presentKey] || '-'
- ) : '-'}
-
+
+
+ {presentKey ? (
+ typeof row[presentKey] === 'string' && ['Yes', 'No'].includes(row[presentKey]) ? row[presentKey] :
+ typeof row[presentKey] === 'boolean' ? (row[presentKey] ? 'Yes' : 'No') :
+ typeof row[presentKey] === 'number' ? row[presentKey].toFixed(2) : row[presentKey] || '-'
+ ) : '-'}
+
+ { isOSATab && row[presentKey] != 100 || isOSATab && row[presentKey] != '100'? :null}
+
);
@@ -321,7 +326,7 @@ const Details = () => {
);
}
- }) :
+ }) :
}
diff --git a/src/screens/MainScreen/StoreInfo/index.js b/src/screens/MainScreen/StoreInfo/index.js
index 9a2f465..52a47b2 100644
--- a/src/screens/MainScreen/StoreInfo/index.js
+++ b/src/screens/MainScreen/StoreInfo/index.js
@@ -7,6 +7,7 @@ import IMAGES from '../../../constants/Images';
import axios from 'axios';
import Loader from '../../../constants/Loader';
import { SafeAreaView } from 'react-native-safe-area-context';
+import { ApiURL } from '../../../api/ApiConstant';
const storeinfodata = [
{
@@ -154,14 +155,7 @@ const SectionListView = ({ listData }) => {
{/* */}
>
)}
-
- {/* ✅ Only show title if not hidden */}
-
-
- {/* {item.section}
- */}
-
- {/* Shared horizontal scroll view for header + rows */}
+
{
const params = { StoreId: storeData?.StoreId || "723" };
const config = {
method: 'post',
- url: 'https://api1.parinaam.in/api/dabur/StoreDNAstoreInfo',
+ url: ApiURL.storeInfo,
headers: {
'api_key': '9a1f056fecb84eaf8eb4152dda22ab0501955c4f9bbe7daa8780740459fdde7a',
'Content-Type': 'application/json'
diff --git a/src/screens/MainScreen/StoreInfo/style.js b/src/screens/MainScreen/StoreInfo/style.js
index 3febc0e..3e51670 100644
--- a/src/screens/MainScreen/StoreInfo/style.js
+++ b/src/screens/MainScreen/StoreInfo/style.js
@@ -60,8 +60,8 @@ export const styles = StyleSheet.create({
elevation: 2,
width: Screen.screenWidth * 0.92,
marginVertical: 5,
- borderWidth: 1,
- borderColor: '#113F8C',
+ borderWidth: 0.5,
+ borderColor: 'gray',
marginBottom:15,
marginTop:10,
// ...shadow,