Оптимизирована производительность React компонентов с помощью мемоизации

КРИТИЧНЫЕ КОМПОНЕНТЫ ОПТИМИЗИРОВАНЫ:
• AdminDashboard (346 kB) - добавлены React.memo, useCallback, useMemo
• SellerStatisticsDashboard (329 kB) - мемоизация кэша и callback функций
• CreateSupplyPage (276 kB) - оптимизированы вычисления и обработчики
• EmployeesDashboard (268 kB) - мемоизация списков и функций
• SalesTab + AdvertisingTab - React.memo обертка

ТЕХНИЧЕСКИЕ УЛУЧШЕНИЯ:
 React.memo() для предотвращения лишних рендеров
 useMemo() для тяжелых вычислений
 useCallback() для стабильных ссылок на функции
 Мемоизация фильтрации и сортировки списков
 Оптимизация пропсов в компонентах-контейнерах

РЕЗУЛЬТАТЫ:
• Все компоненты успешно компилируются
• Линтер проходит без критических ошибок
• Сохранена вся функциональность
• Улучшена производительность рендеринга
• Снижена нагрузка на React дерево

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Veronika Smirnova
2025-08-06 13:18:45 +03:00
parent ef5de31ce7
commit bf27f3ba29
317 changed files with 26722 additions and 38332 deletions

View File

@ -1,4 +1,4 @@
import { gql } from "graphql-tag";
import { gql } from 'graphql-tag'
// Запрос для получения заявок покупателей на возврат от Wildberries
export const GET_WB_RETURN_CLAIMS = gql`
@ -31,7 +31,7 @@ export const GET_WB_RETURN_CLAIMS = gql`
total
}
}
`;
`
export const GET_ME = gql`
query GetMe {
@ -82,7 +82,7 @@ export const GET_ME = gql`
}
}
}
`;
`
export const GET_MY_SERVICES = gql`
query GetMyServices {
@ -96,7 +96,7 @@ export const GET_MY_SERVICES = gql`
updatedAt
}
}
`;
`
export const GET_MY_SUPPLIES = gql`
query GetMySupplies {
@ -119,7 +119,7 @@ export const GET_MY_SUPPLIES = gql`
updatedAt
}
}
`;
`
export const GET_MY_FULFILLMENT_SUPPLIES = gql`
query GetMyFulfillmentSupplies {
@ -142,7 +142,7 @@ export const GET_MY_FULFILLMENT_SUPPLIES = gql`
updatedAt
}
}
`;
`
export const GET_SELLER_SUPPLIES_ON_WAREHOUSE = gql`
query GetSellerSuppliesOnWarehouse {
@ -180,7 +180,7 @@ export const GET_SELLER_SUPPLIES_ON_WAREHOUSE = gql`
}
}
}
`;
`
export const GET_MY_LOGISTICS = gql`
query GetMyLogistics {
@ -200,7 +200,7 @@ export const GET_MY_LOGISTICS = gql`
}
}
}
`;
`
export const GET_LOGISTICS_PARTNERS = gql`
query GetLogisticsPartners {
@ -214,7 +214,7 @@ export const GET_LOGISTICS_PARTNERS = gql`
emails
}
}
`;
`
export const GET_MY_PRODUCTS = gql`
query GetMyProducts {
@ -249,7 +249,7 @@ export const GET_MY_PRODUCTS = gql`
updatedAt
}
}
`;
`
export const GET_WAREHOUSE_PRODUCTS = gql`
query GetWarehouseProducts {
@ -283,7 +283,7 @@ export const GET_WAREHOUSE_PRODUCTS = gql`
updatedAt
}
}
`;
`
// Запросы для контрагентов
export const SEARCH_ORGANIZATIONS = gql`
@ -309,7 +309,7 @@ export const SEARCH_ORGANIZATIONS = gql`
}
}
}
`;
`
export const GET_MY_COUNTERPARTIES = gql`
query GetMyCounterparties {
@ -331,7 +331,7 @@ export const GET_MY_COUNTERPARTIES = gql`
}
}
}
`;
`
export const GET_SUPPLY_SUPPLIERS = gql`
query GetSupplySuppliers {
@ -347,7 +347,7 @@ export const GET_SUPPLY_SUPPLIERS = gql`
createdAt
}
}
`;
`
export const GET_ORGANIZATION_LOGISTICS = gql`
query GetOrganizationLogistics($organizationId: ID!) {
@ -360,7 +360,7 @@ export const GET_ORGANIZATION_LOGISTICS = gql`
description
}
}
`;
`
export const GET_INCOMING_REQUESTS = gql`
query GetIncomingRequests {
@ -397,7 +397,7 @@ export const GET_INCOMING_REQUESTS = gql`
}
}
}
`;
`
export const GET_OUTGOING_REQUESTS = gql`
query GetOutgoingRequests {
@ -434,7 +434,7 @@ export const GET_OUTGOING_REQUESTS = gql`
}
}
}
`;
`
export const GET_ORGANIZATION = gql`
query GetOrganization($id: ID!) {
@ -458,7 +458,7 @@ export const GET_ORGANIZATION = gql`
updatedAt
}
}
`;
`
// Запросы для сообщений
export const GET_MESSAGES = gql`
@ -501,7 +501,7 @@ export const GET_MESSAGES = gql`
updatedAt
}
}
`;
`
export const GET_CONVERSATIONS = gql`
query GetConversations {
@ -538,7 +538,7 @@ export const GET_CONVERSATIONS = gql`
updatedAt
}
}
`;
`
export const GET_CATEGORIES = gql`
query GetCategories {
@ -549,7 +549,7 @@ export const GET_CATEGORIES = gql`
updatedAt
}
}
`;
`
export const GET_ALL_PRODUCTS = gql`
query GetAllProducts($search: String, $category: String) {
@ -593,7 +593,7 @@ export const GET_ALL_PRODUCTS = gql`
}
}
}
`;
`
// Запрос товаров конкретной организации (для формы создания поставки)
export const GET_ORGANIZATION_PRODUCTS = gql`
@ -638,7 +638,7 @@ export const GET_ORGANIZATION_PRODUCTS = gql`
}
}
}
`;
`
export const GET_MY_CART = gql`
query GetMyCart {
@ -692,7 +692,7 @@ export const GET_MY_CART = gql`
updatedAt
}
}
`;
`
export const GET_MY_FAVORITES = gql`
query GetMyFavorites {
@ -732,7 +732,7 @@ export const GET_MY_FAVORITES = gql`
}
}
}
`;
`
// Запросы для сотрудников
export const GET_MY_EMPLOYEES = gql`
@ -767,7 +767,7 @@ export const GET_MY_EMPLOYEES = gql`
updatedAt
}
}
`;
`
export const GET_EMPLOYEE = gql`
query GetEmployee($id: ID!) {
@ -796,7 +796,7 @@ export const GET_EMPLOYEE = gql`
updatedAt
}
}
`;
`
export const GET_EMPLOYEE_SCHEDULE = gql`
query GetEmployeeSchedule($employeeId: ID!, $year: Int!, $month: Int!) {
@ -811,7 +811,7 @@ export const GET_EMPLOYEE_SCHEDULE = gql`
}
}
}
`;
`
export const GET_MY_WILDBERRIES_SUPPLIES = gql`
query GetMyWildberriesSupplies {
@ -842,7 +842,7 @@ export const GET_MY_WILDBERRIES_SUPPLIES = gql`
}
}
}
`;
`
// Запросы для получения услуг и расходников от конкретных организаций-контрагентов
export const GET_COUNTERPARTY_SERVICES = gql`
@ -857,7 +857,7 @@ export const GET_COUNTERPARTY_SERVICES = gql`
updatedAt
}
}
`;
`
export const GET_COUNTERPARTY_SUPPLIES = gql`
query GetCounterpartySupplies($organizationId: ID!) {
@ -875,20 +875,12 @@ export const GET_COUNTERPARTY_SUPPLIES = gql`
updatedAt
}
}
`;
`
// Wildberries запросы
export const GET_WILDBERRIES_STATISTICS = gql`
query GetWildberriesStatistics(
$period: String
$startDate: String
$endDate: String
) {
getWildberriesStatistics(
period: $period
startDate: $startDate
endDate: $endDate
) {
query GetWildberriesStatistics($period: String, $startDate: String, $endDate: String) {
getWildberriesStatistics(period: $period, startDate: $startDate, endDate: $endDate) {
success
message
data {
@ -903,7 +895,7 @@ export const GET_WILDBERRIES_STATISTICS = gql`
}
}
}
`;
`
export const GET_WILDBERRIES_CAMPAIGN_STATS = gql`
query GetWildberriesCampaignStats($input: WildberriesCampaignStatsInput!) {
@ -974,7 +966,7 @@ export const GET_WILDBERRIES_CAMPAIGN_STATS = gql`
}
}
}
`;
`
export const GET_WILDBERRIES_CAMPAIGNS_LIST = gql`
query GetWildberriesCampaignsList {
@ -995,7 +987,7 @@ export const GET_WILDBERRIES_CAMPAIGNS_LIST = gql`
}
}
}
`;
`
export const GET_EXTERNAL_ADS = gql`
query GetExternalAds($dateFrom: String!, $dateTo: String!) {
@ -1016,7 +1008,7 @@ export const GET_EXTERNAL_ADS = gql`
}
}
}
`;
`
// Админ запросы
export const ADMIN_ME = gql`
@ -1031,7 +1023,7 @@ export const ADMIN_ME = gql`
updatedAt
}
}
`;
`
export const ALL_USERS = gql`
query AllUsers($search: String, $limit: Int, $offset: Int) {
@ -1057,7 +1049,7 @@ export const ALL_USERS = gql`
hasMore
}
}
`;
`
export const GET_SUPPLY_ORDERS = gql`
query GetSupplyOrders {
@ -1117,7 +1109,7 @@ export const GET_SUPPLY_ORDERS = gql`
}
}
}
`;
`
export const GET_PENDING_SUPPLIES_COUNT = gql`
query GetPendingSuppliesCount {
@ -1130,7 +1122,7 @@ export const GET_PENDING_SUPPLIES_COUNT = gql`
total
}
}
`;
`
// Запросы для кеша склада WB
export const GET_WB_WAREHOUSE_DATA = gql`
@ -1152,15 +1144,11 @@ export const GET_WB_WAREHOUSE_DATA = gql`
}
}
}
`;
`
// Запросы для кеша статистики продаж
export const GET_SELLER_STATS_CACHE = gql`
query GetSellerStatsCache(
$period: String!
$dateFrom: String
$dateTo: String
) {
query GetSellerStatsCache($period: String!, $dateFrom: String, $dateTo: String) {
getSellerStatsCache(period: $period, dateFrom: $dateFrom, dateTo: $dateTo) {
success
message
@ -1186,7 +1174,7 @@ export const GET_SELLER_STATS_CACHE = gql`
}
}
}
`;
`
// Запрос для получения статистики склада фулфилмента с изменениями за сутки
export const GET_FULFILLMENT_WAREHOUSE_STATS = gql`
@ -1224,4 +1212,4 @@ export const GET_FULFILLMENT_WAREHOUSE_STATS = gql`
}
}
}
`;
`