import { RootState } from "@/store"; import React from "react"; import { View, Text, StyleSheet, ScrollView } from "react-native"; import { useSelector } from "react-redux"; const BatteryDetails = () => { const { data } = useSelector((state: RootState) => state.user); const model = data?.batteries[0]?.battery_model ?? "---"; const batteryId = data?.batteries[0]?.battery_id ?? "---"; const bmsId = data?.batteries[0]?.bms_id ?? "---"; const warrantyStartDate = data?.batteries[0]?.warranty_start_date ?? "---"; const warrantyEndDate = data?.batteries[0]?.warranty_end_date ?? "---"; 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 now = new Date(); const totalDuration = end.getTime() - start.getTime(); const elapsed = now.getTime() - start.getTime(); const remaining = Math.max(end.getTime() - now.getTime(), 0); const progress = Math.min(elapsed / totalDuration, 1); 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) ); const formatDate = (date: Date): string => date.toLocaleDateString("en-GB", { day: "2-digit", month: "short", year: "numeric", }); return ( {/* Battery Card */} Battery In Warranty {/* Warranty Details */} Battery Warranty Details {/* VIM Details */} VIM Details {/* Charger Details */} Charger Details ); }; type InfoRowProps = { label: string; value: string; }; const InfoRow: React.FC = ({ label, value }) => ( {label} {value} ); export default BatteryDetails; const styles = StyleSheet.create({ container: { backgroundColor: "#F3F5F8", padding: 16, }, card: { backgroundColor: "#FCFCFC", borderRadius: 8, padding: 12, marginBottom: 16, }, cardHeader: { flexDirection: "row", justifyContent: "space-between", alignItems: "center", }, cardTitle: { fontSize: 14, fontWeight: "600", color: "#252A34", }, badge: { backgroundColor: "#DAF5ED", paddingVertical: 2, paddingHorizontal: 8, borderRadius: 4, }, badgeText: { fontSize: 12, fontWeight: "500", color: "#006C4D", }, divider: { height: 1, backgroundColor: "#e5e9f0", marginVertical: 12, }, infoRow: { flexDirection: "row", justifyContent: "space-between", paddingVertical: 4, }, label: { fontSize: 14, color: "#252A34", }, value: { fontSize: 14, fontWeight: "600", color: "#252A34", }, progressBarBackground: { height: 8, backgroundColor: "#E5E9F0", borderRadius: 10, overflow: "hidden", marginTop: 16, }, progressBarFill: { height: 8, backgroundColor: "#00825B", borderRadius: 10, }, });