send pick up type
This commit is contained in:
@@ -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) => {
|
||||||
|
|||||||
@@ -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(""));
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
Reference in New Issue
Block a user