From 5cb681c4a8e638f24da210499610d5d6919c2362 Mon Sep 17 00:00:00 2001 From: Mohammed Al-yaseen Date: Sat, 17 Jan 2026 12:14:19 +0300 Subject: [PATCH] apply call waiter api --- src/assets/locals/ar.json | 4 +++- src/assets/locals/en.json | 4 +++- src/features/order/orderSlice.ts | 2 -- src/pages/menu/page.tsx | 19 +++++++++++++++++-- src/redux/api/others.ts | 9 +++++++++ src/utils/constants.ts | 3 ++- 6 files changed, 34 insertions(+), 7 deletions(-) diff --git a/src/assets/locals/ar.json b/src/assets/locals/ar.json index 720cf49..10a55b0 100644 --- a/src/assets/locals/ar.json +++ b/src/assets/locals/ar.json @@ -178,7 +178,9 @@ "wednesday": "الأربعاء", "thursday": "الخميس", "friday": "الجمعة", - "saturday": "السبت" + "saturday": "السبت", + "selectYourTable": "اختر طاولتك", + "calledWaiterSuccess": "تم اتصال الرادير بنجاح" }, "cart": { "addSpecialRequestOptional": "إضافة طلب خاص (اختياري)", diff --git a/src/assets/locals/en.json b/src/assets/locals/en.json index 122f702..ac6a138 100644 --- a/src/assets/locals/en.json +++ b/src/assets/locals/en.json @@ -190,7 +190,9 @@ "wednesday": "Wednesday", "thursday": "Thursday", "friday": "Friday", - "saturday": "Saturday" + "saturday": "Saturday", + "selectYourTable": "Select your table", + "calledWaiterSuccess": "Waiter has been called successfully" }, "cart": { "remainingToPay": "Remaining to Pay", diff --git a/src/features/order/orderSlice.ts b/src/features/order/orderSlice.ts index a02164d..574d82d 100644 --- a/src/features/order/orderSlice.ts +++ b/src/features/order/orderSlice.ts @@ -872,8 +872,6 @@ export const selectGrandTotal = (state: RootState) => { ? Number(state.order.restaurant?.delivery_fees) || 0 : 0; - console.log(subtotal, totalDiscount, taxAmount, deliveryFee); - return ( subtotal - totalDiscount + diff --git a/src/pages/menu/page.tsx b/src/pages/menu/page.tsx index 196f6f4..3302e05 100644 --- a/src/pages/menu/page.tsx +++ b/src/pages/menu/page.tsx @@ -1,5 +1,5 @@ import { StarFilled } from "@ant-design/icons"; -import { Button, Image, Select, Space } from "antd"; +import { Button, Image, message, Select, Space } from "antd"; import { FloatingButton } from "components/FloatingButton/FloatingButton"; import LogoContainerIcon from "components/Icons/LogoContainerIcon"; import ImageWithFallback from "components/ImageWithFallback"; @@ -12,6 +12,7 @@ import { OrderType } from "pages/checkout/hooks/types.ts"; import { useTranslation } from "react-i18next"; import { useParams } from "react-router-dom"; import { + useCallWaiterMutation, useGetMenuQuery, useGetRestaurantDetailsQuery, } from "redux/api/others"; @@ -37,7 +38,7 @@ import { OrderTypesBottomSheet } from "components/CustomBottomSheet/OrderTypesBo function MenuPage() { const { subdomain } = useParams(); const { isRTL } = useAppSelector((state) => state.locale); - const { orderType } = useAppSelector((state) => state.order); + const { orderType, table } = useAppSelector((state) => state.order); const { token } = useAppSelector((state) => state.auth); const { t } = useTranslation(); const { data: restaurant, isLoading: isLoadingRestaurant } = @@ -56,6 +57,7 @@ function MenuPage() { const [isOpeningTimesOpen, setIsOpeningTimesOpen] = useState(false); const [isOrderTypesOpen, setIsOrderTypesOpen] = useState(false); const orderTypeOptions = enumToSelectOptions(OrderType, t, "orderTypes"); + const [callWaiter] = useCallWaiterMutation() // Automatically load restaurant taxes when restaurant data is available useRestaurant(restaurant); @@ -203,6 +205,19 @@ function MenuPage() { backgroundColor: "#EBEBEC", border: "none", }} + onClick={() => { + if (table) callWaiter({ + table_id: table, + call_reason: "call_waiter", + }).unwrap().then(() => { + message.success(t("menu.calledWaiterSuccess")); + }).catch((err) => { + message.error(err.data.message); + }) + else + message.info(t("menu.selectYourTable")); + } + } > ({ + url: CALL_WAITER_URL, + method: "POST", + body, + }), + }), }), }); export const { @@ -239,4 +247,5 @@ export const { useGetLoyaltyHistoryQuery, useCreateGiftAmountMutation, useGetOpeningTimesQuery, + useCallWaiterMutation } = branchApi; diff --git a/src/utils/constants.ts b/src/utils/constants.ts index 612eb01..47e6446 100644 --- a/src/utils/constants.ts +++ b/src/utils/constants.ts @@ -112,4 +112,5 @@ export const EGIFT_CARDS_URL = `${BASE_URL}gift/cards`; export const REDEEM_DETAILS_URL = `${BASE_URL}gift/getGiftOrderByVoucherCode`; export const LOYALTY_HISTORY_URL = `${BASE_URL}loyaltyHistory`; export const CREATE_GIFT_AMOUNT_URL = `${BASE_URL}gift/addGiftAmount`; -export const OPENING_TIMES_URL = `${BASE_URL}restaurant/getWorkingHours`; \ No newline at end of file +export const OPENING_TIMES_URL = `${BASE_URL}restaurant/getWorkingHours`; +export const CALL_WAITER_URL = `${BASE_URL}call_waiter`; \ No newline at end of file