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",