import React from 'react'; import { Pressable, ScrollView, StyleSheet, Text, View } from 'react-native'; import type { NativeStackScreenProps } from '@react-navigation/native-stack'; import Ionicons from '@react-native-vector-icons/ionicons'; import { Button, Card, EmptyState, Loader, ScreenShell } from '../../../components'; import { useToast } from '../../../hooks/useToast'; import type { InsuranceStackParamList } from '../../../navigation/types'; import { useTheme } from '../../../theme'; import { formatCompactCurrency, formatCurrency, formatDate } from '../../../utils/formatters'; import { InsuranceStatusPill } from '../components/InsuranceStatusPill'; import { useGetInsurancePolicyDetailQuery } from '../services/insuranceApi'; type Props = NativeStackScreenProps; export default function InsurancePolicyDetailsScreen({ navigation, route }: Props) { const theme = useTheme(); const toast = useToast(); const { data, isLoading, isError, refetch } = useGetInsurancePolicyDetailQuery( route.params.policyId, ); return ( {isLoading ? ( ) : null} {isError || !data ? ( ) : ( {data.planName} {data.policyNumber} · {data.insurer.name} Coverage {formatCompactCurrency(data.coverageAmount)} Premium {formatCurrency(data.premiumAmount)} {data.premiumFrequency} Start date:{' '} {formatDate(data.startDate)} Expiry date:{' '} {formatDate(data.expiryDate)} Next premium due:{' '} {formatDate(data.nextPremiumDueDate)} Nominee:{' '} {data.nomineeName} ({data.nomineeRelationship})