From 233c50571bc6b39b7543b84c54f62ea176531b63 Mon Sep 17 00:00:00 2001 From: Borislav Pantaleev Date: Wed, 26 Feb 2025 22:51:18 +0200 Subject: [PATCH] Move Server Status on top of Sidebar and fix icon background --- src/components/AdminLayout.tsx | 5 +++-- src/components/etke.cc/ServerStatusBadge.tsx | 10 +++++++--- src/synapse/authProvider.ts | 13 ++++++++++--- 3 files changed, 20 insertions(+), 8 deletions(-) diff --git a/src/components/AdminLayout.tsx b/src/components/AdminLayout.tsx index e70135e..f067606 100644 --- a/src/components/AdminLayout.tsx +++ b/src/components/AdminLayout.tsx @@ -66,15 +66,16 @@ const AdminMenu = (props) => { return ( - - {menu && 0 && } primaryText="Server Status" /> } + {menu && menu.map((item, index) => { const { url, icon, label } = item; const IconComponent = Icons[icon] as React.ComponentType | undefined; diff --git a/src/components/etke.cc/ServerStatusBadge.tsx b/src/components/etke.cc/ServerStatusBadge.tsx index d9b825b..4dd31c7 100644 --- a/src/components/etke.cc/ServerStatusBadge.tsx +++ b/src/components/etke.cc/ServerStatusBadge.tsx @@ -135,7 +135,7 @@ const useCurrentServerProcess = () => { return { command, locked_at }; }; -export const ServerStatusStyledBadge = ({ command, locked_at, isOkay }: { command: string, locked_at: string, isOkay: boolean }) => { +export const ServerStatusStyledBadge = ({ command, locked_at, isOkay, inSidebar = false }: { command: string, locked_at: string, isOkay: boolean, inSidebar: boolean }) => { const theme = useTheme(); let badgeBackgroundColor = isOkay ? theme.palette.success.light : theme.palette.error.main; let badgeColor = isOkay ? theme.palette.success.light : theme.palette.error.main; @@ -144,6 +144,10 @@ export const ServerStatusStyledBadge = ({ command, locked_at, isOkay }: { comman badgeBackgroundColor = theme.palette.warning.main; badgeColor = theme.palette.warning.main; } + let avatarBackgroundColor = theme.palette.mode === "dark" ? theme.palette.background.default : "#2196f3"; + if (inSidebar) { + avatarBackgroundColor = theme.palette.grey[600]; + } return - + @@ -180,7 +184,7 @@ const ServerStatusBadge = () => { return diff --git a/src/synapse/authProvider.ts b/src/synapse/authProvider.ts index fc0ffb9..f26a2f3 100644 --- a/src/synapse/authProvider.ts +++ b/src/synapse/authProvider.ts @@ -2,7 +2,7 @@ import { AuthProvider, HttpError, Options, fetchUtils } from "react-admin"; import { MatrixError, displayError } from "../utils/error"; import { fetchAuthenticatedMedia } from "../utils/fetchMedia"; -import { FetchConfig, ClearConfig } from "../utils/config"; +import { FetchConfig, ClearConfig, GetConfig } from "../utils/config"; import decodeURLComponent from "../utils/decodeURLComponent"; const authProvider: AuthProvider = { @@ -81,9 +81,16 @@ const authProvider: AuthProvider = { localStorage.setItem("access_token", accessToken ? accessToken : json.access_token); localStorage.setItem("device_id", json.device_id); localStorage.setItem("login_type", accessToken ? "accessToken" : "credentials"); - await FetchConfig(); - return Promise.resolve({redirectTo: "/"}); + await FetchConfig(); + const config = GetConfig(); + let pageToRedirectTo = "/"; + + if (config && config.etkeccAdmin) { + pageToRedirectTo = "/server_status"; + } + + return Promise.resolve({redirectTo: pageToRedirectTo}); } catch(err) { const error = err as HttpError; const errorStatus = error.status;