import React, { useEffect, useRef, useState } from 'react'; import { CopyToClipboard } from 'react-copy-to-clipboard'; import Avatar from '@/_ui/Avatar'; import cx from 'classnames'; import { Pagination } from '@/_components'; import SolidIcon from '@/_ui/Icon/SolidIcons'; import { Tooltip } from 'react-tooltip'; import UsersActionMenu from './components/UsersActionMenu'; import { humanizeifDefaultGroupName, decodeEntities } from '@/_helpers/utils'; import { ResetPasswordModal } from '@/_components/ResetPasswordModal'; import OverflowTooltip from '@/_components/OverflowTooltip'; import { NoActiveWorkspaceModal } from './components/NoActiveWorkspaceModal'; import Spinner from 'react-bootstrap/Spinner'; import { ToolTip } from '@/_components/ToolTip'; const UsersTable = ({ isLoading, users, archivingUser, unarchivingUser, generateInvitationURL, invitationLinkCopyHandler, unarchiveOrgUser, archiveOrgUser, meta, pageChanged, darkMode, translator, isLoadingAllUsers, openOrganizationModal, openEditModal, customStyles, toggleEditUserDrawer, resetPassword = false, wsSettings = false, }) => { const [isResetPasswordModalVisible, setIsResetPasswordModalVisible] = useState(false); const [selectedUser, setSelectedUser] = useState(null); const [showNoActiveWorkspaceModal, setShowNoActiveWorkspaceModal] = useState(false); const hideAccountSetupLink = window.public_config?.HIDE_ACCOUNT_SETUP_LINK == 'true'; function showMetadataIcon(metadata) { for (const [key, value] of Object.entries(metadata)) { // Check if both key and value are not empty if (key.trim() !== '' && value.trim() !== '') { return true; } } return false; // Return false if no completely filled key-value pair is found } const handleResetPasswordClick = (user) => { setSelectedUser(user); setIsResetPasswordModalVisible(true); }; return (
| {translator('header.organization.menus.manageUsers.name', 'Name')} | {wsSettings && (Metadata | )} {!isLoadingAllUsers && (User role | )} {isLoadingAllUsers && ({translator('header.organization.menus.manageUsers.userType', 'Type')} | )} {!isLoadingAllUsers && (Custom groups | )} {users && users[0]?.status ? ({translator('header.organization.menus.manageUsers.status', 'Status')} | ) : ()} {isLoadingAllUsers && ( | {translator('header.organization.menus.manageUsers.workspaces', 'Workspaces')} | )}|||
|---|---|---|---|---|---|---|---|---|---|---|
|
|
{wsSettings && (
{showMetadataIcon(user?.user_metadata) ? '{..}' : '-'}
|
)}
{isLoadingAllUsers && (
{user.user_type} | )} {!isLoadingAllUsers && (
{user.status}
{user.status === 'invited' && !hideAccountSetupLink && user?.invitation_token ? (
Copy link |
)}
{isLoadingAllUsers && (
0 ? () => openOrganizationModal(user) : () => { setShowNoActiveWorkspaceModal(true); } } data-cy={`${user.name.toLowerCase().replace(/\s+/g, '-')}-user-view-button`} > View ({user.total_organizations}) | )}
|