/* eslint-disable */ // @ts-nocheck import iconSvgUrl from "../assets/icon.svg"; import FeatureRepresentation, { FeatureType, } from "@keycloak/keycloak-admin-client/lib/defs/featureRepresentation"; import { HelpItem, useEnvironment } from "../../shared/keycloak-ui-shared"; import { ActionList, ActionListItem, Brand, Button, Card, CardBody, CardTitle, DescriptionList, DescriptionListDescription, DescriptionListGroup, DescriptionListTerm, EmptyState, EmptyStateBody, EmptyStateHeader, Grid, GridItem, Label, List, ListItem, ListVariant, PageSection, Tab, TabTitleText, Text, TextContent, TextVariants, Title, } from "../../shared/@patternfly/react-core"; import { useMemo } from "react"; import { useTranslation } from "react-i18next"; import { KeycloakSpinner } from "../../shared/keycloak-ui-shared"; import { RoutableTabs, useRoutableTab, } from "../components/routable-tabs/RoutableTabs"; import { useRealm } from "../context/realm-context/RealmContext"; import { useServerInfo } from "../context/server-info/ServerInfoProvider"; import type { Environment } from "../environment-types"; import helpUrls from "../help-urls"; import { resolveDisplayName } from "../util"; import useLocaleSort, { mapByKey } from "../utils/useLocaleSort"; import { ProviderInfo } from "./ProviderInfo"; import { DashboardTab, toDashboard } from "./routes/Dashboard"; import "./dashboard.css"; const EmptyDashboard = () => { const { environment } = useEnvironment(); const { t } = useTranslation(); const { realm, realmRepresentation: realmInfo } = useRealm(); const realmDisplayInfo = resolveDisplayName(t, realmInfo.displayName, realm); return ( {t("welcome")}} headingLevel="h2" /> {t("introduction")} ); }; type FeatureItemProps = { feature: FeatureRepresentation; }; const FeatureItem = ({ feature }: FeatureItemProps) => { const { t } = useTranslation(); const color = feature.type === FeatureType.Default || feature.type === FeatureType.DisabledByDefault ? "green" : feature.type === FeatureType.Preview || feature.type === FeatureType.PreviewDisabledByDefault ? "blue" : feature.type === FeatureType.Experimental ? "orange" : "grey"; return ( {feature.name}  {feature.deprecated && feature.type !== FeatureType.Deprecated && ( <>   )} ); }; const Dashboard = () => { const { t } = useTranslation(); const { realm, realmRepresentation: realmInfo } = useRealm(); const serverInfo = useServerInfo(); const localeSort = useLocaleSort(); const sortedFeatures = useMemo( () => localeSort(serverInfo.features ?? [], mapByKey("name")), [serverInfo.features], ); const disabledFeatures = useMemo( () => sortedFeatures.filter((f) => !f.enabled), [serverInfo.features], ); const enabledFeatures = useMemo( () => sortedFeatures.filter((f) => f.enabled), [serverInfo.features], ); const useTab = (tab: DashboardTab) => useRoutableTab( toDashboard({ realm, tab, }), ); const realmDisplayInfo = resolveDisplayName(t, realmInfo.displayName, realm); const welcomeTab = useTab("welcome"); const infoTab = useTab("info"); const providersTab = useTab("providers"); if (Object.keys(serverInfo).length === 0) { return ; } return ( <> {t("realmNameTitle", { name: realm })} {t("welcomeTabTitle")}} {...welcomeTab} >
{t("welcomeTo", { realmDisplayInfo })}
{t("welcomeText")}
{t("serverInfo")}} {...infoTab} > {t("serverInfo")} {t("version")} {serverInfo.systemInfo?.version} {t("cpu")} {t("processorCount")} {serverInfo.cpuInfo?.processorCount} {t("memory")} {t("totalMemory")} {serverInfo.memoryInfo?.totalFormated} {t("freeMemory")} {serverInfo.memoryInfo?.freeFormated} {t("usedMemory")} {serverInfo.memoryInfo?.usedFormated} {t("profile")} {t("enabledFeatures")}{" "} {enabledFeatures.map((feature) => ( ))} {t("disabledFeatures")}{" "} {disabledFeatures.map((feature) => ( ))} {t("providerInfo")}} {...providersTab} >
); }; export default function DashboardSection() { const { realm } = useRealm(); const { environment } = useEnvironment(); const isMasterRealm = realm === environment.masterRealm; return ( <> {!isMasterRealm && } {isMasterRealm && } ); }