import { router, Stack, useLocalSearchParams } from "expo-router"; import { Alert, ScrollView, StyleSheet, Text, View } from "react-native"; import { AppBackground } from "@/components/AppBackground"; import { LoadingScreen } from "@/components/LoadingScreen"; import { Button } from "@/components/ui/Button"; import { Card } from "@/components/ui/Card"; import { fonts, spacing } from "@/constants/theme"; import { useAppTheme } from "@/contexts/ThemeContext"; import { useTabBarScrollPadding } from "@/lib/tab-bar-insets"; import type { ThemeColors } from "@/lib/theme-palette"; import { useThemedStyles } from "@/lib/use-themed-styles"; import { api } from "@/lib/trpc"; export default function BusinessDetailScreen() { const { colors } = useAppTheme(); const styles = useThemedStyles(createBusinessDetailStyles); const { id } = useLocalSearchParams<{ id: string }>(); const scrollPadding = useTabBarScrollPadding(); const utils = api.useUtils(); const businessQuery = api.businesses.getById.useQuery( { id: id ?? "" }, { enabled: Boolean(id) }, ); const setDefault = api.businesses.setDefault.useMutation({ onSuccess: () => { void utils.businesses.getAll.invalidate(); if (id) void utils.businesses.getById.invalidate({ id }); Alert.alert("Default updated", "This business is now your default."); }, onError: (err) => Alert.alert("Could not set default", err.message), }); if (!id) { return ; } if (businessQuery.isLoading) { return ; } const business = businessQuery.data; if (!business) { return ; } return ( {business.name} {business.isDefault ? Default : null} {business.nickname ? {business.nickname} : null} {business.email ? {business.email} : null} {business.phone ? {business.phone} : null} {business.website ? {business.website} : null} {business.taxId ? ( ) : null} {(business.addressLine1 || business.city || business.state) && ( {business.addressLine1 ? ( {business.addressLine1} ) : null} {business.addressLine2 ? ( {business.addressLine2} ) : null} {(business.city || business.state || business.postalCode) && ( {[business.city, business.state, business.postalCode].filter(Boolean).join(", ")} )} {business.country ? {business.country} : null} )}