All Downloads are FREE. Search and download functionalities are using the official Maven repository.

theme.keycloak.v2.admin.resources.assets.SessionsTable-7834737d.js.map Maven / Gradle / Ivy

There is a newer version: 25.0.1
Show newest version
{"version":3,"file":"SessionsTable-7834737d.js","sources":["../../../../node_modules/.pnpm/@[email protected][email protected][email protected]/node_modules/@patternfly/react-icons/dist/esm/icons/cubes-icon.js","../../src/sessions/SessionsTable.tsx"],"sourcesContent":["import { createIcon } from '../createIcon';\n\nexport const CubesIconConfig = {\n  name: 'CubesIcon',\n  height: 512,\n  width: 512,\n  svgPath: 'M488.6 250.2L392 214V105.5c0-15-9.3-28.4-23.4-33.7l-100-37.5c-8.1-3.1-17.1-3.1-25.3 0l-100 37.5c-14.1 5.3-23.4 18.7-23.4 33.7V214l-96.6 36.2C9.3 255.5 0 268.9 0 283.9V394c0 13.6 7.7 26.1 19.9 32.2l100 50c10.1 5.1 22.1 5.1 32.2 0l103.9-52 103.9 52c10.1 5.1 22.1 5.1 32.2 0l100-50c12.2-6.1 19.9-18.6 19.9-32.2V283.9c0-15-9.3-28.4-23.4-33.7zM358 214.8l-85 31.9v-68.2l85-37v73.3zM154 104.1l102-38.2 102 38.2v.6l-102 41.4-102-41.4v-.6zm84 291.1l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6zm240 112l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6z',\n  yOffset: 0,\n  xOffset: 0,\n};\n\nexport const CubesIcon = createIcon(CubesIconConfig);\n\nexport default CubesIcon;","import type UserSessionRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/userSessionRepresentation\";\nimport {\n  Button,\n  List,\n  ListItem,\n  ListVariant,\n  ToolbarItem,\n} from \"@patternfly/react-core\";\nimport { CubesIcon } from \"@patternfly/react-icons\";\nimport { ReactNode, useMemo, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Link } from \"react-router-dom\";\n\nimport { adminClient } from \"../admin-client\";\nimport { toClient } from \"../clients/routes/Client\";\nimport { useAlerts } from \"../components/alert/Alerts\";\nimport { useConfirmDialog } from \"../components/confirm-dialog/ConfirmDialog\";\nimport { ListEmptyState } from \"../components/list-empty-state/ListEmptyState\";\nimport {\n  Action,\n  Field,\n  KeycloakDataTable,\n  LoaderFunction,\n} from \"../components/table-toolbar/KeycloakDataTable\";\nimport { useRealm } from \"../context/realm-context/RealmContext\";\nimport { useWhoAmI } from \"../context/whoami/WhoAmI\";\nimport { keycloak } from \"../keycloak\";\nimport { toUser } from \"../user/routes/User\";\nimport useFormatDate from \"../utils/useFormatDate\";\n\nexport type ColumnName =\n  | \"username\"\n  | \"start\"\n  | \"lastAccess\"\n  | \"clients\"\n  | \"type\";\n\nexport type SessionsTableProps = {\n  loader: LoaderFunction;\n  hiddenColumns?: ColumnName[];\n  emptyInstructions?: string;\n  logoutUser?: string;\n  filter?: ReactNode;\n  isSearching?: boolean;\n  isPaginated?: boolean;\n};\n\nconst UsernameCell = (row: UserSessionRepresentation) => {\n  const { realm } = useRealm();\n  return (\n    \n      {row.username}\n    \n  );\n};\n\nconst ClientsCell = (row: UserSessionRepresentation) => {\n  const { realm } = useRealm();\n  return (\n    \n      {Object.entries(row.clients!).map(([clientId, client]) => (\n        \n          \n            {client}\n          \n        \n      ))}\n    \n  );\n};\n\nexport default function SessionsTable({\n  loader,\n  hiddenColumns = [],\n  emptyInstructions,\n  logoutUser,\n  filter,\n  isSearching,\n  isPaginated,\n}: SessionsTableProps) {\n  const { realm } = useRealm();\n  const { whoAmI } = useWhoAmI();\n  const { t } = useTranslation(\"sessions\");\n  const { addError } = useAlerts();\n  const formatDate = useFormatDate();\n  const [key, setKey] = useState(0);\n  const refresh = () => setKey((value) => value + 1);\n\n  const columns = useMemo(() => {\n    const defaultColumns: Field[] = [\n      {\n        name: \"username\",\n        displayKey: \"sessions:user\",\n        cellRenderer: UsernameCell,\n      },\n      {\n        name: \"type\",\n        displayKey: \"common:type\",\n      },\n      {\n        name: \"start\",\n        displayKey: \"sessions:started\",\n        cellRenderer: (row) => formatDate(new Date(row.start!)),\n      },\n      {\n        name: \"lastAccess\",\n        displayKey: \"sessions:lastAccess\",\n        cellRenderer: (row) => formatDate(new Date(row.lastAccess!)),\n      },\n      {\n        name: \"ipAddress\",\n        displayKey: \"events:ipAddress\",\n      },\n      {\n        name: \"clients\",\n        displayKey: \"sessions:clients\",\n        cellRenderer: ClientsCell,\n      },\n    ];\n\n    return defaultColumns.filter(\n      ({ name }) => !hiddenColumns.includes(name as ColumnName)\n    );\n  }, [realm, hiddenColumns]);\n\n  const [toggleLogoutDialog, LogoutConfirm] = useConfirmDialog({\n    titleKey: \"sessions:logoutAllSessions\",\n    messageKey: \"sessions:logoutAllDescription\",\n    continueButtonLabel: \"common:confirm\",\n    onConfirm: async () => {\n      try {\n        await adminClient.users.logout({ id: logoutUser! });\n        refresh();\n      } catch (error) {\n        addError(\"sessions:logoutAllSessionsError\", error);\n      }\n    },\n  });\n\n  async function onClickSignOut(session: UserSessionRepresentation) {\n    await adminClient.realms.deleteSession({ realm, session: session.id! });\n\n    if (session.userId === whoAmI.getUserId()) {\n      await keycloak.logout({ redirectUri: \"\" });\n    } else {\n      refresh();\n    }\n  }\n\n  return (\n    <>\n      \n      \n              \n            \n          )\n        }\n        columns={columns}\n        actions={[\n          {\n            title: t(\"common:signOut\"),\n            onRowClick: onClickSignOut,\n          } as Action,\n        ]}\n        emptyState={\n          \n        }\n      />\n    \n  );\n}\n"],"names":["CubesIconConfig","CubesIcon","createIcon","UsernameCell","row","realm","useRealm","jsx","Link","toUser","ClientsCell","List","ListVariant","clientId","client","ListItem","toClient","SessionsTable","loader","hiddenColumns","emptyInstructions","logoutUser","filter","isSearching","isPaginated","whoAmI","useWhoAmI","t","useTranslation","addError","useAlerts","formatDate","useFormatDate","key","setKey","useState","refresh","value","columns","useMemo","name","toggleLogoutDialog","LogoutConfirm","useConfirmDialog","adminClient","error","onClickSignOut","session","keycloak","jsxs","Fragment","KeycloakDataTable","ToolbarItem","Button","ListEmptyState"],"mappings":"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","x_google_ignoreList":[0]}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy