diff --git a/openmetadata-ui/src/main/resources/ui/src/components/ActivityFeed/ActivityFeedCard/ActivityFeedCard.tsx b/openmetadata-ui/src/main/resources/ui/src/components/ActivityFeed/ActivityFeedCard/ActivityFeedCard.tsx index 3a86ddae2b9..3b7ec8d44b4 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/ActivityFeed/ActivityFeedCard/ActivityFeedCard.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/ActivityFeed/ActivityFeedCard/ActivityFeedCard.tsx @@ -11,13 +11,16 @@ * limitations under the License. */ +import { AxiosResponse } from 'axios'; import classNames from 'classnames'; import { isUndefined, toLower } from 'lodash'; import { Post } from 'Models'; -import React, { FC, Fragment, HTMLAttributes } from 'react'; +import React, { FC, Fragment, HTMLAttributes, useState } from 'react'; import { Link } from 'react-router-dom'; import AppState from '../../../AppState'; +import { getUserByName } from '../../../axiosAPIs/userAPI'; import { TabSpecificField } from '../../../enums/entity.enum'; +import { User } from '../../../generated/entity/teams/user'; import { getPartialNameFromFQN } from '../../../utils/CommonUtils'; import { getEntityField, @@ -26,10 +29,13 @@ import { getFrontEndFormat, getReplyText, } from '../../../utils/FeedUtils'; +import SVGIcons, { Icons } from '../../../utils/SvgUtils'; import { getEntityLink } from '../../../utils/TableUtils'; import { getDayTimeByTimeStamp } from '../../../utils/TimeUtils'; import Avatar from '../../common/avatar/Avatar'; +import PopOver from '../../common/popover/PopOver'; import RichTextEditorPreviewer from '../../common/rich-text-editor/RichTextEditorPreviewer'; +import Loader from '../../Loader/Loader'; interface ActivityFeedCardProp extends HTMLAttributes { feed: Post; @@ -75,9 +81,122 @@ const FeedHeader: FC = ({ entityField, isEntityFeed, }) => { + const [userData, setUserData] = useState({} as User); + const [isLoading, setIsLoading] = useState(true); + const [isError, setIsError] = useState(false); + + const onMousEnterHandler = () => { + getUserByName(createdBy, 'profile,roles,teams,follows,owns') + .then((res: AxiosResponse) => { + setUserData(res.data); + }) + .catch(() => { + setIsError(true); + }) + .finally(() => setIsLoading(false)); + }; + + const getUserData = () => { + const image = userData.profile?.images?.image512; + const displayName = userData.displayName ?? ''; + const name = userData.name ?? ''; + const teams = userData.teams; + const roles = userData.roles; + + return ( + + {isError ? ( +

Error while getting user data.

+ ) : ( +
+ {isLoading ? ( + + ) : ( +
+
+
+ {image ? ( + + ) : ( + + )} +
+
+

+ + {displayName} + + {name} +

+
+
+
+ {teams?.length || roles?.length ? ( +
+ ) : null} + {teams?.length ? ( +

+ + + Teams + + + {teams.map((team, i) => ( + + {team?.displayName ?? team?.name} + + ))} + +

+ ) : null} + {roles?.length ? ( +

+ + + Roles + + + {roles.map((role, i) => ( + + {role?.displayName ?? role?.name} + + ))} + +

+ ) : null} +
+
+ )} +
+ )} +
+ ); + }; + return (
- + + + + +
{createdBy} {entityFQN && entityType && entityFQN ? ( diff --git a/openmetadata-ui/src/main/resources/ui/src/components/Modals/UserDetailsModal/UserDetailsModal.tsx b/openmetadata-ui/src/main/resources/ui/src/components/Modals/UserDetailsModal/UserDetailsModal.tsx index 9d10eb9261b..d6fa9b8cab5 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/Modals/UserDetailsModal/UserDetailsModal.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/Modals/UserDetailsModal/UserDetailsModal.tsx @@ -108,19 +108,6 @@ const UserDetailsModal = ({ {userData.displayName || userData.name} - - {userData.deleted ? ( - Inactive - ) : ( - Active - )} -

{userData.name}| diff --git a/openmetadata-ui/src/main/resources/ui/src/components/Users/Users.component.tsx b/openmetadata-ui/src/main/resources/ui/src/components/Users/Users.component.tsx index cc6e841eaaf..c98f3531b34 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/Users/Users.component.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/Users/Users.component.tsx @@ -1,4 +1,3 @@ -import classNames from 'classnames'; import React, { useState } from 'react'; import { EntityReference, User } from '../../generated/entity/teams/user'; import UserCard from '../../pages/teams/UserCard'; @@ -66,17 +65,6 @@ const Users = ({ userData }: Props) => { {userData.displayName || userData.name} - - {userData.deleted ? ( - Inactive - ) : ( - Active - )} -

{userData.email}