handle plan base and permium

This commit is contained in:
hamid zarghami
2025-12-27 11:22:38 +03:30
parent b8905e4b06
commit b9264a9d7e
2 changed files with 69 additions and 28 deletions
+34 -1
View File
@@ -13,13 +13,20 @@ import VerticalScrollView from '@/components/listview/VerticalScrollView';
import MenuItem from '@/components/listview/MenuItem';
import MenuItemRenderer from '@/components/listview/MenuItemRenderer';
import type { Food } from '@/app/[name]/(Main)/types/Types';
import { useGetAbout } from '../../(Main)/about/hooks/useAboutData';
import PagerModal from '@/components/pager/PagerModal';
import Button from '@/components/button/PrimaryButton';
import NotificationBellIcon from '@/components/icons/NotificationBellIcon';
const CartIndex = () => {
const { t } = useTranslation('parallels', { keyPrefix: 'Cart' });
const router = useRouter();
const { clearCart, items } = useCart();
const [showClearConfirm, setShowClearConfirm] = React.useState(false);
const [showPagerModal, setShowPagerModal] = React.useState(false);
const { data: foodsResponse, isFetching } = useGetFoods();
const { data: aboutData } = useGetAbout();
const isPremium = aboutData?.data?.plan === 'premium';
const foods = React.useMemo(() => foodsResponse?.data ?? [], [foodsResponse?.data]);
const isLoading = isFetching && !foods.length;
@@ -96,12 +103,36 @@ const CartIndex = () => {
</div>
) : (
<VerticalScrollView className="overflow-y-auto h-full pb-24">
{!isPremium && (
<div className='mb-4 bg-container rounded-container p-4 border border-border shadow-sm'>
<div className='flex items-start gap-3 mb-4'>
<div className='shrink-0 mt-0.5'>
<NotificationBellIcon width={24} height={24} className="text-primary" />
</div>
<div className='flex-1'>
<p className='text-sm font-medium text-foreground mb-1'>
ثبت سفارش
</p>
<p className='text-xs text-muted-foreground leading-5'>
برای ثبت سفارش، لطفاً گارسون را صدا کنید
</p>
</div>
</div>
<Button
onClick={() => setShowPagerModal(true)}
className='w-full flex items-center justify-center gap-2'
>
<NotificationBellIcon width={18} height={18} className="text-white dark:text-foreground" />
<span>صدا کردن گارسون</span>
</Button>
</div>
)}
{cartFoods.map((food) => (
<MenuItemRenderer key={food.id}>
<MenuItem food={food} />
</MenuItemRenderer>
))}
<CartSummary />
<CartSummary isPremium={isPremium} />
</VerticalScrollView>
)}
</div>
@@ -118,6 +149,8 @@ const CartIndex = () => {
onClick={toggleClearConfirm}
/>
</div>
<PagerModal visible={showPagerModal} onClose={() => setShowPagerModal(false)} />
</div>
);
};