Skip to content

Commit

Permalink
reworked basket logic
Browse files Browse the repository at this point in the history
  • Loading branch information
o6ez9na committed Nov 29, 2024
1 parent 7274595 commit 6bb7047
Show file tree
Hide file tree
Showing 5 changed files with 9 additions and 111 deletions.
18 changes: 7 additions & 11 deletions frontend/src/components/basket-context/BasketContext.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,22 +24,19 @@ export const BasketProvider = ({ children }) => {
const currentDate = new Date().toLocaleDateString("ru-RU"); // Получаем дату в формате "день.месяц.год"

setBasketItems((prevItems) => {
const existingItem = prevItems.find((i) => i.id === item.id);
if (existingItem) {
// Проверяем, есть ли уже такой элемент в корзине
const exists = prevItems.some((i) => i.id === item.id);
if (exists) {
// Если элемент уже есть, просто возвращаем текущий список
return prevItems.map((i) =>
i.id === item.id
? { ...i, quantity: i.quantity + 1, dateAdded: currentDate } // Добавляем или обновляем дату
: i
i.id === item.id ? { ...i, dateAdded: currentDate } : i
);
}
return [
...prevItems,
{ ...item, quantity: 1, dateAdded: currentDate }, // Добавляем дату добавления
];
// Если элемента нет, добавляем его
return [...prevItems, { ...item, dateAdded: currentDate }];
});
};

// Функция для удаления 1 единицы элемента из корзины
const removeOneFromBasket = (id) => {
setBasketItems((prevItems) => {
const updatedItems = prevItems
Expand All @@ -51,7 +48,6 @@ export const BasketProvider = ({ children }) => {
});
};

// Функция для полного удаления элемента из корзины
const removeFromBasket = (id) => {
setBasketItems((prevItems) => prevItems.filter((item) => item.id !== id)); // Удаляем элемент по id
};
Expand Down
2 changes: 1 addition & 1 deletion frontend/src/components/header/Header.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ export default function Header() {

const isActivePath = (path) => location.pathname === path;

const totalItems = basketItems.reduce((sum, item) => sum + item.quantity, 0) ;
const totalItems = basketItems.length;

useEffect(() => {
if (location.pathname === "/navigate/license") {
Expand Down
40 changes: 0 additions & 40 deletions frontend/src/components/main-page/Basket/Order/Counter/Counter.js

This file was deleted.

50 changes: 0 additions & 50 deletions frontend/src/components/main-page/Basket/Order/Counter/counter.css

This file was deleted.

10 changes: 1 addition & 9 deletions frontend/src/components/main-page/Basket/Order/Order.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import React, { useState, useEffect } from "react";
import "./order.css";
import Counter from "./Counter/Counter";
import PlantArea from "./PlantArea/PlantArea";

function getDeclension(quantity, one, few, many) {
Expand Down Expand Up @@ -74,14 +73,7 @@ export default function Order({
<div>Дата заказа: {date}</div>
<div className="order-change-volume">
Итог:{" "}
<Counter
id={id}
quantity={quantity}
removeOneFromBasket={removeOneFromBasket}
removeFromBasket={removeFromBasket}
item={item}
addToBasket={addToBasket}
/>{" "}
{" "}
{declension}
</div>
<div className="order-selected-plant">
Expand Down

0 comments on commit 6bb7047

Please sign in to comment.