Compare commits

...

2 Commits

Author SHA1 Message Date
Hugh Nimmo-Smith
7b3fcec933 Merge branch 'develop' into hughns/user-info-typos 2025-09-05 16:10:01 +01:00
Hugh Nimmo-Smith
6ed1633db2 Fix some typos in presence and user info 2025-09-01 10:53:04 +01:00
4 changed files with 27 additions and 27 deletions

View File

@@ -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;
/**
@@ -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,
@@ -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) {
@@ -108,7 +108,7 @@ export function useUserfoHeaderViewModel({ member, roomId }: UserInfoHeaderViewM
return {
onMemberAvatarClick,
showPresence,
precenseInfo,
presenceInfo,
timezoneInfo,
userIdentifier,
};

View File

@@ -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";
@@ -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;
@@ -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
/>

View File

@@ -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";
@@ -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" };

View File

@@ -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,
@@ -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,
@@ -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,
@@ -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",
@@ -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,