From f9d59adefd3c2a43c878a92a33cff18fadb1f7d3 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Tue, 4 Mar 2025 10:28:06 +0000 Subject: [PATCH 1/2] Remove buggy tooltip on room intro & homepage Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- .../views/elements/MiniAvatarUploader.tsx | 45 +++++++------------ .../elements/MiniAvatarUploader-test.tsx | 4 +- 2 files changed, 18 insertions(+), 31 deletions(-) diff --git a/src/components/views/elements/MiniAvatarUploader.tsx b/src/components/views/elements/MiniAvatarUploader.tsx index a6328816ed3..49a908d854a 100644 --- a/src/components/views/elements/MiniAvatarUploader.tsx +++ b/src/components/views/elements/MiniAvatarUploader.tsx @@ -9,10 +9,8 @@ Please see LICENSE files in the repository root for full details. import classNames from "classnames"; import { EventType } from "matrix-js-sdk/src/matrix"; import React, { useContext, useRef, useState, type MouseEvent, type ReactNode } from "react"; -import { Tooltip } from "@vector-im/compound-web"; import MatrixClientContext from "../../../contexts/MatrixClientContext"; -import { useTimeout } from "../../../hooks/useTimeout"; import { chromeFileInputFix } from "../../../utils/BrowserWorkarounds"; import AccessibleButton from "./AccessibleButton"; import Spinner from "./Spinner"; @@ -42,15 +40,6 @@ const MiniAvatarUploader: React.FC = ({ }) => { const cli = useContext(MatrixClientContext); const [busy, setBusy] = useState(false); - const [hover, setHover] = useState(false); - const [show, setShow] = useState(false); - - useTimeout(() => { - setShow(true); - }, 3000); // show after 3 seconds - useTimeout(() => { - setShow(false); - }, 13000); // hide after being shown for 10 seconds const uploadRef = useRef(null); @@ -61,7 +50,6 @@ const MiniAvatarUploader: React.FC = ({ isUserAvatar || room?.currentState?.maySendStateEvent(EventType.RoomAvatar, cli.getSafeUserId()); if (!canSetAvatar) return {children}; - const visible = !!label && (hover || show); return ( = ({ accept="image/*" /> - - { - uploadRef.current?.click(); - }} - > - {children} + { + uploadRef.current?.click(); + }} + aria-label={label} + > + {children} -
- {busy ? :
} -
- - +
+ {busy ? :
} +
+ ); }; diff --git a/test/unit-tests/components/views/elements/MiniAvatarUploader-test.tsx b/test/unit-tests/components/views/elements/MiniAvatarUploader-test.tsx index 5b451c44b4e..f6d2c07bc97 100644 --- a/test/unit-tests/components/views/elements/MiniAvatarUploader-test.tsx +++ b/test/unit-tests/components/views/elements/MiniAvatarUploader-test.tsx @@ -26,12 +26,12 @@ describe("", () => { const setAvatarUrl = jest.fn(); const user = userEvent.setup(); - const { container, findByText } = render( + const { container, findByLabelText } = render( , withClientContextRenderOptions(cli), ); - await findByText("Upload"); + await findByLabelText("Upload"); await user.upload(container.querySelector("input")!, AVATAR_FILE); expect(cli.uploadContent).toHaveBeenCalledWith(AVATAR_FILE); From da33da70691210e8836ddcb570ce8a563bdb1dfe Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Tue, 4 Mar 2025 10:39:21 +0000 Subject: [PATCH 2/2] Add knip ignore Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- knip.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/knip.ts b/knip.ts index 17ad531332a..0188e096e5c 100644 --- a/knip.ts +++ b/knip.ts @@ -19,6 +19,7 @@ export default { ignore: [ // Keep for now "src/hooks/useLocalStorageState.ts", + "src/hooks/useTimeout.ts", "src/components/views/elements/InfoTooltip.tsx", "src/components/views/elements/StyledCheckbox.tsx", ],