From 463cc0f9ec9a14a44e59e9fa9e6ee9c5229c07c8 Mon Sep 17 00:00:00 2001 From: dougfabris Date: Tue, 26 Mar 2024 11:53:49 -0300 Subject: [PATCH 1/9] chore: bump fuselage --- apps/meteor/package.json | 2 +- ee/packages/ui-theming/package.json | 2 +- packages/fuselage-ui-kit/package.json | 2 +- packages/gazzodown/package.json | 2 +- packages/ui-avatar/package.json | 2 +- packages/ui-client/package.json | 2 +- packages/ui-composer/package.json | 2 +- packages/ui-video-conf/package.json | 2 +- packages/uikit-playground/package.json | 2 +- yarn.lock | 26 +++++++++++++------------- 10 files changed, 22 insertions(+), 22 deletions(-) diff --git a/apps/meteor/package.json b/apps/meteor/package.json index 82e93bc4afbaa..272ea4a34b0f0 100644 --- a/apps/meteor/package.json +++ b/apps/meteor/package.json @@ -242,7 +242,7 @@ "@rocket.chat/favicon": "workspace:^", "@rocket.chat/forked-matrix-appservice-bridge": "^4.0.2", "@rocket.chat/forked-matrix-bot-sdk": "^0.6.0-beta.3", - "@rocket.chat/fuselage": "^0.51.1", + "@rocket.chat/fuselage": "^0.52.0", "@rocket.chat/fuselage-hooks": "^0.33.0", "@rocket.chat/fuselage-polyfills": "~0.31.25", "@rocket.chat/fuselage-toastbar": "^0.31.26", diff --git a/ee/packages/ui-theming/package.json b/ee/packages/ui-theming/package.json index e4b2908ff0a75..32b628c6835af 100644 --- a/ee/packages/ui-theming/package.json +++ b/ee/packages/ui-theming/package.json @@ -4,7 +4,7 @@ "private": true, "devDependencies": { "@rocket.chat/css-in-js": "~0.31.25", - "@rocket.chat/fuselage": "^0.51.1", + "@rocket.chat/fuselage": "^0.52.0", "@rocket.chat/fuselage-hooks": "^0.33.0", "@rocket.chat/icons": "^0.34.0", "@rocket.chat/ui-contexts": "workspace:~", diff --git a/packages/fuselage-ui-kit/package.json b/packages/fuselage-ui-kit/package.json index 5ea0207a4ee28..e1bcadefbc127 100644 --- a/packages/fuselage-ui-kit/package.json +++ b/packages/fuselage-ui-kit/package.json @@ -63,7 +63,7 @@ "@babel/preset-typescript": "~7.22.15", "@rocket.chat/apps-engine": "1.42.0-alpha.619", "@rocket.chat/eslint-config": "workspace:^", - "@rocket.chat/fuselage": "^0.51.1", + "@rocket.chat/fuselage": "^0.52.0", "@rocket.chat/fuselage-hooks": "^0.33.0", "@rocket.chat/fuselage-polyfills": "~0.31.25", "@rocket.chat/icons": "^0.34.0", diff --git a/packages/gazzodown/package.json b/packages/gazzodown/package.json index 02965b047e06f..16f3006567253 100644 --- a/packages/gazzodown/package.json +++ b/packages/gazzodown/package.json @@ -6,7 +6,7 @@ "@babel/core": "~7.22.20", "@rocket.chat/core-typings": "workspace:^", "@rocket.chat/css-in-js": "~0.31.25", - "@rocket.chat/fuselage": "^0.51.1", + "@rocket.chat/fuselage": "^0.52.0", "@rocket.chat/fuselage-tokens": "^0.33.0", "@rocket.chat/message-parser": "workspace:^", "@rocket.chat/styled": "~0.31.25", diff --git a/packages/ui-avatar/package.json b/packages/ui-avatar/package.json index c9b5cdf374ec8..87d2d677a2fed 100644 --- a/packages/ui-avatar/package.json +++ b/packages/ui-avatar/package.json @@ -4,7 +4,7 @@ "private": true, "devDependencies": { "@babel/core": "~7.22.20", - "@rocket.chat/fuselage": "^0.51.1", + "@rocket.chat/fuselage": "^0.52.0", "@rocket.chat/ui-contexts": "workspace:^", "@types/babel__core": "~7.20.3", "@types/react": "~17.0.69", diff --git a/packages/ui-client/package.json b/packages/ui-client/package.json index 743e5c616a137..35a601d23d549 100644 --- a/packages/ui-client/package.json +++ b/packages/ui-client/package.json @@ -6,7 +6,7 @@ "@babel/core": "~7.22.20", "@react-aria/toolbar": "^3.0.0-beta.1", "@rocket.chat/css-in-js": "~0.31.25", - "@rocket.chat/fuselage": "^0.51.1", + "@rocket.chat/fuselage": "^0.52.0", "@rocket.chat/fuselage-hooks": "^0.33.0", "@rocket.chat/icons": "^0.34.0", "@rocket.chat/mock-providers": "workspace:^", diff --git a/packages/ui-composer/package.json b/packages/ui-composer/package.json index 37599b373ddd6..fec0f71679373 100644 --- a/packages/ui-composer/package.json +++ b/packages/ui-composer/package.json @@ -6,7 +6,7 @@ "@babel/core": "~7.22.20", "@react-aria/toolbar": "^3.0.0-beta.1", "@rocket.chat/eslint-config": "workspace:^", - "@rocket.chat/fuselage": "^0.51.1", + "@rocket.chat/fuselage": "^0.52.0", "@rocket.chat/icons": "^0.34.0", "@storybook/addon-actions": "~6.5.16", "@storybook/addon-docs": "~6.5.16", diff --git a/packages/ui-video-conf/package.json b/packages/ui-video-conf/package.json index 5648921aebd1e..f622207b728e9 100644 --- a/packages/ui-video-conf/package.json +++ b/packages/ui-video-conf/package.json @@ -6,7 +6,7 @@ "@babel/core": "~7.22.20", "@rocket.chat/css-in-js": "~0.31.25", "@rocket.chat/eslint-config": "workspace:^", - "@rocket.chat/fuselage": "^0.51.1", + "@rocket.chat/fuselage": "^0.52.0", "@rocket.chat/fuselage-hooks": "^0.33.0", "@rocket.chat/icons": "^0.34.0", "@rocket.chat/styled": "~0.31.25", diff --git a/packages/uikit-playground/package.json b/packages/uikit-playground/package.json index c1944a5aacced..a1635b2cbd271 100644 --- a/packages/uikit-playground/package.json +++ b/packages/uikit-playground/package.json @@ -15,7 +15,7 @@ "@codemirror/tooltip": "^0.19.16", "@lezer/highlight": "^1.1.6", "@rocket.chat/css-in-js": "~0.31.25", - "@rocket.chat/fuselage": "^0.51.1", + "@rocket.chat/fuselage": "^0.52.0", "@rocket.chat/fuselage-hooks": "^0.33.0", "@rocket.chat/fuselage-polyfills": "~0.31.25", "@rocket.chat/fuselage-toastbar": "^0.31.26", diff --git a/yarn.lock b/yarn.lock index dba696d109dc2..ba550482d1190 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8732,7 +8732,7 @@ __metadata: "@babel/preset-typescript": ~7.22.15 "@rocket.chat/apps-engine": 1.42.0-alpha.619 "@rocket.chat/eslint-config": "workspace:^" - "@rocket.chat/fuselage": ^0.51.1 + "@rocket.chat/fuselage": ^0.52.0 "@rocket.chat/fuselage-hooks": ^0.33.0 "@rocket.chat/fuselage-polyfills": ~0.31.25 "@rocket.chat/gazzodown": "workspace:^" @@ -8787,9 +8787,9 @@ __metadata: languageName: unknown linkType: soft -"@rocket.chat/fuselage@npm:^0.51.1": - version: 0.51.1 - resolution: "@rocket.chat/fuselage@npm:0.51.1" +"@rocket.chat/fuselage@npm:^0.52.0": + version: 0.52.0 + resolution: "@rocket.chat/fuselage@npm:0.52.0" dependencies: "@rocket.chat/css-in-js": ^0.31.25 "@rocket.chat/css-supports": ^0.31.25 @@ -8807,7 +8807,7 @@ __metadata: react: ^17.0.2 react-dom: ^17.0.2 react-virtuoso: 1.2.4 - checksum: f7f49a59d67a485a4aff8aa2684fb0bb290c73b643763c867da23ed00c19994b24b994c554d2bd63d48657ca7fdfbff9bf34bbe2436376972809b56cb15ee456 + checksum: 518c96ad67dcb2395c6299842250c1e87959e53ee54fee2bb4d813a41a8e78913e599adc4c73258f7e99249bb2351cf8b94dd8a3bfb2ba5473aa80f051cfac40 languageName: node linkType: hard @@ -8818,7 +8818,7 @@ __metadata: "@babel/core": ~7.22.20 "@rocket.chat/core-typings": "workspace:^" "@rocket.chat/css-in-js": ~0.31.25 - "@rocket.chat/fuselage": ^0.51.1 + "@rocket.chat/fuselage": ^0.52.0 "@rocket.chat/fuselage-tokens": ^0.33.0 "@rocket.chat/message-parser": "workspace:^" "@rocket.chat/styled": ~0.31.25 @@ -9178,7 +9178,7 @@ __metadata: "@rocket.chat/favicon": "workspace:^" "@rocket.chat/forked-matrix-appservice-bridge": ^4.0.2 "@rocket.chat/forked-matrix-bot-sdk": ^0.6.0-beta.3 - "@rocket.chat/fuselage": ^0.51.1 + "@rocket.chat/fuselage": ^0.52.0 "@rocket.chat/fuselage-hooks": ^0.33.0 "@rocket.chat/fuselage-polyfills": ~0.31.25 "@rocket.chat/fuselage-toastbar": ^0.31.26 @@ -10060,7 +10060,7 @@ __metadata: resolution: "@rocket.chat/ui-avatar@workspace:packages/ui-avatar" dependencies: "@babel/core": ~7.22.20 - "@rocket.chat/fuselage": ^0.51.1 + "@rocket.chat/fuselage": ^0.52.0 "@rocket.chat/ui-contexts": "workspace:^" "@types/babel__core": ~7.20.3 "@types/react": ~17.0.69 @@ -10086,7 +10086,7 @@ __metadata: "@babel/core": ~7.22.20 "@react-aria/toolbar": ^3.0.0-beta.1 "@rocket.chat/css-in-js": ~0.31.25 - "@rocket.chat/fuselage": ^0.51.1 + "@rocket.chat/fuselage": ^0.52.0 "@rocket.chat/fuselage-hooks": ^0.33.0 "@rocket.chat/icons": ^0.34.0 "@rocket.chat/mock-providers": "workspace:^" @@ -10139,7 +10139,7 @@ __metadata: "@babel/core": ~7.22.20 "@react-aria/toolbar": ^3.0.0-beta.1 "@rocket.chat/eslint-config": "workspace:^" - "@rocket.chat/fuselage": ^0.51.1 + "@rocket.chat/fuselage": ^0.52.0 "@rocket.chat/icons": ^0.34.0 "@storybook/addon-actions": ~6.5.16 "@storybook/addon-docs": ~6.5.16 @@ -10231,7 +10231,7 @@ __metadata: resolution: "@rocket.chat/ui-theming@workspace:ee/packages/ui-theming" dependencies: "@rocket.chat/css-in-js": ~0.31.25 - "@rocket.chat/fuselage": ^0.51.1 + "@rocket.chat/fuselage": ^0.52.0 "@rocket.chat/fuselage-hooks": ^0.33.0 "@rocket.chat/icons": ^0.34.0 "@rocket.chat/ui-contexts": "workspace:~" @@ -10274,7 +10274,7 @@ __metadata: "@rocket.chat/css-in-js": ~0.31.25 "@rocket.chat/emitter": ~0.31.25 "@rocket.chat/eslint-config": "workspace:^" - "@rocket.chat/fuselage": ^0.51.1 + "@rocket.chat/fuselage": ^0.52.0 "@rocket.chat/fuselage-hooks": ^0.33.0 "@rocket.chat/icons": ^0.34.0 "@rocket.chat/styled": ~0.31.25 @@ -10319,7 +10319,7 @@ __metadata: "@codemirror/tooltip": ^0.19.16 "@lezer/highlight": ^1.1.6 "@rocket.chat/css-in-js": ~0.31.25 - "@rocket.chat/fuselage": ^0.51.1 + "@rocket.chat/fuselage": ^0.52.0 "@rocket.chat/fuselage-hooks": ^0.33.0 "@rocket.chat/fuselage-polyfills": ~0.31.25 "@rocket.chat/fuselage-toastbar": ^0.31.26 From 723ce89aaabd24485387f1bb267d1bd078821145 Mon Sep 17 00:00:00 2001 From: dougfabris Date: Tue, 26 Mar 2024 12:31:17 -0300 Subject: [PATCH 2/9] fix: messages role --- .../components/message/MessageContentBody.tsx | 7 ++++--- .../client/components/message/MessageHeader.tsx | 5 ++++- .../components/message/variants/RoomMessage.tsx | 4 +++- .../message/variants/SystemMessage.tsx | 3 ++- .../message/variants/ThreadMessage.tsx | 3 ++- .../message/variants/ThreadMessagePreview.tsx | 3 ++- .../message/variants/room/RoomMessageContent.tsx | 1 + .../views/room/MessageList/MessageList.tsx | 6 +++--- apps/meteor/client/views/room/body/RoomBody.tsx | 4 ++-- .../Threads/components/ThreadMessageList.tsx | 16 +++++----------- .../views/room/hooks/useMessageListNavigation.ts | 12 ++---------- 11 files changed, 30 insertions(+), 34 deletions(-) diff --git a/apps/meteor/client/components/message/MessageContentBody.tsx b/apps/meteor/client/components/message/MessageContentBody.tsx index b3c612fbe7251..ada90d48e0a37 100644 --- a/apps/meteor/client/components/message/MessageContentBody.tsx +++ b/apps/meteor/client/components/message/MessageContentBody.tsx @@ -1,5 +1,6 @@ import { MessageBody, Skeleton } from '@rocket.chat/fuselage'; import { Markup } from '@rocket.chat/gazzodown'; +import type { ComponentProps } from 'react'; import React, { Suspense } from 'react'; import type { MessageWithMdEnforced } from '../../lib/parseMessageTextToAstMarkdown'; @@ -7,10 +8,10 @@ import GazzodownText from '../GazzodownText'; type MessageContentBodyProps = Pick & { searchText?: string; -}; +} & ComponentProps; -const MessageContentBody = ({ mentions, channels, md, searchText }: MessageContentBodyProps) => ( - +const MessageContentBody = ({ mentions, channels, md, searchText, ...props }: MessageContentBodyProps) => ( + }> diff --git a/apps/meteor/client/components/message/MessageHeader.tsx b/apps/meteor/client/components/message/MessageHeader.tsx index a6ad5feaff966..487c390a973f3 100644 --- a/apps/meteor/client/components/message/MessageHeader.tsx +++ b/apps/meteor/client/components/message/MessageHeader.tsx @@ -47,6 +47,7 @@ const MessageHeader = ({ message }: MessageHeaderProps): ReactElement => { openUserCard(e, message.u.username)} onKeyDown={(e: KeyboardEvent) => { @@ -72,7 +73,9 @@ const MessageHeader = ({ message }: MessageHeaderProps): ReactElement => { )} {shouldShowRolesList && } - {formatTime(message.ts)} + + {formatTime(message.ts)} + {message.private && {t('Only_you_can_see_this_message')}} diff --git a/apps/meteor/client/components/message/variants/RoomMessage.tsx b/apps/meteor/client/components/message/variants/RoomMessage.tsx index c17eb89c45962..65c30e0d8492f 100644 --- a/apps/meteor/client/components/message/variants/RoomMessage.tsx +++ b/apps/meteor/client/components/message/variants/RoomMessage.tsx @@ -65,8 +65,10 @@ const RoomMessage = ({ e.code === 'Enter' && handleThreadClick()} isSelected={isSelected} data-qa-selected={isSelected} - role='link' {...props} > {!sequential && ( diff --git a/apps/meteor/client/components/message/variants/room/RoomMessageContent.tsx b/apps/meteor/client/components/message/variants/room/RoomMessageContent.tsx index 7f4cf6694b7a9..29932e2762153 100644 --- a/apps/meteor/client/components/message/variants/room/RoomMessageContent.tsx +++ b/apps/meteor/client/components/message/variants/room/RoomMessageContent.tsx @@ -50,6 +50,7 @@ const RoomMessageContent = ({ message, unread, all, mention, searchText }: RoomM <> {(!encrypted || normalizedMessage.e2e === 'done') && ( +
  • - +
  • ); })} diff --git a/apps/meteor/client/views/room/body/RoomBody.tsx b/apps/meteor/client/views/room/body/RoomBody.tsx index ee677d4146213..52231b079d1a5 100644 --- a/apps/meteor/client/views/room/body/RoomBody.tsx +++ b/apps/meteor/client/views/room/body/RoomBody.tsx @@ -115,7 +115,7 @@ const RoomBody = (): ReactElement => { const { innerRef: restoreScrollPositionInnerRef } = useRestoreScrollPosition(room._id); - const { messageListRef, messageListProps } = useMessageListNavigation(); + const { messageListRef } = useMessageListNavigation(); const { handleNewMessageButtonClick, handleJumpToRecentButtonClick, handleComposerResize, hasNewMessages, newMessagesScrollRef } = useHasNewMessages(room._id, user?._id, atBottomRef, { @@ -283,7 +283,7 @@ const RoomBody = (): ReactElement => { > -
      +
        {canPreview ? ( <> {hasMorePreviousMessages ? ( diff --git a/apps/meteor/client/views/room/contextualBar/Threads/components/ThreadMessageList.tsx b/apps/meteor/client/views/room/contextualBar/Threads/components/ThreadMessageList.tsx index 71b71b74bde66..ab801e27fa62b 100644 --- a/apps/meteor/client/views/room/contextualBar/Threads/components/ThreadMessageList.tsx +++ b/apps/meteor/client/views/room/contextualBar/Threads/components/ThreadMessageList.tsx @@ -4,7 +4,7 @@ import { useMergedRefs } from '@rocket.chat/fuselage-hooks'; import { useSetting, useUserPreference } from '@rocket.chat/ui-contexts'; import { differenceInSeconds } from 'date-fns'; import type { ReactElement } from 'react'; -import React, { Fragment } from 'react'; +import React from 'react'; import { MessageTypes } from '../../../../../../app/ui-utils/client'; import { isTruthy } from '../../../../../../lib/isTruthy'; @@ -64,7 +64,7 @@ const ThreadMessageList = ({ mainMessage }: ThreadMessageListProps): ReactElemen const firstUnreadMessageId = useFirstUnreadMessageId(); const messageGroupingPeriod = Number(useSetting('Message_GroupingPeriod')); - const { messageListRef, messageListProps } = useMessageListNavigation(); + const { messageListRef } = useMessageListNavigation(); const listRef = useMergedRefs(listScrollRef, listJumpRef, messageListRef); const scrollRef = useMergedRefs(innerRef, listWrapperScrollRef); @@ -79,13 +79,7 @@ const ThreadMessageList = ({ mainMessage }: ThreadMessageListProps): ReactElemen }} style={{ scrollBehavior: 'smooth', overflowX: 'hidden' }} > - + {loading ? (
      • @@ -101,7 +95,7 @@ const ThreadMessageList = ({ mainMessage }: ThreadMessageListProps): ReactElemen const system = MessageTypes.isSystemMessage(message); return ( - +
      • - +
      • ); })} diff --git a/apps/meteor/client/views/room/hooks/useMessageListNavigation.ts b/apps/meteor/client/views/room/hooks/useMessageListNavigation.ts index 7a3e0b3c7316a..ddcb7e675ad27 100644 --- a/apps/meteor/client/views/room/hooks/useMessageListNavigation.ts +++ b/apps/meteor/client/views/room/hooks/useMessageListNavigation.ts @@ -3,12 +3,7 @@ import type { RefCallback } from 'react'; import { useCallback } from 'react'; import { useFocusManager } from 'react-aria'; -type MessageListProps = { - 'aria-orientation': 'vertical' | 'horizontal'; -}; - -const isListItem = (node: EventTarget) => - (node as HTMLElement).getAttribute('role') === 'listitem' || (node as HTMLElement).getAttribute('role') === 'link'; +const isListItem = (node: EventTarget) => (node as HTMLElement).getAttribute('role') === 'link'; const isMessageToolbarAction = (node: EventTarget) => (node as HTMLElement).parentElement?.getAttribute('role') === 'toolbar'; const isSystemMessage = (node: EventTarget) => (node as HTMLElement).classList.contains('rcx-message-system'); const isThreadMessage = (node: EventTarget) => (node as HTMLElement).classList.contains('rcx-message-thread'); @@ -17,7 +12,7 @@ const isThreadMessage = (node: EventTarget) => (node as HTMLElement).classList.c * Custom hook to provide the room navigation by keyboard. * @param ref - A ref to the message list DOM element. */ -export const useMessageListNavigation = (): { messageListRef: RefCallback; messageListProps: MessageListProps } => { +export const useMessageListNavigation = (): { messageListRef: RefCallback } => { const roomFocusManager = useFocusManager(); const messageListRef = useCallback( @@ -118,8 +113,5 @@ export const useMessageListNavigation = (): { messageListRef: RefCallback Date: Mon, 1 Apr 2024 17:25:09 -0300 Subject: [PATCH 3/9] chore: bump fuselage --- apps/meteor/package.json | 2 +- ee/packages/ui-theming/package.json | 2 +- packages/fuselage-ui-kit/package.json | 2 +- packages/gazzodown/package.json | 2 +- packages/ui-avatar/package.json | 2 +- packages/ui-client/package.json | 2 +- packages/ui-composer/package.json | 2 +- packages/ui-video-conf/package.json | 2 +- packages/uikit-playground/package.json | 2 +- yarn.lock | 26 +++++++++++++------------- 10 files changed, 22 insertions(+), 22 deletions(-) diff --git a/apps/meteor/package.json b/apps/meteor/package.json index 6552243df1f61..fa7d7238eddef 100644 --- a/apps/meteor/package.json +++ b/apps/meteor/package.json @@ -242,7 +242,7 @@ "@rocket.chat/favicon": "workspace:^", "@rocket.chat/forked-matrix-appservice-bridge": "^4.0.2", "@rocket.chat/forked-matrix-bot-sdk": "^0.6.0-beta.3", - "@rocket.chat/fuselage": "^0.52.0", + "@rocket.chat/fuselage": "^0.53.2", "@rocket.chat/fuselage-hooks": "^0.33.1", "@rocket.chat/fuselage-polyfills": "~0.31.25", "@rocket.chat/fuselage-toastbar": "^0.31.26", diff --git a/ee/packages/ui-theming/package.json b/ee/packages/ui-theming/package.json index b15af1f0ed291..dbe8a13947617 100644 --- a/ee/packages/ui-theming/package.json +++ b/ee/packages/ui-theming/package.json @@ -4,7 +4,7 @@ "private": true, "devDependencies": { "@rocket.chat/css-in-js": "~0.31.25", - "@rocket.chat/fuselage": "^0.52.0", + "@rocket.chat/fuselage": "^0.53.2", "@rocket.chat/fuselage-hooks": "^0.33.1", "@rocket.chat/icons": "^0.34.0", "@rocket.chat/ui-contexts": "workspace:~", diff --git a/packages/fuselage-ui-kit/package.json b/packages/fuselage-ui-kit/package.json index a957cc36aa39a..0b10e94e3295b 100644 --- a/packages/fuselage-ui-kit/package.json +++ b/packages/fuselage-ui-kit/package.json @@ -63,7 +63,7 @@ "@babel/preset-typescript": "~7.22.15", "@rocket.chat/apps-engine": "1.42.0-alpha.619", "@rocket.chat/eslint-config": "workspace:^", - "@rocket.chat/fuselage": "^0.52.0", + "@rocket.chat/fuselage": "^0.53.2", "@rocket.chat/fuselage-hooks": "^0.33.1", "@rocket.chat/fuselage-polyfills": "~0.31.25", "@rocket.chat/icons": "^0.34.0", diff --git a/packages/gazzodown/package.json b/packages/gazzodown/package.json index 16f3006567253..f9eb0cc642856 100644 --- a/packages/gazzodown/package.json +++ b/packages/gazzodown/package.json @@ -6,7 +6,7 @@ "@babel/core": "~7.22.20", "@rocket.chat/core-typings": "workspace:^", "@rocket.chat/css-in-js": "~0.31.25", - "@rocket.chat/fuselage": "^0.52.0", + "@rocket.chat/fuselage": "^0.53.2", "@rocket.chat/fuselage-tokens": "^0.33.0", "@rocket.chat/message-parser": "workspace:^", "@rocket.chat/styled": "~0.31.25", diff --git a/packages/ui-avatar/package.json b/packages/ui-avatar/package.json index 87d2d677a2fed..144c1779e13b8 100644 --- a/packages/ui-avatar/package.json +++ b/packages/ui-avatar/package.json @@ -4,7 +4,7 @@ "private": true, "devDependencies": { "@babel/core": "~7.22.20", - "@rocket.chat/fuselage": "^0.52.0", + "@rocket.chat/fuselage": "^0.53.2", "@rocket.chat/ui-contexts": "workspace:^", "@types/babel__core": "~7.20.3", "@types/react": "~17.0.69", diff --git a/packages/ui-client/package.json b/packages/ui-client/package.json index 513ed76932d68..1552cca63e39c 100644 --- a/packages/ui-client/package.json +++ b/packages/ui-client/package.json @@ -6,7 +6,7 @@ "@babel/core": "~7.22.20", "@react-aria/toolbar": "^3.0.0-beta.1", "@rocket.chat/css-in-js": "~0.31.25", - "@rocket.chat/fuselage": "^0.52.0", + "@rocket.chat/fuselage": "^0.53.2", "@rocket.chat/fuselage-hooks": "^0.33.1", "@rocket.chat/icons": "^0.34.0", "@rocket.chat/mock-providers": "workspace:^", diff --git a/packages/ui-composer/package.json b/packages/ui-composer/package.json index fec0f71679373..3c484c984afdb 100644 --- a/packages/ui-composer/package.json +++ b/packages/ui-composer/package.json @@ -6,7 +6,7 @@ "@babel/core": "~7.22.20", "@react-aria/toolbar": "^3.0.0-beta.1", "@rocket.chat/eslint-config": "workspace:^", - "@rocket.chat/fuselage": "^0.52.0", + "@rocket.chat/fuselage": "^0.53.2", "@rocket.chat/icons": "^0.34.0", "@storybook/addon-actions": "~6.5.16", "@storybook/addon-docs": "~6.5.16", diff --git a/packages/ui-video-conf/package.json b/packages/ui-video-conf/package.json index a91197224ef9e..ce2d7ad973f35 100644 --- a/packages/ui-video-conf/package.json +++ b/packages/ui-video-conf/package.json @@ -6,7 +6,7 @@ "@babel/core": "~7.22.20", "@rocket.chat/css-in-js": "~0.31.25", "@rocket.chat/eslint-config": "workspace:^", - "@rocket.chat/fuselage": "^0.52.0", + "@rocket.chat/fuselage": "^0.53.2", "@rocket.chat/fuselage-hooks": "^0.33.1", "@rocket.chat/icons": "^0.34.0", "@rocket.chat/styled": "~0.31.25", diff --git a/packages/uikit-playground/package.json b/packages/uikit-playground/package.json index 52335e80b3954..cd8ec202301de 100644 --- a/packages/uikit-playground/package.json +++ b/packages/uikit-playground/package.json @@ -15,7 +15,7 @@ "@codemirror/tooltip": "^0.19.16", "@lezer/highlight": "^1.1.6", "@rocket.chat/css-in-js": "~0.31.25", - "@rocket.chat/fuselage": "^0.52.0", + "@rocket.chat/fuselage": "^0.53.2", "@rocket.chat/fuselage-hooks": "^0.33.1", "@rocket.chat/fuselage-polyfills": "~0.31.25", "@rocket.chat/fuselage-toastbar": "^0.31.26", diff --git a/yarn.lock b/yarn.lock index 0da859a507fd1..846c9e3b081be 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8732,7 +8732,7 @@ __metadata: "@babel/preset-typescript": ~7.22.15 "@rocket.chat/apps-engine": 1.42.0-alpha.619 "@rocket.chat/eslint-config": "workspace:^" - "@rocket.chat/fuselage": ^0.52.0 + "@rocket.chat/fuselage": ^0.53.2 "@rocket.chat/fuselage-hooks": ^0.33.1 "@rocket.chat/fuselage-polyfills": ~0.31.25 "@rocket.chat/gazzodown": "workspace:^" @@ -8787,9 +8787,9 @@ __metadata: languageName: unknown linkType: soft -"@rocket.chat/fuselage@npm:^0.52.0": - version: 0.52.0 - resolution: "@rocket.chat/fuselage@npm:0.52.0" +"@rocket.chat/fuselage@npm:^0.53.2": + version: 0.53.2 + resolution: "@rocket.chat/fuselage@npm:0.53.2" dependencies: "@rocket.chat/css-in-js": ^0.31.25 "@rocket.chat/css-supports": ^0.31.25 @@ -8807,7 +8807,7 @@ __metadata: react: ^17.0.2 react-dom: ^17.0.2 react-virtuoso: 1.2.4 - checksum: 518c96ad67dcb2395c6299842250c1e87959e53ee54fee2bb4d813a41a8e78913e599adc4c73258f7e99249bb2351cf8b94dd8a3bfb2ba5473aa80f051cfac40 + checksum: 3dd1464821330cc353fdb3de585853e7d41f181e87a90c8281d8ef28ba719dd95ddc92f048a321127e800a9287638f77d5549412548b443bceedbefa4d728e40 languageName: node linkType: hard @@ -8818,7 +8818,7 @@ __metadata: "@babel/core": ~7.22.20 "@rocket.chat/core-typings": "workspace:^" "@rocket.chat/css-in-js": ~0.31.25 - "@rocket.chat/fuselage": ^0.52.0 + "@rocket.chat/fuselage": ^0.53.2 "@rocket.chat/fuselage-tokens": ^0.33.0 "@rocket.chat/message-parser": "workspace:^" "@rocket.chat/styled": ~0.31.25 @@ -9178,7 +9178,7 @@ __metadata: "@rocket.chat/favicon": "workspace:^" "@rocket.chat/forked-matrix-appservice-bridge": ^4.0.2 "@rocket.chat/forked-matrix-bot-sdk": ^0.6.0-beta.3 - "@rocket.chat/fuselage": ^0.52.0 + "@rocket.chat/fuselage": ^0.53.2 "@rocket.chat/fuselage-hooks": ^0.33.1 "@rocket.chat/fuselage-polyfills": ~0.31.25 "@rocket.chat/fuselage-toastbar": ^0.31.26 @@ -10060,7 +10060,7 @@ __metadata: resolution: "@rocket.chat/ui-avatar@workspace:packages/ui-avatar" dependencies: "@babel/core": ~7.22.20 - "@rocket.chat/fuselage": ^0.52.0 + "@rocket.chat/fuselage": ^0.53.2 "@rocket.chat/ui-contexts": "workspace:^" "@types/babel__core": ~7.20.3 "@types/react": ~17.0.69 @@ -10086,7 +10086,7 @@ __metadata: "@babel/core": ~7.22.20 "@react-aria/toolbar": ^3.0.0-beta.1 "@rocket.chat/css-in-js": ~0.31.25 - "@rocket.chat/fuselage": ^0.52.0 + "@rocket.chat/fuselage": ^0.53.2 "@rocket.chat/fuselage-hooks": ^0.33.1 "@rocket.chat/icons": ^0.34.0 "@rocket.chat/mock-providers": "workspace:^" @@ -10139,7 +10139,7 @@ __metadata: "@babel/core": ~7.22.20 "@react-aria/toolbar": ^3.0.0-beta.1 "@rocket.chat/eslint-config": "workspace:^" - "@rocket.chat/fuselage": ^0.52.0 + "@rocket.chat/fuselage": ^0.53.2 "@rocket.chat/icons": ^0.34.0 "@storybook/addon-actions": ~6.5.16 "@storybook/addon-docs": ~6.5.16 @@ -10231,7 +10231,7 @@ __metadata: resolution: "@rocket.chat/ui-theming@workspace:ee/packages/ui-theming" dependencies: "@rocket.chat/css-in-js": ~0.31.25 - "@rocket.chat/fuselage": ^0.52.0 + "@rocket.chat/fuselage": ^0.53.2 "@rocket.chat/fuselage-hooks": ^0.33.1 "@rocket.chat/icons": ^0.34.0 "@rocket.chat/ui-contexts": "workspace:~" @@ -10274,7 +10274,7 @@ __metadata: "@rocket.chat/css-in-js": ~0.31.25 "@rocket.chat/emitter": ~0.31.25 "@rocket.chat/eslint-config": "workspace:^" - "@rocket.chat/fuselage": ^0.52.0 + "@rocket.chat/fuselage": ^0.53.2 "@rocket.chat/fuselage-hooks": ^0.33.1 "@rocket.chat/icons": ^0.34.0 "@rocket.chat/styled": ~0.31.25 @@ -10319,7 +10319,7 @@ __metadata: "@codemirror/tooltip": ^0.19.16 "@lezer/highlight": ^1.1.6 "@rocket.chat/css-in-js": ~0.31.25 - "@rocket.chat/fuselage": ^0.52.0 + "@rocket.chat/fuselage": ^0.53.2 "@rocket.chat/fuselage-hooks": ^0.33.1 "@rocket.chat/fuselage-polyfills": ~0.31.25 "@rocket.chat/fuselage-toastbar": ^0.31.26 From 4a4b1a3d078ecf1d95ec6fa7cbceb02ca38355fc Mon Sep 17 00:00:00 2001 From: dougfabris Date: Mon, 1 Apr 2024 21:00:32 -0300 Subject: [PATCH 4/9] chore: `MessageMetrics` tweaks --- .../message/content/DiscussionMetrics.tsx | 13 ++++++++++--- .../components/message/content/ThreadMetrics.tsx | 13 ++++++------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/apps/meteor/client/components/message/content/DiscussionMetrics.tsx b/apps/meteor/client/components/message/content/DiscussionMetrics.tsx index dc84828e607a9..a14c75761de5a 100644 --- a/apps/meteor/client/components/message/content/DiscussionMetrics.tsx +++ b/apps/meteor/client/components/message/content/DiscussionMetrics.tsx @@ -1,4 +1,11 @@ -import { MessageBlock, MessageMetrics, MessageMetricsItem, MessageMetricsReply } from '@rocket.chat/fuselage'; +import { + MessageBlock, + MessageMetrics, + MessageMetricsItem, + MessageMetricsItemIcon, + MessageMetricsItemLabel, + MessageMetricsReply, +} from '@rocket.chat/fuselage'; import { useTranslation } from '@rocket.chat/ui-contexts'; import type { ReactElement } from 'react'; import React from 'react'; @@ -26,8 +33,8 @@ const DiscussionMetrics = ({ lm, count, rid, drid }: DiscussionMetricsProps): Re {count ? t('message_counter', { count }) : t('Reply')} - - {lm ? format(lm) : t('No_messages_yet')} + + {lm ? format(lm) : t('No_messages_yet')} diff --git a/apps/meteor/client/components/message/content/ThreadMetrics.tsx b/apps/meteor/client/components/message/content/ThreadMetrics.tsx index bc9b6ab5e56fc..f3b6915a95dde 100644 --- a/apps/meteor/client/components/message/content/ThreadMetrics.tsx +++ b/apps/meteor/client/components/message/content/ThreadMetrics.tsx @@ -61,13 +61,12 @@ const ThreadMetrics = ({ unread, mention, all, rid, mid, counter, participants, {format(lm)} - - + + {(mention || all || unread) && ( From c7d2951259ac19606346bcc8ddd593c3c2f82e01 Mon Sep 17 00:00:00 2001 From: dougfabris Date: Mon, 1 Apr 2024 21:03:39 -0300 Subject: [PATCH 5/9] fix: access message reactions using keyboard --- .../components/message/content/Reactions.tsx | 49 ++++++++++++------- .../message/content/reactions/Reaction.tsx | 11 ++--- .../message/list/MessageListContext.tsx | 2 +- 3 files changed, 38 insertions(+), 24 deletions(-) diff --git a/apps/meteor/client/components/message/content/Reactions.tsx b/apps/meteor/client/components/message/content/Reactions.tsx index 41daf046c5448..4126991fff88e 100644 --- a/apps/meteor/client/components/message/content/Reactions.tsx +++ b/apps/meteor/client/components/message/content/Reactions.tsx @@ -1,7 +1,9 @@ +import { useToolbar } from '@react-aria/toolbar'; import type { IMessage } from '@rocket.chat/core-typings'; import { MessageReactions, MessageReactionAction } from '@rocket.chat/fuselage'; -import type { ReactElement } from 'react'; -import React, { useContext } from 'react'; +import { useTranslation } from '@rocket.chat/ui-contexts'; +import type { HTMLAttributes, KeyboardEvent, ReactElement } from 'react'; +import React, { useContext, useRef } from 'react'; import { MessageListContext, useOpenEmojiPicker, useUserHasReacted } from '../list/MessageListContext'; import Reaction from './reactions/Reaction'; @@ -9,29 +11,42 @@ import { useToggleReactionMutation } from './reactions/useToggleReactionMutation type ReactionsProps = { message: IMessage; -}; +} & HTMLAttributes; -const Reactions = ({ message }: ReactionsProps): ReactElement => { +const Reactions = ({ message, ...props }: ReactionsProps): ReactElement => { + const t = useTranslation(); + const ref = useRef(null); const hasReacted = useUserHasReacted(message); const openEmojiPicker = useOpenEmojiPicker(message); const { username } = useContext(MessageListContext); const toggleReactionMutation = useToggleReactionMutation(); + const { toolbarProps } = useToolbar(props, ref); return ( - {message.reactions && - Object.entries(message.reactions).map(([name, reactions]) => ( - user !== username).map((username) => `@${username}`)} - messageId={message._id} - onClick={() => toggleReactionMutation.mutate({ mid: message._id, reaction: name })} - /> - ))} - + {message.reactions && ( +
        + {Object.entries(message.reactions).map(([name, reactions]) => ( + user !== username).map((username) => `@${username}`)} + messageId={message._id} + onKeyDown={(e: KeyboardEvent) => + (e.code === 'Space' || e.code === 'Enter') && toggleReactionMutation.mutate({ mid: message._id, reaction: name }) + } + onClick={() => toggleReactionMutation.mutate({ mid: message._id, reaction: name })} + /> + ))} +
        + )} + (e.code === 'Space' || e.code === 'Enter') && openEmojiPicker(e)} + onClick={openEmojiPicker} + />
        ); }; diff --git a/apps/meteor/client/components/message/content/reactions/Reaction.tsx b/apps/meteor/client/components/message/content/reactions/Reaction.tsx index 893f6456c8c60..b2dea5eecfe9a 100644 --- a/apps/meteor/client/components/message/content/reactions/Reaction.tsx +++ b/apps/meteor/client/components/message/content/reactions/Reaction.tsx @@ -1,6 +1,6 @@ import { MessageReaction as MessageReactionTemplate, MessageReactionEmoji, MessageReactionCounter } from '@rocket.chat/fuselage'; -import { useTooltipClose, useTooltipOpen } from '@rocket.chat/ui-contexts'; -import type { ReactElement } from 'react'; +import { useTooltipClose, useTooltipOpen, useTranslation } from '@rocket.chat/ui-contexts'; +import type { ComponentProps, ReactElement } from 'react'; import React, { useRef, useContext } from 'react'; import { getEmojiClassNameAndDataTitle } from '../../../../lib/utils/renderEmoji'; @@ -14,10 +14,10 @@ type ReactionProps = { name: string; names: string[]; messageId: string; - onClick: () => void; -}; +} & ComponentProps; const Reaction = ({ hasReacted, counter, name, names, messageId, ...props }: ReactionProps): ReactElement => { + const t = useTranslation(); const ref = useRef(null); const openTooltip = useTooltipOpen(); const closeTooltip = useTooltipClose(); @@ -32,8 +32,7 @@ const Reaction = ({ hasReacted, counter, name, names, messageId, ...props }: Rea ref={ref} key={name} mine={mine} - tabIndex={0} - role='button' + aria-label={t('React_with__reaction__', { reaction: name })} // if data-tooltip is not set, the tooltip will close on first mouse enter data-tooltip='' onMouseEnter={async (e) => { diff --git a/apps/meteor/client/components/message/list/MessageListContext.tsx b/apps/meteor/client/components/message/list/MessageListContext.tsx index 542cca6bfc0a2..d525e2a4a39ef 100644 --- a/apps/meteor/client/components/message/list/MessageListContext.tsx +++ b/apps/meteor/client/components/message/list/MessageListContext.tsx @@ -7,7 +7,7 @@ export type MessageListContextValue = { useShowFollowing: ({ message }: { message: IMessage }) => boolean; useMessageDateFormatter: () => (date: Date) => string; useUserHasReacted: (message: IMessage) => (reaction: string) => boolean; - useOpenEmojiPicker: (message: IMessage) => (event: React.MouseEvent) => void; + useOpenEmojiPicker: (message: IMessage) => (event: React.MouseEvent | React.KeyboardEvent) => void; showRoles: boolean; showRealName: boolean; showUsername: boolean; From 381992081014cea8cfffac028600b478ddcf39c0 Mon Sep 17 00:00:00 2001 From: dougfabris Date: Mon, 1 Apr 2024 21:06:26 -0300 Subject: [PATCH 6/9] fix: message list navigation and message roles --- .../message/variants/RoomMessage.tsx | 7 ++++--- .../message/variants/SystemMessage.tsx | 4 ++-- .../message/variants/ThreadMessage.tsx | 7 ++++--- .../views/room/MessageList/MessageList.tsx | 6 +++--- .../room/MessageList/MessageListItem.tsx | 21 +++++++++++-------- .../Threads/components/ThreadMessageItem.tsx | 13 ++++++------ .../Threads/components/ThreadMessageList.tsx | 6 +++--- .../room/hooks/useMessageListNavigation.ts | 8 +++---- packages/i18n/src/locales/en.i18n.json | 3 +++ 9 files changed, 41 insertions(+), 34 deletions(-) diff --git a/apps/meteor/client/components/message/variants/RoomMessage.tsx b/apps/meteor/client/components/message/variants/RoomMessage.tsx index 65c30e0d8492f..dce673def68f1 100644 --- a/apps/meteor/client/components/message/variants/RoomMessage.tsx +++ b/apps/meteor/client/components/message/variants/RoomMessage.tsx @@ -2,7 +2,7 @@ import type { IMessage } from '@rocket.chat/core-typings'; import { Message, MessageLeftContainer, MessageContainer, CheckBox } from '@rocket.chat/fuselage'; import { useToggle } from '@rocket.chat/fuselage-hooks'; import { MessageAvatar } from '@rocket.chat/ui-avatar'; -import { useUserId } from '@rocket.chat/ui-contexts'; +import { useTranslation, useUserId } from '@rocket.chat/ui-contexts'; import type { ComponentProps, ReactElement } from 'react'; import React, { memo } from 'react'; @@ -47,6 +47,7 @@ const RoomMessage = ({ searchText, ...props }: RoomMessageProps): ReactElement => { + const t = useTranslation(); const uid = useUserId(); const editing = useIsMessageHighlight(message._id); const [displayIgnoredMessage, toggleDisplayIgnoredMessage] = useToggle(false); @@ -65,8 +66,8 @@ const RoomMessage = ({ { + const t = useTranslation(); const uid = useUserId(); const editing = useIsMessageHighlight(message._id); const [ignored, toggleIgnoring] = useToggle((message as { ignored?: boolean }).ignored); @@ -37,8 +38,8 @@ const ThreadMessage = ({ message, sequential, unread, showUserAvatar }: ThreadMe return ( + - + ); })} diff --git a/apps/meteor/client/views/room/MessageList/MessageListItem.tsx b/apps/meteor/client/views/room/MessageList/MessageListItem.tsx index bb005020a2945..ecd0978c9fc09 100644 --- a/apps/meteor/client/views/room/MessageList/MessageListItem.tsx +++ b/apps/meteor/client/views/room/MessageList/MessageListItem.tsx @@ -50,6 +50,7 @@ export const MessageListItem = ({ )} {isThreadMessage(message) && ( - +
      • + +
      • )} {system && } diff --git a/apps/meteor/client/views/room/contextualBar/Threads/components/ThreadMessageItem.tsx b/apps/meteor/client/views/room/contextualBar/Threads/components/ThreadMessageItem.tsx index 9165e267a7408..4e151bab4bec4 100644 --- a/apps/meteor/client/views/room/contextualBar/Threads/components/ThreadMessageItem.tsx +++ b/apps/meteor/client/views/room/contextualBar/Threads/components/ThreadMessageItem.tsx @@ -39,6 +39,7 @@ export const ThreadMessageItem = ({ <> {showDivider && ( )} -
      • - {system ? ( - - ) : ( - - )} -
      • + {system ? ( + + ) : ( + + )} ); }; diff --git a/apps/meteor/client/views/room/contextualBar/Threads/components/ThreadMessageList.tsx b/apps/meteor/client/views/room/contextualBar/Threads/components/ThreadMessageList.tsx index ab801e27fa62b..b6c6bd1732aef 100644 --- a/apps/meteor/client/views/room/contextualBar/Threads/components/ThreadMessageList.tsx +++ b/apps/meteor/client/views/room/contextualBar/Threads/components/ThreadMessageList.tsx @@ -4,7 +4,7 @@ import { useMergedRefs } from '@rocket.chat/fuselage-hooks'; import { useSetting, useUserPreference } from '@rocket.chat/ui-contexts'; import { differenceInSeconds } from 'date-fns'; import type { ReactElement } from 'react'; -import React from 'react'; +import React, { Fragment } from 'react'; import { MessageTypes } from '../../../../../../app/ui-utils/client'; import { isTruthy } from '../../../../../../lib/isTruthy'; @@ -95,7 +95,7 @@ const ThreadMessageList = ({ mainMessage }: ThreadMessageListProps): ReactElemen const system = MessageTypes.isSystemMessage(message); return ( -
      • + -
      • + ); })} diff --git a/apps/meteor/client/views/room/hooks/useMessageListNavigation.ts b/apps/meteor/client/views/room/hooks/useMessageListNavigation.ts index ddcb7e675ad27..ac24862cb52ad 100644 --- a/apps/meteor/client/views/room/hooks/useMessageListNavigation.ts +++ b/apps/meteor/client/views/room/hooks/useMessageListNavigation.ts @@ -3,7 +3,8 @@ import type { RefCallback } from 'react'; import { useCallback } from 'react'; import { useFocusManager } from 'react-aria'; -const isListItem = (node: EventTarget) => (node as HTMLElement).getAttribute('role') === 'link'; +const isListItem = (node: EventTarget) => + (node as HTMLElement).getAttribute('role') === 'listitem' || (node as HTMLElement).getAttribute('role') === 'link'; const isMessageToolbarAction = (node: EventTarget) => (node as HTMLElement).parentElement?.getAttribute('role') === 'toolbar'; const isSystemMessage = (node: EventTarget) => (node as HTMLElement).classList.contains('rcx-message-system'); const isThreadMessage = (node: EventTarget) => (node as HTMLElement).classList.contains('rcx-message-thread'); @@ -89,9 +90,8 @@ export const useMessageListNavigation = (): { messageListRef: RefCallback { if (initialFocus) { - lastMessageFocused = node?.querySelector('li:last-child > [role=link]:first-child'); - lastMessageFocused?.focus(); - lastMessageFocused = null; + massageListFocusManager.focusLast({ accept: (node) => isListItem(node) }); + lastMessageFocused = document.activeElement as HTMLElement; initialFocus = false; } diff --git a/packages/i18n/src/locales/en.i18n.json b/packages/i18n/src/locales/en.i18n.json index ab9eaf4779e1c..823c95639eff0 100644 --- a/packages/i18n/src/locales/en.i18n.json +++ b/packages/i18n/src/locales/en.i18n.json @@ -4262,6 +4262,7 @@ "Rate_Limiter_Limit_RegisterUser_Description": "Number of default calls for user registering endpoints(REST and real-time API's), allowed within the time range defined in the API Rate Limiter section.", "React_when_read_only": "Allow Reacting", "React_when_read_only_changed_successfully": "Allow reacting when read only changed successfully", + "React_with__reaction__": "Reacted with {{reaction}}", "Reacted_with": "Reacted with", "Reactions": "Reactions", "Read_by": "Read by", @@ -5042,6 +5043,7 @@ "sync-auth-services-users": "Sync authentication services' users", "sync-auth-services-users_description": "Permission to sync authentication services' users", "System_messages": "System Messages", + "system_message": "system message", "Tag": "Tag", "Tags": "Tags", "Tag_removed": "Tag Removed", @@ -5253,6 +5255,7 @@ "This_server_will_be_available_while_your_session_is_active": "This server will be available while your session is active", "This_week": "This Week", "thread": "thread", + "thread_message": "thread message", "Thread_message": "Commented on *{{username}}'s* message: _ {{msg}} _", "Threads": "Threads", "Threads_Description": "Threads allow organized discussions around a specific message.", From be1a0137b7452fe595f84d6df3ce6f9eacdc4b40 Mon Sep 17 00:00:00 2001 From: dougfabris Date: Mon, 1 Apr 2024 21:06:55 -0300 Subject: [PATCH 7/9] chore: formatting item missing title --- .../MessageBoxFormattingToolbar/MessageBoxFormattingToolbar.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/meteor/client/views/room/composer/messageBox/MessageBoxFormattingToolbar/MessageBoxFormattingToolbar.tsx b/apps/meteor/client/views/room/composer/messageBox/MessageBoxFormattingToolbar/MessageBoxFormattingToolbar.tsx index 79b210182d77f..7a4f7da208253 100644 --- a/apps/meteor/client/views/room/composer/messageBox/MessageBoxFormattingToolbar/MessageBoxFormattingToolbar.tsx +++ b/apps/meteor/client/views/room/composer/messageBox/MessageBoxFormattingToolbar/MessageBoxFormattingToolbar.tsx @@ -29,6 +29,7 @@ const MessageBoxFormattingToolbar = ({ items, variant = 'large', composer, disab isPromptButton(featuredFormatter) ? featuredFormatter.prompt(composer) : composer.wrapSelection(featuredFormatter.pattern) } icon={featuredFormatter.icon} + title={t(featuredFormatter.label)} disabled={disabled} /> )} From c398c9f09f42fc8447ddc6d985a4aee11299fc5c Mon Sep 17 00:00:00 2001 From: dougfabris Date: Mon, 1 Apr 2024 21:23:36 -0300 Subject: [PATCH 8/9] chore: missing aria-label on messages list --- apps/meteor/client/views/room/body/RoomBody.tsx | 2 +- .../Threads/components/ThreadMessageList.tsx | 11 +++++++++-- packages/i18n/src/locales/en.i18n.json | 2 ++ 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/apps/meteor/client/views/room/body/RoomBody.tsx b/apps/meteor/client/views/room/body/RoomBody.tsx index 52231b079d1a5..c9e239fb723d2 100644 --- a/apps/meteor/client/views/room/body/RoomBody.tsx +++ b/apps/meteor/client/views/room/body/RoomBody.tsx @@ -283,7 +283,7 @@ const RoomBody = (): ReactElement => { > -
          +
            {canPreview ? ( <> {hasMorePreviousMessages ? ( diff --git a/apps/meteor/client/views/room/contextualBar/Threads/components/ThreadMessageList.tsx b/apps/meteor/client/views/room/contextualBar/Threads/components/ThreadMessageList.tsx index b6c6bd1732aef..085ce657a6af5 100644 --- a/apps/meteor/client/views/room/contextualBar/Threads/components/ThreadMessageList.tsx +++ b/apps/meteor/client/views/room/contextualBar/Threads/components/ThreadMessageList.tsx @@ -1,7 +1,7 @@ import type { IMessage, IThreadMainMessage } from '@rocket.chat/core-typings'; import { Box } from '@rocket.chat/fuselage'; import { useMergedRefs } from '@rocket.chat/fuselage-hooks'; -import { useSetting, useUserPreference } from '@rocket.chat/ui-contexts'; +import { useSetting, useUserPreference, useTranslation } from '@rocket.chat/ui-contexts'; import { differenceInSeconds } from 'date-fns'; import type { ReactElement } from 'react'; import React, { Fragment } from 'react'; @@ -49,6 +49,7 @@ type ThreadMessageListProps = { }; const ThreadMessageList = ({ mainMessage }: ThreadMessageListProps): ReactElement => { + const t = useTranslation(); const { innerRef, bubbleRef, listStyle, ...bubbleDate } = useDateScroll(); const { messages, loading } = useLegacyThreadMessages(mainMessage._id); @@ -79,7 +80,13 @@ const ThreadMessageList = ({ mainMessage }: ThreadMessageListProps): ReactElemen }} style={{ scrollBehavior: 'smooth', overflowX: 'hidden' }} > - + {loading ? (
          • diff --git a/packages/i18n/src/locales/en.i18n.json b/packages/i18n/src/locales/en.i18n.json index 823c95639eff0..c95995a155ad1 100644 --- a/packages/i18n/src/locales/en.i18n.json +++ b/packages/i18n/src/locales/en.i18n.json @@ -5256,6 +5256,7 @@ "This_week": "This Week", "thread": "thread", "thread_message": "thread message", + "Thread_message_list": "Thread message list", "Thread_message": "Commented on *{{username}}'s* message: _ {{msg}} _", "Threads": "Threads", "Threads_Description": "Threads allow organized discussions around a specific message.", @@ -6319,6 +6320,7 @@ "Premium_and_unlimited_apps": "Premium and unlimited apps", "Message_actions": "Message actions", "Message_audit": "Message auditing", + "Message_list": "Message list", "Premium_omnichannel_capabilities": "Premium omnichannel capabilities", "Video_call_manager": "Video call manager", "Unlimited_push_notifications": "Unlimited push notifications", From c2ff197101a4cfbaff3dcef9280044202d947d31 Mon Sep 17 00:00:00 2001 From: dougfabris Date: Tue, 2 Apr 2024 09:30:07 -0300 Subject: [PATCH 9/9] chore: missing translation key --- packages/i18n/src/locales/en.i18n.json | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/i18n/src/locales/en.i18n.json b/packages/i18n/src/locales/en.i18n.json index c95995a155ad1..3575be10b6455 100644 --- a/packages/i18n/src/locales/en.i18n.json +++ b/packages/i18n/src/locales/en.i18n.json @@ -20,6 +20,7 @@ "__roomName__was_removed_from_favorites": "{{roomName}} was removed from favorites", "removed__username__as__role_": "removed {{username}} as {{role}}", "set__username__as__role_": "set {{username}} as {{role}}", + "sequential_message": "sequential message", "This_room_encryption_has_been_enabled_by__username_": "This room's encryption has been enabled by {{username}}", "This_room_encryption_has_been_disabled_by__username_": "This room's encryption has been disabled by {{username}}", "Third_party_login": "Third-party login",