From 87f82831918dcd10774d1df55240856c9de45176 Mon Sep 17 00:00:00 2001 From: shats Date: Mon, 16 Feb 2026 22:08:02 +0700 Subject: [PATCH] refactor(CommunitiesManager): simplify layout structure and enhance notification handling for improved user experience --- frontend/src/CommunitiesManager.jsx | 522 ++++++++++++++-------------- 1 file changed, 257 insertions(+), 265 deletions(-) diff --git a/frontend/src/CommunitiesManager.jsx b/frontend/src/CommunitiesManager.jsx index de9283e..85a0595 100644 --- a/frontend/src/CommunitiesManager.jsx +++ b/frontend/src/CommunitiesManager.jsx @@ -350,7 +350,7 @@ function CommunitiesManager() { }; return ( -
+
} @@ -368,276 +368,268 @@ function CommunitiesManager() { } /> -
-
- {/* Уведомления */} - {error && ( - setError('')} onRetry={fetchItems} /> - )} - {success && ( -
-
-
- -
-
- {success} -
-
- + {/* Уведомления */} + {error && ( + setError('')} onRetry={fetchItems} /> + )} + {success && ( +
+
+
+
- )} - - {/* Вкладки: Список / Статистика в стиле Tabler */} -
-
-
    -
  • - -
  • -
  • - -
  • -
+
+ {success}
+ +
+ )} - {/* Отображение списка communities */} - {activeTab === 'list' && ( -
-
-
-
-
-
-

- - Список community - {filtered.length} -

-
-
- -
-
-
-
-
- { - if (filters.searchTerm !== undefined) setSearchTerm(filters.searchTerm); - if (filters.sortField !== undefined) setSortField(filters.sortField); - if (filters.sortOrder !== undefined) setSortOrder(filters.sortOrder); - setCurrentPage(1); - }} - /> -
- - {setSearchTerm(e.target.value); setCurrentPage(1);}} - style={{ paddingRight: searchTerm ? '2.5rem' : undefined }} - /> - {!!searchTerm && ( - - )} -
-
- - - {filterUsageError && ( - {filterUsageError} - )} -
-
-
- - - - - - - - - - - - - - {loading ? ( - - ) : paginated.length === 0 ? ( - - ) : paginated.map((item) => { - const usageCount = filterUsage[item.value] || 0; - return ( - - - - - - - - - - ); - })} - -
changeSort('value')}> -
- - Value - {sortField==='value' && ( - - {sortOrder==='asc' ? : } - - )} -
-
changeSort('name')}> -
- - Название - {sortField==='name' && ( - - {sortOrder==='asc' ? : } - - )} -
-
ОписаниеТегиGatewayИсп. в фильтрахДействия
Загрузка...
- setAddModalOpen(true)}> - - Добавить - - } - /> -
- {item.value} - {item._external && ( - не в справ. - )} - {item.name || } - {item.description || '—'} - - {(item.tags || []).map(t => ( - {t} - ))} - - {item.gatewayDefault || '—'} - - {usageCount > 0 ? ( - {usageCount} в фильтрах - ) : ( - 0 - )} - -
- - - - - -
-
-
- - {totalPages > 1 && ( - - )} -
-
-
-
- )} - - {/* Отображение статистики communities */} - {activeTab === 'stats' && ( - - )} + {/* Вкладки: Список / Статистика в стиле Tabler */} +
+
+
    +
  • + +
  • +
  • + +
  • +
+ + {/* Отображение списка communities */} + {activeTab === 'list' && ( +
+
+
+
+

+ + Список community + {filtered.length} +

+
+
+ +
+
+
+
+
+ { + if (filters.searchTerm !== undefined) setSearchTerm(filters.searchTerm); + if (filters.sortField !== undefined) setSortField(filters.sortField); + if (filters.sortOrder !== undefined) setSortOrder(filters.sortOrder); + setCurrentPage(1); + }} + /> +
+ + {setSearchTerm(e.target.value); setCurrentPage(1);}} + style={{ paddingRight: searchTerm ? '2.5rem' : undefined }} + /> + {!!searchTerm && ( + + )} +
+
+ + + {filterUsageError && ( + {filterUsageError} + )} +
+
+
+ + + + + + + + + + + + + + {loading ? ( + + ) : paginated.length === 0 ? ( + + ) : paginated.map((item) => { + const usageCount = filterUsage[item.value] || 0; + return ( + + + + + + + + + + ); + })} + +
changeSort('value')}> +
+ + Value + {sortField==='value' && ( + + {sortOrder==='asc' ? : } + + )} +
+
changeSort('name')}> +
+ + Название + {sortField==='name' && ( + + {sortOrder==='asc' ? : } + + )} +
+
ОписаниеТегиGatewayИсп. в фильтрахДействия
Загрузка...
+ setAddModalOpen(true)}> + + Добавить + + } + /> +
+ {item.value} + {item._external && ( + не в справ. + )} + {item.name || } + {item.description || '—'} + + {(item.tags || []).map(t => ( + {t} + ))} + + {item.gatewayDefault || '—'} + + {usageCount > 0 ? ( + {usageCount} в фильтрах + ) : ( + 0 + )} + +
+ + + + + +
+
+
+ + {totalPages > 1 && ( + + )} +
+
+ )} + + {/* Отображение статистики communities */} + {activeTab === 'stats' && ( + + )} {/* Модальное окно добавления */}