Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,11 @@ export interface UserInfoHeaderState {
*/
onMemberAvatarClick: () => void;
/**
* Object containing information about the precense of the selected user
* Object containing information about the presence of the selected user
*/
precenseInfo: PresenceInfo;
presenceInfo: PresenceInfo;
/**
* Boolean that show or hide the precense information
* Boolean that show or hide the presence information
*/
showPresence: boolean;
/**
Expand All @@ -59,12 +59,12 @@ interface UserInfoHeaderViewModelProps {
* props
* @see {@link UserInfoHeaderState} for more information about what this view model returns.
*/
export function useUserfoHeaderViewModel({ member, roomId }: UserInfoHeaderViewModelProps): UserInfoHeaderState {
export function useUserInfoHeaderViewModel({ member, roomId }: UserInfoHeaderViewModelProps): UserInfoHeaderState {
const cli = useContext(MatrixClientContext);

let showPresence = true;

const precenseInfo: PresenceInfo = {
const presenceInfo: PresenceInfo = {
lastActiveAgo: undefined,
currentlyActive: undefined,
state: undefined,
Expand Down Expand Up @@ -96,9 +96,9 @@ export function useUserfoHeaderViewModel({ member, roomId }: UserInfoHeaderViewM
}, [member]);

if (member instanceof RoomMember && member.user) {
precenseInfo.state = member.user.presence;
precenseInfo.lastActiveAgo = member.user.lastActiveAgo;
precenseInfo.currentlyActive = member.user.currentlyActive;
presenceInfo.state = member.user.presence;
presenceInfo.lastActiveAgo = member.user.lastActiveAgo;
presenceInfo.currentlyActive = member.user.currentlyActive;
}

if (enablePresenceByHsUrl && enablePresenceByHsUrl[cli.baseUrl] !== undefined) {
Expand All @@ -108,7 +108,7 @@ export function useUserfoHeaderViewModel({ member, roomId }: UserInfoHeaderViewM
return {
onMemberAvatarClick,
showPresence,
precenseInfo,
presenceInfo,
timezoneInfo,
userIdentifier,
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import React, { type JSX } from "react";
import { type User, type RoomMember } from "matrix-js-sdk/src/matrix";
import { Heading, Tooltip, Text } from "@vector-im/compound-web";

import { useUserfoHeaderViewModel } from "../../../viewmodels/right_panel/user_info/UserInfoHeaderViewModel";
import { useUserInfoHeaderViewModel } from "../../../viewmodels/right_panel/user_info/UserInfoHeaderViewModel";
import MemberAvatar from "../../avatars/MemberAvatar";
import { Container, type Member, type IDevice } from "../UserInfo";
import { Flex } from "../../../../shared-components/utils/Flex";
Expand All @@ -30,7 +30,7 @@ export const UserInfoHeaderView: React.FC<UserInfoHeaderViewProps> = ({
roomId,
hideVerificationSection,
}) => {
const vm = useUserfoHeaderViewModel({ member, roomId });
const vm = useUserInfoHeaderViewModel({ member, roomId });
const avatarUrl = (member as User).avatarUrl;
const displayName = (member as RoomMember).rawDisplayName;

Expand All @@ -39,9 +39,9 @@ export const UserInfoHeaderView: React.FC<UserInfoHeaderViewProps> = ({
if (vm.showPresence) {
presenceLabel = (
<PresenceLabel
activeAgo={vm.precenseInfo.lastActiveAgo}
currentlyActive={vm.precenseInfo.currentlyActive}
presenceState={vm.precenseInfo.state}
activeAgo={vm.presenceInfo.lastActiveAgo}
currentlyActive={vm.presenceInfo.currentlyActive}
presenceState={vm.presenceInfo.state}
className="mx_UserInfo_profileStatus"
coloured
/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import { renderHook } from "jest-matrix-react";

import { withClientContextRenderOptions } from "../../../../../test-utils";
import { MatrixClientPeg } from "../../../../../../src/MatrixClientPeg";
import { useUserfoHeaderViewModel } from "../../../../../../src/components/viewmodels/right_panel/user_info/UserInfoHeaderViewModel";
import { useUserInfoHeaderViewModel } from "../../../../../../src/components/viewmodels/right_panel/user_info/UserInfoHeaderViewModel";
import * as UseTimezone from "../../../../../../src/hooks/useUserTimezone";
import SdkConfig from "../../../../../../src/SdkConfig";
import Modal from "../../../../../../src/Modal";
Expand Down Expand Up @@ -88,7 +88,7 @@ describe("useUserInfoHeaderViewModel", () => {
});

const renderUserInfoHeaderViewModelHook = (props = defaultProps) => {
return renderHook(() => useUserfoHeaderViewModel(props), withClientContextRenderOptions(mockClient));
return renderHook(() => useUserInfoHeaderViewModel(props), withClientContextRenderOptions(mockClient));
};
it("should give user timezone info", () => {
const defaultTZ = { timezone: "FR", friendly: "fr" };
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,13 @@ import { MatrixClientPeg } from "../../../../../src/MatrixClientPeg";
import MatrixClientContext from "../../../../../src/contexts/MatrixClientContext";
import { UserInfoHeaderView } from "../../../../../src/components/views/right_panel/user_info/UserInfoHeaderView";
import { createTestClient } from "../../../../test-utils";
import { useUserfoHeaderViewModel } from "../../../../../src/components/viewmodels/right_panel/user_info/UserInfoHeaderViewModel";
import { useUserInfoHeaderViewModel } from "../../../../../src/components/viewmodels/right_panel/user_info/UserInfoHeaderViewModel";

// Mock the viewmodel hooks
jest.mock("../../../../../src/components/viewmodels/right_panel/user_info/UserInfoHeaderViewModel", () => ({
useUserfoHeaderViewModel: jest.fn().mockReturnValue({
useUserInfoHeaderViewModel: jest.fn().mockReturnValue({
onMemberAvatarClick: jest.fn(),
precenseInfo: {
presenceInfo: {
lastActiveAgo: undefined,
currentlyActive: undefined,
state: undefined,
Expand Down Expand Up @@ -114,9 +114,9 @@ describe("<UserInfoHeaderView />", () => {
});

it("should not render verification view if hideVerificationSection is true", () => {
mocked(useUserfoHeaderViewModel).mockReturnValue({
mocked(useUserInfoHeaderViewModel).mockReturnValue({
onMemberAvatarClick: jest.fn(),
precenseInfo: {
presenceInfo: {
lastActiveAgo: undefined,
currentlyActive: undefined,
state: undefined,
Expand All @@ -133,9 +133,9 @@ describe("<UserInfoHeaderView />", () => {
});

it("should render timezone if it exist", () => {
mocked(useUserfoHeaderViewModel).mockReturnValue({
mocked(useUserInfoHeaderViewModel).mockReturnValue({
onMemberAvatarClick: jest.fn(),
precenseInfo: {
presenceInfo: {
lastActiveAgo: undefined,
currentlyActive: undefined,
state: undefined,
Expand All @@ -153,9 +153,9 @@ describe("<UserInfoHeaderView />", () => {
});

it("should render correct presence label", () => {
mocked(useUserfoHeaderViewModel).mockReturnValue({
mocked(useUserInfoHeaderViewModel).mockReturnValue({
onMemberAvatarClick: jest.fn(),
precenseInfo: {
presenceInfo: {
lastActiveAgo: 0,
currentlyActive: true,
state: "online",
Expand All @@ -171,9 +171,9 @@ describe("<UserInfoHeaderView />", () => {

it("should be able to click on member avatar", () => {
const onMemberAvatarClick = jest.fn();
mocked(useUserfoHeaderViewModel).mockReturnValue({
mocked(useUserInfoHeaderViewModel).mockReturnValue({
onMemberAvatarClick,
precenseInfo: {
presenceInfo: {
lastActiveAgo: undefined,
currentlyActive: undefined,
state: undefined,
Expand Down
Loading