diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index 50c7b64..c49d875 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -16,6 +16,9 @@
+
diff --git a/app/(tabs)/index.tsx b/app/(tabs)/index.tsx
index 180d5d5..bde4015 100644
--- a/app/(tabs)/index.tsx
+++ b/app/(tabs)/index.tsx
@@ -186,6 +186,7 @@ export default function HomeScreen() {
latitudeDelta: 0.0922,
longitudeDelta: 0.0421,
}}
+ // customMapStyle={mapStyle}
>
{
const vimId = data?.batteries[0]?.vim_id ?? "---";
const serialNumber = data?.batteries[0]?.serial_no ?? "---";
const chargerUid = data?.batteries[0]?.charger_uid ?? "---";
- const start = new Date(warrantyStartDate);
- const end = new Date(warrantyEndDate);
+ const battery = data?.batteries?.[0];
+
+ const start = battery?.warranty_start_date
+ ? new Date(battery.warranty_start_date)
+ : null;
+ const end = battery?.warranty_end_date
+ ? new Date(battery.warranty_end_date)
+ : null;
const now = new Date();
- const totalDuration = end.getTime() - start.getTime();
- const elapsed = now.getTime() - start.getTime();
- const remaining = Math.max(end.getTime() - now.getTime(), 0);
+ let progress = 0;
+ let durationText = "---";
- const progress = Math.min(elapsed / totalDuration, 1);
+ if (
+ start &&
+ end &&
+ !isNaN(start.getTime()) &&
+ !isNaN(end.getTime()) &&
+ now < end
+ ) {
+ const totalDuration = end.getTime() - start.getTime();
+ const elapsed = now.getTime() - start.getTime();
+ const remaining = Math.max(end.getTime() - now.getTime(), 0);
- const yearsLeft = Math.floor(remaining / (365.25 * 24 * 60 * 60 * 1000));
- const monthsLeft = Math.floor(
- (remaining % (365.25 * 24 * 60 * 60 * 1000)) / (30.44 * 24 * 60 * 60 * 1000)
- );
- const daysLeft = Math.floor(
- (remaining % (30.44 * 24 * 60 * 60 * 1000)) / (24 * 60 * 60 * 1000)
- );
+ progress = Math.min(elapsed / totalDuration, 1);
- const formatDate = (date: Date): string =>
- date.toLocaleDateString("en-GB", {
- day: "2-digit",
- month: "short",
- year: "numeric",
- });
+ const yearsLeft = Math.floor(remaining / (365.25 * 24 * 60 * 60 * 1000));
+ const monthsLeft = Math.floor(
+ (remaining % (365.25 * 24 * 60 * 60 * 1000)) /
+ (30.44 * 24 * 60 * 60 * 1000)
+ );
+ const daysLeft = Math.floor(
+ (remaining % (30.44 * 24 * 60 * 60 * 1000)) / (24 * 60 * 60 * 1000)
+ );
+
+ durationText = `${yearsLeft} years, ${monthsLeft} months, ${daysLeft} days`;
+ }
+
+ const formatDate = (date?: Date | null): string =>
+ date && !isNaN(date.getTime())
+ ? date.toLocaleDateString("en-GB", {
+ day: "2-digit",
+ month: "short",
+ year: "numeric",
+ })
+ : "---";
+
+ const isInWarranty =
+ start &&
+ end &&
+ now >= start &&
+ now <= end &&
+ !isNaN(start.getTime()) &&
+ !isNaN(end.getTime());
return (
@@ -44,9 +74,11 @@ const BatteryDetails = () => {
Battery
-
- In Warranty
-
+ {isInWarranty && (
+
+ In Warranty
+
+ )}
@@ -60,18 +92,17 @@ const BatteryDetails = () => {
-
-
-
-
+
+ {start && end && !isNaN(start.getTime()) && !isNaN(end.getTime()) && (
+
+
+
+ )}
{/* VIM Details */}
diff --git a/constants/config.ts b/constants/config.ts
index 05fa20f..b584ed4 100644
--- a/constants/config.ts
+++ b/constants/config.ts
@@ -17,6 +17,7 @@ export const BASE_URL = "https://dev-driver-saathi-api.vecmocon.com";
// const SERVER_URL =
// "http://dev.vec-tr.ai:8089/?dashboardId=deviceDashboardSocket&assetId=V16000868651064644504";
export const VECTOR_BASE_URL = "https://vec-tr.ai";
+export const SOCKET_BASE_URL = "wss://vec-tr.ai";
export const STORAGE_KEYS = {
LANGUAGE: "userLanguage",
diff --git a/package-lock.json b/package-lock.json
index 4a567b3..cc64c0b 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -36,7 +36,7 @@
"react-i18next": "^15.5.3",
"react-native": "0.79.4",
"react-native-element-dropdown": "^2.12.4",
- "react-native-maps": "^1.24.3",
+ "react-native-maps": "1.24.2",
"react-native-otp-entry": "^1.8.5",
"react-native-paper": "^5.14.5",
"react-native-reanimated": "~3.17.4",
@@ -11979,9 +11979,9 @@
}
},
"node_modules/react-native-maps": {
- "version": "1.24.3",
- "resolved": "https://registry.npmjs.org/react-native-maps/-/react-native-maps-1.24.3.tgz",
- "integrity": "sha512-cF5oTA8z24QqGIRFfDcsXLEs/gCd0RhaJ9KPv/2HiogKD5gpjh1naimZUJQ6IsEcUngSSk8iov6p2jd7dB+/bQ==",
+ "version": "1.24.2",
+ "resolved": "https://registry.npmjs.org/react-native-maps/-/react-native-maps-1.24.2.tgz",
+ "integrity": "sha512-MiMKe/dUQe6g85Bdmr0QD+kNt9dXK/fuhTVx1NcfR5PWaWOD6K9Shs6RL522tXKfNorDmX3bkUdBYvn86yM+6w==",
"license": "MIT",
"dependencies": {
"@types/geojson": "^7946.0.13"
diff --git a/package.json b/package.json
index f4b3719..8dafda8 100644
--- a/package.json
+++ b/package.json
@@ -41,7 +41,7 @@
"react-i18next": "^15.5.3",
"react-native": "0.79.4",
"react-native-element-dropdown": "^2.12.4",
- "react-native-maps": "^1.24.3",
+ "react-native-maps": "1.24.2",
"react-native-otp-entry": "^1.8.5",
"react-native-paper": "^5.14.5",
"react-native-reanimated": "~3.17.4",