From 1566d3f9988831f2609a0364b61919e0c1f785cc Mon Sep 17 00:00:00 2001 From: shats Date: Sat, 6 Dec 2025 20:35:15 +0700 Subject: [PATCH] feat: Enhance CommunitiesManager and FilterManager with improved tab styling and query parameter prefill functionality for better user experience and server selection. --- frontend/src/CommunitiesManager.jsx | 7 ++++--- frontend/src/FilterManager.jsx | 21 +++++++++++++++++++-- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/frontend/src/CommunitiesManager.jsx b/frontend/src/CommunitiesManager.jsx index f6ff6a5..f7046d7 100644 --- a/frontend/src/CommunitiesManager.jsx +++ b/frontend/src/CommunitiesManager.jsx @@ -403,10 +403,10 @@ function CommunitiesManager() { )} - {/* Вкладки: Список / Статистика */} + {/* Вкладки: Список / Статистика в стиле Tabler */}
-
-
    +
    +
    • diff --git a/frontend/src/FilterManager.jsx b/frontend/src/FilterManager.jsx index d5f0c5c..ccfe8da 100644 --- a/frontend/src/FilterManager.jsx +++ b/frontend/src/FilterManager.jsx @@ -70,14 +70,31 @@ function FilterManager() { const [sortBy, setSortBy] = useState('community'); // community | gateway | description const [sortDir, setSortDir] = useState('asc'); // asc | desc - // Префилл поиска из query-параметра ?community=... + // Префилл из query (?community=..., ?serverId=..., ?server=...) и автоселект сервера + const prefillAppliedRef = useRef(false); useEffect(() => { + if (prefillAppliedRef.current) return; const params = new URLSearchParams(window.location.search); const communityFromQuery = params.get('community'); + const serverIdFromQuery = params.get('serverId'); + const serverNameFromQuery = params.get('server'); + if (communityFromQuery) { setFilterSearch(communityFromQuery); } - }, []); + + if (servers.length > 0) { + let target = + (serverIdFromQuery && servers.find((s) => s.id === serverIdFromQuery)) || + (serverNameFromQuery && servers.find((s) => s.name === serverNameFromQuery)) || + servers.find((s) => s.enabled) || + servers[0]; + if (target) { + setSelectedServer(target); + } + prefillAppliedRef.current = true; + } + }, [servers]); // Состояние управления серверами const [serverListModalOpen, setServerListModalOpen] = useState(false);