diff --git a/src/components/CustomBottomSheet/RateBottomSheet.tsx b/src/components/CustomBottomSheet/RateBottomSheet.tsx index 27a824d..daa0cdb 100644 --- a/src/components/CustomBottomSheet/RateBottomSheet.tsx +++ b/src/components/CustomBottomSheet/RateBottomSheet.tsx @@ -1,20 +1,26 @@ // import { useGlobals } from "../../hooks/useGlobals"; -import { Button, Card, message } from "antd"; +import { Button, message } from "antd"; import RateIcon from "components/Icons/order/RateIcon"; import { useState } from "react"; import { useTranslation } from "react-i18next"; import { useParams } from "react-router-dom"; -import { useGetUserDetailsQuery, useRateOrderMutation } from "redux/api/others"; +import { useRateOrderMutation } from "redux/api/others"; +import { useGetUserDetailsQuery } from "redux/api/others"; import { useAppSelector } from "redux/hooks"; +import { colors } from "ThemeConstants"; import { ProBottomSheet } from "../ProBottomSheet/ProBottomSheet"; import ProText from "../ProText"; -import ProTitle from "../ProTitle"; -import styles from "./CustomBottomSheet.module.css"; -import { colors } from "ThemeConstants"; -export function RateBottomSheet() { +export function RateBottomSheet({ + isOpen, + onClose, + orderIdProp, +}: { + isOpen: boolean; + onClose: () => void; + orderIdProp: string; +}) { const { t } = useTranslation(); - const [isOpen, setIsOpen] = useState(false); const [rating, setRating] = useState(0); const { isRTL } = useAppSelector((state) => state.locale); const { orderId } = useParams(); @@ -25,10 +31,10 @@ export function RateBottomSheet() { }); const handleSubmitRating = () => { - setIsOpen(false); + onClose(); if (getUserDetails?.id) { rateOrder({ - orderID: orderId || "", + orderID: orderId || orderIdProp, rating: rating, comment: "This is a test comment", userID: getUserDetails?.id.toString() || "", @@ -80,32 +86,9 @@ export function RateBottomSheet() { return ( <> - setIsOpen(true)}> -
-
- - {t("order.rateOrder")} - -
-
-
- setIsOpen(false)} + onClose={onClose} title={t("order.rateOrder")} showCloseButton={false} initialSnap={1} diff --git a/src/pages/order/page.tsx b/src/pages/order/page.tsx index f71d571..3e786ea 100644 --- a/src/pages/order/page.tsx +++ b/src/pages/order/page.tsx @@ -34,6 +34,7 @@ export default function OrderPage() { const navigate = useNavigate(); const hasRefetchedRef = useRef(false); const [isOpen, setIsOpen] = useState(false); + const [isRateOrderOpen, setIsRateOrderOpen] = useState(false); const { data: orderDetails } = useGetOrderDetailsQuery( { @@ -471,7 +472,36 @@ export default function OrderPage() { setIsOpen(false)} /> - + setIsRateOrderOpen(true)} + > +
+
+ + {t("order.rateOrder")} + +
+
+
+ + setIsRateOrderOpen(false)} + /> diff --git a/src/pages/orders/OrderDetails.tsx b/src/pages/orders/OrderDetails.tsx index ed6f0c5..dfcd57a 100644 --- a/src/pages/orders/OrderDetails.tsx +++ b/src/pages/orders/OrderDetails.tsx @@ -1,10 +1,7 @@ -import { Button, Card, Divider, Form, Image, Layout } from "antd"; +import { Button, Card, Form, Image, Layout } from "antd"; import LocationIcon from "components/Icons/LocationIcon"; -import InvoiceIcon from "components/Icons/order/InvoiceIcon"; -import TimeIcon from "components/Icons/order/TimeIcon"; import PaymentDetails from "components/PaymentDetails/PaymentDetails"; import ProText from "components/ProText"; -import ProTitle from "components/ProTitle"; import dayjs from "dayjs"; import { useTranslation } from "react-i18next"; import { useGetOrderDetailsQuery } from "redux/api/others"; @@ -12,11 +9,13 @@ import { useAppSelector } from "redux/hooks"; import styles from "./OrderDetails.module.css"; import ProInputCard from "components/ProInputCard/ProInputCard"; import ProHeader from "components/ProHeader/ProHeader"; +import { useState } from "react"; +import { RateBottomSheet } from "components/CustomBottomSheet/RateBottomSheet"; export default function OrderDetails({ orderId }: { orderId: string }) { const { t } = useTranslation(); const { isRTL } = useAppSelector((state) => state.locale); - + const [isRateBottomSheetOpen, setIsRateBottomSheetOpen] = useState(false); const { data: orderDetails } = useGetOrderDetailsQuery( { orderID: orderId || "", @@ -68,7 +67,7 @@ export default function OrderDetails({ orderId }: { orderId: string }) { display: "flex", flexDirection: "row", gap: "1rem", - borderRadius: "12px", + borderRadius: "16px", padding: 16, }} > @@ -205,7 +204,9 @@ export default function OrderDetails({ orderId }: { orderId: string }) { - {/* */} + + setIsRateBottomSheetOpen(false)} + /> ); diff --git a/src/pages/orders/OrdersList.tsx b/src/pages/orders/OrdersList.tsx index ab40106..227428d 100644 --- a/src/pages/orders/OrdersList.tsx +++ b/src/pages/orders/OrdersList.tsx @@ -10,6 +10,8 @@ import { useGetOrdersQuery } from "redux/api/others"; import { colors } from "ThemeConstants"; import styles from "./orders.module.css"; import { Link, useParams } from "react-router-dom"; +import { RateBottomSheet } from "components/CustomBottomSheet/RateBottomSheet"; +import { useState } from "react"; // Utility function to format date const formatDate = (dateString: string): string => { @@ -32,7 +34,8 @@ export default function OrdersList() { const { data: orders = [], isLoading, error, refetch } = useGetOrdersQuery(); const { subdomain } = useParams(); const { t } = useTranslation(); - + const [orderId, setOrderId] = useState(""); + const [isRateBottomSheetOpen, setIsRateBottomSheetOpen] = useState(false); if (isLoading) { return ; } @@ -108,7 +111,7 @@ export default function OrdersList() {
{ + e.preventDefault(); + setOrderId(order.id); + setIsRateBottomSheetOpen(true); + }} style={{ fontSize: "1rem", color: colors.primary }} > @@ -187,6 +195,11 @@ export default function OrdersList() { ))} + setIsRateBottomSheetOpen(false)} + orderIdProp={orderId} + />
)}