import {
Brand,
Card,
CardBody,
CardTitle,
DescriptionList,
DescriptionListDescription,
DescriptionListGroup,
DescriptionListTerm,
EmptyState,
EmptyStateBody,
Grid,
GridItem,
Label,
List,
ListItem,
ListVariant,
PageSection,
Text,
TextContent,
Title,
} from "@patternfly/react-core";
import React from "react";
import { Trans, useTranslation } from "react-i18next";
import { xor } from "lodash-es";
import { useRealm } from "../context/realm-context/RealmContext";
import { useServerInfo } from "../context/server-info/ServerInfoProvider";
import { toUpperCase } from "../util";
import { HelpItem } from "../components/help-enabler/HelpItem";
import environment from "../environment";
import "./dashboard.css";
import { KeycloakSpinner } from "../components/keycloak-spinner/KeycloakSpinner";
const EmptyDashboard = () => {
const { t } = useTranslation("dashboard");
const { realm } = useRealm();
return (
{t("welcome")}
{realm}
{t("introduction")}
);
};
const Dashboard = () => {
const { t } = useTranslation("dashboard");
const { realm } = useRealm();
const serverInfo = useServerInfo();
const enabledFeatures = xor(
serverInfo.profileInfo?.disabledFeatures,
serverInfo.profileInfo?.experimentalFeatures,
serverInfo.profileInfo?.previewFeatures
);
const isExperimentalFeature = (feature: string) => {
return serverInfo.profileInfo?.experimentalFeatures?.includes(feature);
};
const isPreviewFeature = (feature: string) => {
return serverInfo.profileInfo?.previewFeatures?.includes(feature);
};
if (Object.keys(serverInfo).length === 0) {
return ;
}
return (
<>
{t("realmName", { name: toUpperCase(realm) })}
Admin UI version
{{ version: environment.commitHash }}
{t("serverInfo")}
{t("version")}
{serverInfo.systemInfo?.version}
{t("product")}
{toUpperCase(serverInfo.profileInfo?.name!)}
{t("profile")}
{t("enabledFeatures")}{" "}
{enabledFeatures.map((feature) => (
{feature}{" "}
{isExperimentalFeature(feature) ? (
) : null}
{isPreviewFeature(feature) ? (
) : null}
))}
{t("disabledFeatures")}{" "}
{serverInfo.profileInfo?.disabledFeatures?.map(
(feature) => (
{feature}
)
)}
>
);
};
export default function DashboardSection() {
const { realm } = useRealm();
const isMasterRealm = realm === "master";
return (
<>
{!isMasterRealm && }
{isMasterRealm && }
>
);
}