This commit is contained in:
shafi54 2026-03-04 00:17:52 +05:30
parent 7fa44712bf
commit ed7318f9ee
3 changed files with 434 additions and 521 deletions

File diff suppressed because it is too large Load diff

View file

@ -37,6 +37,7 @@ export default function Layout() {
<Tabs
// backBehavior="history"
screenOptions={{
lazy: true,
tabBarActiveTintColor: theme.colors.brand500,
tabBarInactiveTintColor: '#4B5563',
tabBarStyle: shouldHideTabs ? { display: 'none' } : {

View file

@ -18,6 +18,7 @@ import {
BottomDropdown, BottomDialog , Quantifier } from "common-ui";
import MaterialIcons from "@expo/vector-icons/MaterialIcons";
import { useHideTabNav } from "@/src/hooks/useHideTabNav";
import { useAuth } from "@/src/contexts/AuthContext";
import TestingPhaseNote from "@/components/TestingPhaseNote";
@ -34,6 +35,7 @@ export default function CartPage({ isFlashDelivery = false }: CartPageProps) {
// Hide tabs when cart page is active
useHideTabNav();
const { isAuthenticated } = useAuth();
const cartType: "regular" | "flash" = isFlashDelivery ? "flash" : "regular";
const [quantities, setQuantities] = useState<Record<number, number>>({});
@ -260,6 +262,15 @@ export default function CartPage({ isFlashDelivery = false }: CartPageProps) {
[finalTotal, constsData, isFlashDelivery]
);
const freeDeliveryThreshold = useMemo(
() => {
return isFlashDelivery
? constsData?.flashFreeDeliveryThreshold
: constsData?.freeDeliveryThreshold;
},
[constsData, isFlashDelivery]
);
const finalTotalWithDelivery = finalTotal + deliveryCharge;
const hasAvailableItems = cartItems.some(item => !item.product?.isOutOfStock);
@ -786,6 +797,18 @@ export default function CartPage({ isFlashDelivery = false }: CartPageProps) {
</MyText>
</MyTouchableOpacity>
)}
{!isAuthenticated && (
<MyTouchableOpacity
style={tw`mt-2 ml-1`}
onPress={() => router.push("/(drawer)/(tabs)/me")}
>
<MyText style={tw`text-xs`}>
<MyText style={tw`text-blue-500 underline`}>Log In</MyText>
<MyText style={tw`text-gray-400`}> To find offers and coupons</MyText>
</MyText>
</MyTouchableOpacity>
)}
</View>
)}
@ -842,11 +865,11 @@ export default function CartPage({ isFlashDelivery = false }: CartPageProps) {
</View>
{/* Free Delivery Nudge */}
{deliveryCharge > 0 && (constsData?.freeDeliveryThreshold || 0) > 0 && finalTotal < (constsData?.freeDeliveryThreshold || 0) && (
{deliveryCharge > 0 && (freeDeliveryThreshold || 0) > 0 && finalTotal < (freeDeliveryThreshold || 0) && (
<View style={tw`bg-blue-50 p-2.5 rounded-lg mb-3 flex-row items-center`}>
<MaterialIcons name="shopping-bag" size={16} color="#2563EB" style={tw`mr-2`} />
<MyText style={tw`text-blue-700 text-xs font-medium flex-1`}>
Add products worth {((constsData?.freeDeliveryThreshold || 0) - finalTotal).toFixed(0)} for free delivery
Add products worth {((freeDeliveryThreshold || 0) - finalTotal).toFixed(0)} for free delivery
</MyText>
</View>
)}
@ -1035,4 +1058,4 @@ export default function CartPage({ isFlashDelivery = false }: CartPageProps) {
</BottomDialog>
</View>
);
}
}