From 7eb8ccae48b0cc18a9dcaa9c3626a02df8e6d919 Mon Sep 17 00:00:00 2001 From: JustZvan Date: Fri, 6 Feb 2026 13:22:33 +0100 Subject: feat: initial commit! --- app/(tabs)/contact-detail.tsx | 193 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 193 insertions(+) create mode 100644 app/(tabs)/contact-detail.tsx (limited to 'app/(tabs)/contact-detail.tsx') diff --git a/app/(tabs)/contact-detail.tsx b/app/(tabs)/contact-detail.tsx new file mode 100644 index 0000000..520cc15 --- /dev/null +++ b/app/(tabs)/contact-detail.tsx @@ -0,0 +1,193 @@ +import { Ionicons } from "@expo/vector-icons"; +import { router, useLocalSearchParams } from "expo-router"; +import { ScrollView, StyleSheet, Text, View } from "react-native"; +import { t } from "../../lib/locales"; +import { colors } from "../../lib/theme"; +import { Button } from "../../lib/ui"; + +export default function ContactDetailScreen() { + const params = useLocalSearchParams<{ + contactName: string; + contactIdentifier: string; + contactType: string; + deviceName: string; + }>(); + + const { contactName, contactIdentifier, contactType, deviceName } = params; + + const getContactTypeIcon = () => { + switch (contactType) { + case "phone": + return "call"; + case "email": + return "mail"; + default: + return "person"; + } + }; + + const getContactTypeLabel = () => { + switch (contactType) { + case "phone": + return t("phoneNumber"); + case "email": + return t("emailAddress"); + default: + return t("identifier"); + } + }; + + return ( + + + + + + {t("newContactAddedTitle")} + {t("newContactAddedSubtitle")} + + + + + + + {t("contactName")} + + {contactName || t("unknown")} + + + + + + + + {getContactTypeLabel()} + + + {contactIdentifier || t("notProvided")} + + + + + + + + + {t("device")} + + + {deviceName || t("unknownDevice")} + + + + + + + + {t("contactAddedInfo").replace( + "{deviceName}", + deviceName || t("unknownDevice"), + )} + + + +