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);