Удален файл интеграции с Parts Index API и обновлены компоненты для работы с корзиной и избранным. Добавлены функции для обработки добавления товаров в корзину с уведомлениями, улучшена логика работы с избранным, а также добавлены фильтры для истории поиска по производителю.

This commit is contained in:
Bivekich
2025-06-29 03:36:21 +03:00
parent d268bb3359
commit 7f91da525f
23 changed files with 685 additions and 780 deletions

View File

@ -1,5 +1,7 @@
import React from 'react';
import { useQuery } from '@apollo/client';
import { useIsClient } from '@/lib/useIsomorphicLayoutEffect';
import { GET_CLIENT_ME } from '@/lib/graphql';
interface ProfileSidebarProps {
activeItem: string;
@ -8,6 +10,15 @@ interface ProfileSidebarProps {
const ProfileSidebar: React.FC<ProfileSidebarProps> = ({ activeItem }) => {
const isClient = useIsClient();
// Получаем данные клиента для проверки наличия юридических лиц
const { data: clientData } = useQuery(GET_CLIENT_ME, {
skip: !isClient,
errorPolicy: 'ignore' // Игнорируем ошибки, чтобы не ломать интерфейс
});
// Проверяем есть ли у клиента юридические лица
const hasLegalEntities = clientData?.clientMe?.legalEntities && clientData.clientMe.legalEntities.length > 0;
const menuItems = [
{ id: 'orders', icon: 'order', label: 'Заказы', href: '/profile-orders' },
{ id: 'history', icon: 'history', label: 'История поиска', href: '/profile-history' },
@ -133,25 +144,28 @@ const ProfileSidebar: React.FC<ProfileSidebarProps> = ({ activeItem }) => {
</div>
</div>
<div className="sidebar-section">
<div className="sidebar-header">
<h3 className="sidebar-title">Финансы</h3>
{/* Раздел "Финансы" показываем только если есть юридические лица */}
{hasLegalEntities && (
<div className="sidebar-section">
<div className="sidebar-header">
<h3 className="sidebar-title">Финансы</h3>
</div>
<div className="sidebar-menu">
{financeItems.map((item) => (
<a
key={item.id}
href={item.href}
className={`sidebar-item ${activeItem === item.id ? 'active' : ''}`}
>
<div className="sidebar-icon">
{renderIcon(item.icon, activeItem === item.id)}
</div>
<span className="sidebar-label">{item.label}</span>
</a>
))}
</div>
</div>
<div className="sidebar-menu">
{financeItems.map((item) => (
<a
key={item.id}
href={item.href}
className={`sidebar-item ${activeItem === item.id ? 'active' : ''}`}
>
<div className="sidebar-icon">
{renderIcon(item.icon, activeItem === item.id)}
</div>
<span className="sidebar-label">{item.label}</span>
</a>
))}
</div>
</div>
)}
{/* Кнопка выхода */}
<div className="logout-section">