Skip to content

Commit 324a280

Browse files
committed
test: mvvm userinfoadmintools and view
1 parent 75950d8 commit 324a280

File tree

5 files changed

+813
-449
lines changed

5 files changed

+813
-449
lines changed

src/components/viewmodels/right_panel/UserInfoAdminToolsContainerViewModel.tsx

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import ConfirmUserActionDialog from "../../views/dialogs/ConfirmUserActionDialog
1717
import ErrorDialog from "../../views/dialogs/ErrorDialog";
1818
import BulkRedactDialog from "../../views/dialogs/BulkRedactDialog";
1919

20-
interface RoomAdminToolsProps {
20+
export interface RoomAdminToolsProps {
2121
room: Room;
2222
member: RoomMember;
2323
isUpdating: boolean;
@@ -122,7 +122,7 @@ export function useRoomKickButtonViewModel( props: RoomAdminToolsProps ): RoomKi
122122
});
123123
};
124124

125-
const canUserBeKicked = member.membership !== KnownMembership.Invite && member.membership !== KnownMembership.Join;
125+
const canUserBeKicked = member.membership === KnownMembership.Invite || member.membership === KnownMembership.Join;
126126

127127
const kickLabel = room.isSpaceRoom()
128128
? member.membership === KnownMembership.Invite
@@ -149,7 +149,7 @@ export interface RedactMessagesButtonState {
149149
* @param member - the member to redact messages for
150150
* @returns the redact messages button state
151151
*/
152-
export const userRedactMessagesButtonViewModel = (member: RoomMember): RedactMessagesButtonState => {
152+
export const useRedactMessagesButtonViewModel = (member: RoomMember): RedactMessagesButtonState => {
153153
const cli = useContext(MatrixClientContext);
154154

155155
const onRedactAllMessagesClick = (): void => {
@@ -168,12 +168,12 @@ export const userRedactMessagesButtonViewModel = (member: RoomMember): RedactMes
168168
};
169169
};
170170

171-
export interface BanToggleButtonState {
171+
export interface BanButtonState {
172172
onBanOrUnbanClick: () => void;
173173
banLabel: string;
174174
}
175175

176-
export const userBanToggleButtonViewModel = (props: RoomAdminToolsProps): BanToggleButtonState => {
176+
export const useBanButtonViewModel = (props: RoomAdminToolsProps): BanButtonState => {
177177
const { isUpdating, startUpdating, stopUpdating, room, member } = props;
178178

179179
const cli = useContext(MatrixClientContext);
@@ -281,17 +281,17 @@ export const userBanToggleButtonViewModel = (props: RoomAdminToolsProps): BanTog
281281
stopUpdating();
282282
});
283283
};
284-
284+
285285
return {
286286
onBanOrUnbanClick,
287287
banLabel,
288288
};
289-
}
289+
};
290290

291291
interface MuteButtonState {
292292
isMemberInTheRoom: boolean;
293293
muteLabel: string;
294-
onMutebuttonClick: () => void;
294+
onMuteButtonClick: () => void;
295295
}
296296

297297
export const useMuteButtonViewModel = (props: RoomAdminToolsProps): MuteButtonState => {
@@ -320,7 +320,7 @@ export const useMuteButtonViewModel = (props: RoomAdminToolsProps): MuteButtonSt
320320

321321
const isMemberInTheRoom = member.membership !== KnownMembership.Join;
322322

323-
const onMutebuttonClick = async (): Promise<void> => {
323+
const onMuteButtonClick = async (): Promise<void> => {
324324
if (isUpdating) return; // only allow one operation at a time
325325
startUpdating();
326326

@@ -367,7 +367,7 @@ export const useMuteButtonViewModel = (props: RoomAdminToolsProps): MuteButtonSt
367367

368368
return {
369369
isMemberInTheRoom,
370-
onMutebuttonClick,
370+
onMuteButtonClick,
371371
muteLabel,
372372
};
373373
};
@@ -380,7 +380,7 @@ interface UserInfoAdminToolsContainerState {
380380
isCurrentUserInTheRoom: boolean;
381381
}
382382

383-
interface RoomAdminToolsContainerProps {
383+
export interface RoomAdminToolsContainerProps {
384384
room: Room;
385385
member: RoomMember;
386386
powerLevels: IPowerLevelsContent;

src/components/views/right_panel/user_info/UserInfoAdminToolsContainer.tsx

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,13 @@ import LeaveIcon from "@vector-im/compound-design-tokens/assets/web/icons/leave"
1919

2020
import { _t } from "../../../../languageHandler";
2121
import { IPowerLevelsContent } from "../UserInfo";
22-
import { useMuteButtonViewModel, userBanToggleButtonViewModel, useRoomKickButtonViewModel, userRedactMessagesButtonViewModel, useUserInfoAdminToolsContainerViewModel } from "../../../viewmodels/right_panel/UserInfoAdminToolsContainerViewModel";
22+
import {
23+
useMuteButtonViewModel,
24+
useBanButtonViewModel,
25+
useRoomKickButtonViewModel,
26+
useRedactMessagesButtonViewModel,
27+
useUserInfoAdminToolsContainerViewModel,
28+
} from "../../../viewmodels/right_panel/UserInfoAdminToolsContainerViewModel";
2329

2430

2531

@@ -49,7 +55,7 @@ export const RoomKickButton = ({
4955
}: Omit<IBaseRoomProps, "powerLevels">): JSX.Element | null => {
5056
const vm = useRoomKickButtonViewModel({room, member, isUpdating, startUpdating, stopUpdating});
5157
// check if user can be kicked/disinvited
52-
if (vm.canUserBeKicked) return <></>;
58+
if (!vm.canUserBeKicked) return <></>;
5359

5460
return (
5561
<MenuItem
@@ -67,7 +73,7 @@ export const RoomKickButton = ({
6773
};
6874

6975
const RedactMessagesButton: React.FC<IBaseProps> = ({ member }) => {
70-
const vm = userRedactMessagesButtonViewModel(member);
76+
const vm = useRedactMessagesButtonViewModel(member);
7177

7278
return (
7379
<MenuItem
@@ -91,7 +97,7 @@ export const BanToggleButton = ({
9197
stopUpdating,
9298
}: Omit<IBaseRoomProps, "powerLevels">): JSX.Element => {
9399

94-
const vm = userBanToggleButtonViewModel({room, member, isUpdating, startUpdating, stopUpdating});
100+
const vm = useBanButtonViewModel({ room, member, isUpdating, startUpdating, stopUpdating });
95101

96102
return (
97103
<MenuItem
@@ -134,7 +140,7 @@ const MuteToggleButton: React.FC<IBaseRoomProps> = ({
134140
role="button"
135141
onSelect={async (ev) => {
136142
ev.preventDefault();
137-
vm.onMutebuttonClick();
143+
vm.onMuteButtonClick();
138144
}}
139145
disabled={isUpdating}
140146
label={vm.muteLabel}

0 commit comments

Comments
 (0)