import { useMemo, useState } from "react"; import { Alert, ScrollView, View } from "react-native"; import { useTranslation } from "react-i18next"; import { Badge } from "@/components/ui/Badge"; import { Button } from "@/components/ui/Button"; import { Card } from "@/components/ui/Card"; import { Chip, Segmented } from "@/components/ui/Chip"; import { Field } from "@/components/ui/Field"; import { AppHeader } from "@/components/ui/Header"; import { Screen } from "@/components/ui/Screen"; import { Text } from "@/components/ui/Text"; import { products } from "@/lib/data/products"; import { useFamilyStore } from "@/lib/stores/familyStore"; import { useLocationStore, type Fulfillment, type PaymentMethod } from "@/lib/stores/locationStore"; import { useSubscriptionStore } from "@/lib/stores/subscriptionStore"; import { colors, gutter } from "@/lib/theme"; const FREQUENCIES = [ { days: 7, label: "Weekly" }, { days: 14, label: "Every 2 weeks" }, { days: 30, label: "Monthly" }, { days: 60, label: "Every 2 months" }, { days: 90, label: "Every 3 months" }, ]; export default function SubscriptionsScreen() { const { t } = useTranslation(); const items = useSubscriptionStore((s) => s.items); const add = useSubscriptionStore((s) => s.add); const pause = useSubscriptionStore((s) => s.pause); const resume = useSubscriptionStore((s) => s.resume); const cancel = useSubscriptionStore((s) => s.cancel); const paymentPref = useLocationStore((s) => s.paymentPreference); const fulfillmentPref = useLocationStore((s) => s.fulfillment); const members = useFamilyStore((s) => s.members); const refillCandidates = useMemo( () => products.filter( (p) => p.requiresPrescription || p.category === "diabetic" || p.category === "vitamins" || p.badge === "bestseller" ), [] ); const [showCreate, setShowCreate] = useState(false); const [productId, setProductId] = useState(refillCandidates[0]?.id ?? products[0].id); const [qty, setQty] = useState("1"); const [frequencyDays, setFrequencyDays] = useState(30); const [fulfillment, setFulfillment] = useState(fulfillmentPref); const [payment, setPayment] = useState( paymentPref === "pay_at_branch" && fulfillmentPref === "delivery" ? "chapa" : paymentPref ); const [memberId, setMemberId] = useState(null); const [query, setQuery] = useState(""); const filtered = refillCandidates.filter( (p) => !query || p.name.toLowerCase().includes(query.toLowerCase()) || p.brand.toLowerCase().includes(query.toLowerCase()) ); const selected = products.find((p) => p.id === productId) ?? products[0]; return ( {!showCreate ? (