import React, { useState } from "react"; import { useParams } from "react-router-dom"; import { useTranslation } from "react-i18next"; import { Label } from "@patternfly/react-core"; import { ListEmptyState } from "../components/list-empty-state/ListEmptyState"; import { KeycloakDataTable } from "../components/table-toolbar/KeycloakDataTable"; import { emptyFormatter } from "../util"; import { useAdminClient } from "../context/auth/AdminClient"; import { cellWidth } from "@patternfly/react-table"; import _ from "lodash"; import type UserConsentRepresentation from "keycloak-admin/lib/defs/userConsentRepresentation"; import { CubesIcon } from "@patternfly/react-icons"; import moment from "moment"; export const UserConsents = () => { const { t } = useTranslation("roles"); const adminClient = useAdminClient(); const { id } = useParams<{ id: string }>(); const alphabetize = (consentsList: UserConsentRepresentation[]) => { return _.sortBy(consentsList, (client) => client.clientId?.toUpperCase()); }; const loader = async () => { const consents = await adminClient.users.listConsents({ id }); return alphabetize(consents); }; const [labelClicked, setLabelClicked] = useState(false); // useEffect(() => { // console.log(labelClicked) // }, [key]) const [key, setKey] = useState(0); const clientScopesRenderer = ({ grantedClientScopes, }: UserConsentRepresentation) => { if (grantedClientScopes!.length <= 5 && labelClicked) { return <>{grantedClientScopes!.join(", ")}; } else return ( <> {grantedClientScopes!.slice(1, 6).join(", ")}{" "} ); }; const createdRenderer = ({ createDate }: UserConsentRepresentation) => { return <>{moment(createDate).format("MM/DD/YY hh:MM A")}; }; const lastUpdatedRenderer = ({ lastUpdatedDate, }: UserConsentRepresentation) => { return <>{moment(lastUpdatedDate).format("MM/DD/YY hh:MM A")}; }; return ( <> {}} /> } /> ); };