send pick up type

This commit is contained in:
2025-11-15 23:04:25 +03:00
parent fb590eb8f2
commit a86fc166fa
3 changed files with 28 additions and 8 deletions

View File

@@ -65,8 +65,9 @@ interface CartState {
scheduledDate: string; scheduledDate: string;
discount: DiscountData; discount: DiscountData;
plateCar: string; plateCar: string;
pickupDate: string, pickupDate: string;
pickupTime: string pickupTime: string;
pickupType: string;
} }
// localStorage keys // localStorage keys
@@ -95,6 +96,7 @@ export const CART_STORAGE_KEYS = {
PLATE: "fascano_plate_car", PLATE: "fascano_plate_car",
PICKUP_DATE: "fascano_pickup_date", PICKUP_DATE: "fascano_pickup_date",
PICKUP_TIME: "fascano_pickup_time", PICKUP_TIME: "fascano_pickup_time",
PICKUP_TYPE: "fascano_pickup_type",
} as const; } as const;
// Utility functions for localStorage // Utility functions for localStorage
@@ -179,6 +181,7 @@ const initialState: CartState = {
plateCar: getFromLocalStorage(CART_STORAGE_KEYS.PLATE, ""), plateCar: getFromLocalStorage(CART_STORAGE_KEYS.PLATE, ""),
pickupDate: getFromLocalStorage(CART_STORAGE_KEYS.PICKUP_DATE, ""), pickupDate: getFromLocalStorage(CART_STORAGE_KEYS.PICKUP_DATE, ""),
pickupTime: getFromLocalStorage(CART_STORAGE_KEYS.PICKUP_TIME, ""), pickupTime: getFromLocalStorage(CART_STORAGE_KEYS.PICKUP_TIME, ""),
pickupType: getFromLocalStorage(CART_STORAGE_KEYS.PICKUP_TYPE, ""),
}; };
const orderSlice = createSlice({ const orderSlice = createSlice({
@@ -611,6 +614,15 @@ const orderSlice = createSlice({
); );
} }
}, },
updatePickUpType(state, action: PayloadAction<string>) {
state.pickupType = action.payload;
if (typeof window !== "undefined") {
localStorage.setItem(
CART_STORAGE_KEYS.PICKUP_TYPE,
JSON.stringify(state.pickupType),
);
}
},
}, },
}); });
@@ -646,6 +658,7 @@ export const {
updateDiscount, updateDiscount,
updatePickupDate, updatePickupDate,
updatePickupTime, updatePickupTime,
updatePickUpType,
} = orderSlice.actions; } = orderSlice.actions;
// Tax calculation helper functions // Tax calculation helper functions
@@ -690,9 +703,8 @@ export const selectCartItemsQuantityById =
// Loyalty selectors // Loyalty selectors
const selectOrderItems = (state: RootState) => state.order.items; const selectOrderItems = (state: RootState) => state.order.items;
export const selectLoyaltyItems = createSelector( export const selectLoyaltyItems = createSelector([selectOrderItems], (items) =>
[selectOrderItems], items.filter((item) => item.isHasLoyalty),
(items) => items.filter((item) => item.isHasLoyalty),
); );
export const selectHighestPricedLoyaltyItem = (state: RootState) => { export const selectHighestPricedLoyaltyItem = (state: RootState) => {

View File

@@ -3,7 +3,11 @@ import useFormInstance from "antd/es/form/hooks/useFormInstance";
import ProInputCard from "components/ProInputCard/ProInputCard.tsx"; import ProInputCard from "components/ProInputCard/ProInputCard.tsx";
import ProRatioGroups from "components/ProRatioGroups/ProRatioGroups.tsx"; import ProRatioGroups from "components/ProRatioGroups/ProRatioGroups.tsx";
import dayjs from "dayjs"; import dayjs from "dayjs";
import { updatePickupDate, updatePickupTime } from "features/order/orderSlice"; import {
updatePickupDate,
updatePickupTime,
updatePickUpType,
} from "features/order/orderSlice";
import useBreakPoint from "hooks/useBreakPoint.ts"; import useBreakPoint from "hooks/useBreakPoint.ts";
import { BottomSheet } from "pages/cart/components/timeEstimate/BottomSheet.tsx"; import { BottomSheet } from "pages/cart/components/timeEstimate/BottomSheet.tsx";
import { Dialog } from "pages/cart/components/timeEstimate/Dialog.tsx"; import { Dialog } from "pages/cart/components/timeEstimate/Dialog.tsx";
@@ -53,9 +57,11 @@ export default function TimeEstimateCard() {
dayjs().format(SERVER_DATE_FORMAT), dayjs().format(SERVER_DATE_FORMAT),
dayjs().format(UI_TIME_FORMAT), dayjs().format(UI_TIME_FORMAT),
); );
dispatch(updatePickUpType("now"));
} else { } else {
setEstimateWay(value); setEstimateWay(value);
setIsEstimateTimeOpen(true); setIsEstimateTimeOpen(true);
dispatch(updatePickUpType(""));
} }
}} }}
/> />

View File

@@ -39,6 +39,7 @@ export default function useOrder() {
plateCar, plateCar,
pickupTime, pickupTime,
pickupDate, pickupDate,
pickupType,
} = useAppSelector(selectCart); } = useAppSelector(selectCart);
const highestLoyaltyItem = useAppSelector(selectHighestPricedLoyaltyItem); const highestLoyaltyItem = useAppSelector(selectHighestPricedLoyaltyItem);
const { useLoyaltyPoints } = useAppSelector(selectCart); const { useLoyaltyPoints } = useAppSelector(selectCart);
@@ -88,6 +89,7 @@ export default function useOrder() {
pickup_time: pickupTime, pickup_time: pickupTime,
pickup_date: pickupDate, pickup_date: pickupDate,
car_plate: plateCar, car_plate: plateCar,
pickupTimeType: pickupType,
delivery_pickup_interval: "", delivery_pickup_interval: "",
orderPrice: orderPrice, orderPrice: orderPrice,
use_loylaty: useLoyaltyPoints && highestLoyaltyItem ? 1 : 0, use_loylaty: useLoyaltyPoints && highestLoyaltyItem ? 1 : 0,