import React, { ReactNode, useContext, useState } from "react"; import { useTranslation } from "react-i18next"; import { Button, Modal, ModalVariant, ToolbarItem, } from "@patternfly/react-core"; import moment from "moment"; import { useAdminClient } from "../context/auth/AdminClient"; import { DataList } from "../components/table-toolbar/DataList"; import { RealmContext } from "../context/realm-context/RealmContext"; import { Table, TableBody, TableHeader, TableVariant, } from "@patternfly/react-table"; import AdminEventRepresentation from "keycloak-admin/lib/defs/adminEventRepresentation"; import { ListEmptyState } from "../components/list-empty-state/ListEmptyState"; type DisplayDialogProps = { titleKey: string; onClose: () => void; children: ReactNode; }; const DisplayDialog = ({ titleKey, onClose, children }: DisplayDialogProps) => { const { t } = useTranslation("events"); return ( {children} ); }; export const AdminEvents = () => { const { t } = useTranslation("events"); const adminClient = useAdminClient(); const { realm } = useContext(RealmContext); const [key, setKey] = useState(""); const refresh = () => setKey(`${new Date().getTime()}`); const [authEvent, setAuthEvent] = useState(); const [representationEvent, setRepresentationEvent] = useState< AdminEventRepresentation >(); const loader = async (first?: number, max?: number, search?: string) => { const params = { first: first!, max: max!, realm, }; if (search) { console.log("how to search?", search); } return await adminClient.realms.findAdminEvents({ ...params }); }; return ( <> {authEvent && ( setAuthEvent(undefined)}>
)} {representationEvent && ( setRepresentationEvent(undefined)} > some json from the changed values )} } actions={[ { title: t("auth"), onRowClick: (event) => setAuthEvent(event), }, { title: t("representation"), onRowClick: (event) => setRepresentationEvent(event), }, ]} columns={[ { name: "time", displayKey: "events:time", cellRenderer: (row) => moment(row.time).fromNow(), }, { name: "resourcePath", displayKey: "events:resourcePath", }, { name: "resourceType", displayKey: "events:resourceType", }, { name: "operationType", displayKey: "events:operationType", }, { name: "", displayKey: "events:user", cellRenderer: (event) => event.authDetails?.userId, }, ]} emptyState={ } /> ); };