import { router } from "expo-router"; import { useMemo, useState } from "react"; import { Alert, ScrollView, View } from "react-native"; import { useTranslation } from "react-i18next"; import { FamilyInviteCard } from "@/components/care"; import { RxCareCard } from "@/components/prescription"; import { Badge } from "@/components/ui/Badge"; import { Button } from "@/components/ui/Button"; import { Card, Section } from "@/components/ui/Card"; import { Chip } from "@/components/ui/Chip"; import { EmptyState } from "@/components/ui/EmptyState"; import { Screen, TAB_BAR_INSET } from "@/components/ui/Screen"; import { TabTopBar } from "@/components/ui/TabTopBar"; import { Text } from "@/components/ui/Text"; import { routes } from "@/lib/routes"; import { useFamilyStore } from "@/lib/stores/familyStore"; import { usePrescriptionStore, type Reminder, type RxStatus, } from "@/lib/stores/prescriptionStore"; import { colors, gutter } from "@/lib/theme"; type Filter = "all" | RxStatus; export default function PrescriptionsTabScreen() { const { t } = useTranslation(); const prescriptions = usePrescriptionStore((s) => s.prescriptions); const reminders = usePrescriptionStore((s) => s.reminders); const members = useFamilyStore((s) => s.members); const inviteCode = useFamilyStore((s) => s.inviteCode); const acceptInvite = useFamilyStore((s) => s.acceptInvite); const removeMember = useFamilyStore((s) => s.removeMember); const setActiveMember = useFamilyStore((s) => s.setActiveMember); const activeMemberId = useFamilyStore((s) => s.activeMemberId); const [expandedId, setExpandedId] = useState(null); const [filter, setFilter] = useState("all"); const reminderByRx = useMemo(() => { const map = new Map(); reminders.forEach((r) => map.set(r.prescriptionId, r)); return map; }, [reminders]); const activeReminderCount = reminders.filter((r) => r.enabled).length; const needingSetup = prescriptions.filter((p) => !reminderByRx.get(p.id)?.enabled).length; const queriedCount = prescriptions.filter((p) => p.status === "queried").length; const visible = useMemo( () => filter === "all" ? prescriptions : prescriptions.filter((p) => p.status === filter), [prescriptions, filter] ); return ( {t("common.prescriptions")} Manage Rx, dose calendars, and family care shares Active reminders {activeReminderCount} Need setup {needingSetup} {queriedCount ? ( Need reply {queriedCount} ) : null}