/* eslint-disable */ // @ts-nocheck import { KeycloakDataTable, ListEmptyState, } from "../../shared/keycloak-ui-shared"; import { Accordion, AccordionContent, AccordionItem, AccordionToggle, Label, } from "../../shared/@patternfly/react-core"; import yaml from "yaml"; import { Table, Tbody, Td, Th, Thead, Tr } from "../../shared/@patternfly/react-table"; import { Popover, Button } from "../../shared/@patternfly/react-core"; import { QuestionCircleIcon } from "../../shared/@patternfly/react-icons"; import { useState } from "react"; import { useTranslation } from "react-i18next"; import { useAdminClient } from "../admin-client"; import useFormatDate from "../utils/useFormatDate"; import WorkflowRepresentation from "libs/keycloak-admin-client/lib/defs/workflowRepresentation"; import CodeEditor from "../components/form/CodeEditor"; type UserWorkflowProps = { user?: string; }; const WorkflowYAMLAccordion = ({ id, name }: { id: string; name: string }) => { const [expanded, setExpanded] = useState(false); const [yamlContent, setYamlContent] = useState(""); const { adminClient } = useAdminClient(); const { t } = useTranslation(); const onToggleWorkflowYaml = () => { if (expanded) { setExpanded(false); } else { setExpanded(true); void loadWorkflowYaml(); } }; const loadWorkflowYaml = async () => { const workflowYaml = await adminClient.workflows.findOne({ id: id!, includeId: false, }); setYamlContent(yaml.stringify(workflowYaml)); }; return ( { onToggleWorkflowYaml(); }} isExpanded={expanded} id={`yaml-ex-toggle-${name}`} data-testid={`yaml-ex-toggle-${name}`} > {t("workflowYAML")} ); }; const StepsCell = (workflow: WorkflowRepresentation) => { const formatDate = useFormatDate(); const { t } = useTranslation(); return ( <> {workflow.steps?.map((step, idx) => ( ))}
{t("step")} {t("scheduledAfter")} {t("status")}
{step.uses} {step["scheduled-at"] ? formatDate(new Date(step["scheduled-at"]!)) : ""} {step.status! === "COMPLETED" ? ( ) : ( )}
); }; export const UserWorkflows = ({ user }: UserWorkflowProps) => { const [key, setKey] = useState(0); const { adminClient } = useAdminClient(); const { t } = useTranslation(); const workflowsLoader = async () => { return adminClient.workflows.scheduled({ userId: user!, }); }; const nextStepRenderer = (workflow: WorkflowRepresentation) => { if (!workflow.steps) return ""; const found = workflow.steps.find((step) => step.status === "PENDING"); if (found) { return found.uses; } else { return t("completed"); } }; return ( nextStepRenderer(row) || "", }, { name: "steps", displayKey: "steps", cellRenderer: (row) => row.steps!.length.toString(), }, ]} detailColumns={[ { name: "details", enabled: () => { return true; }, cellRenderer: StepsCell, }, ]} isPaginated={false} toolbarItem={[ {t("whichWorkflowsWillAppearDetail")}} > , ]} searchPlaceholderKey="searchByName" emptyState={ setKey(key + 1)} /> } /> ); };