Skip to content

Commit aa7b6a4

Browse files
chore: accept ReactNode as toast message (#35537)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
1 parent 836b72e commit aa7b6a4

File tree

6 files changed

+21
-14
lines changed

6 files changed

+21
-14
lines changed

apps/meteor/client/lib/toast.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
import { Emitter } from '@rocket.chat/emitter';
2+
import type { ReactNode } from 'react';
23

34
type ToastMessagePayload =
45
| {
56
type: 'success' | 'info' | 'warning';
6-
message: string;
7+
message: ReactNode | string;
78
title?: string;
89
options?: object;
910
}

apps/meteor/client/providers/ToastMessagesProvider.tsx

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { ToastMessagesContext } from '@rocket.chat/ui-contexts';
33
import type { DefaultError, Query } from '@tanstack/react-query';
44
import { useQueryClient } from '@tanstack/react-query';
55
import type { ReactNode } from 'react';
6-
import { useEffect } from 'react';
6+
import { isValidElement, useEffect } from 'react';
77

88
import { getErrorMessage } from '../lib/errorHandling';
99
import { dispatchToastMessage, subscribeToToastMessages } from '../lib/toast';
@@ -47,9 +47,9 @@ const ToastMessageInnerProvider = ({ children }: ToastMessageInnerProviderProps)
4747

4848
useEffect(
4949
() =>
50-
subscribeToToastMessages(({ type, message, title = '' }) => {
50+
subscribeToToastMessages(({ type, message, title = '', options }) => {
5151
if (type === 'error' && typeof message === 'object') {
52-
dispatchToastBar({ type, message: getErrorMessage(message) });
52+
dispatchToastBar({ type, title, message: getErrorMessage(message), ...options });
5353
return;
5454
}
5555

@@ -61,7 +61,12 @@ const ToastMessageInnerProvider = ({ children }: ToastMessageInnerProviderProps)
6161
return;
6262
}
6363

64-
dispatchToastBar({ type, message: title + message });
64+
if (isValidElement(message)) {
65+
dispatchToastBar({ type, title, message, ...options });
66+
return;
67+
}
68+
69+
dispatchToastBar({ type, title, message: String(message), ...options });
6570
}),
6671
[dispatchToastBar],
6772
);

apps/meteor/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,7 @@
249249
"@rocket.chat/fuselage": "~0.61.0",
250250
"@rocket.chat/fuselage-hooks": "~0.35.0",
251251
"@rocket.chat/fuselage-polyfills": "~0.31.25",
252-
"@rocket.chat/fuselage-toastbar": "~0.34.0",
252+
"@rocket.chat/fuselage-toastbar": "^0.35.0",
253253
"@rocket.chat/fuselage-tokens": "~0.33.2",
254254
"@rocket.chat/fuselage-ui-kit": "workspace:^",
255255
"@rocket.chat/gazzodown": "workspace:^",

apps/uikit-playground/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
"@rocket.chat/fuselage": "~0.61.0",
2222
"@rocket.chat/fuselage-hooks": "~0.35.0",
2323
"@rocket.chat/fuselage-polyfills": "~0.31.25",
24-
"@rocket.chat/fuselage-toastbar": "~0.34.0",
24+
"@rocket.chat/fuselage-toastbar": "^0.35.0",
2525
"@rocket.chat/fuselage-tokens": "~0.33.2",
2626
"@rocket.chat/fuselage-ui-kit": "workspace:~",
2727
"@rocket.chat/icons": "^0.40.0",

packages/ui-contexts/src/ToastMessagesContext.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1+
import type { ReactNode } from 'react';
12
import { createContext } from 'react';
23

34
type ToastMessagePayload =
45
| {
56
type: 'success' | 'info' | 'warning';
6-
message: string;
7+
message: ReactNode | string;
78
title?: string;
89
options?: object;
910
}

yarn.lock

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8323,9 +8323,9 @@ __metadata:
83238323
languageName: node
83248324
linkType: hard
83258325

8326-
"@rocket.chat/fuselage-toastbar@npm:~0.34.0":
8327-
version: 0.34.0
8328-
resolution: "@rocket.chat/fuselage-toastbar@npm:0.34.0"
8326+
"@rocket.chat/fuselage-toastbar@npm:^0.35.0":
8327+
version: 0.35.0
8328+
resolution: "@rocket.chat/fuselage-toastbar@npm:0.35.0"
83298329
dependencies:
83308330
react-timing-hooks: "npm:~4.0.2"
83318331
peerDependencies:
@@ -8335,7 +8335,7 @@ __metadata:
83358335
"@rocket.chat/styled": "*"
83368336
react: "*"
83378337
react-dom: "*"
8338-
checksum: 10/09523efcd06151106d060405e92593af03eab2c619223bd02ace6f142a1481467d31b715a4c1208faf2ca76f2c3cdf7a4b8beee0a4f37d84c25fd3c346ac29b7
8338+
checksum: 10/d3d1a89ecc490ad0c913be39694855ffcf603a800c58231cf2806fedbf20bd254560dde82ae9093a523bb58c548f9e6a80d9c91b9b44e0f7f06e03d6c804d7a4
83398339
languageName: node
83408340
linkType: hard
83418341

@@ -8821,7 +8821,7 @@ __metadata:
88218821
"@rocket.chat/fuselage": "npm:~0.61.0"
88228822
"@rocket.chat/fuselage-hooks": "npm:~0.35.0"
88238823
"@rocket.chat/fuselage-polyfills": "npm:~0.31.25"
8824-
"@rocket.chat/fuselage-toastbar": "npm:~0.34.0"
8824+
"@rocket.chat/fuselage-toastbar": "npm:^0.35.0"
88258825
"@rocket.chat/fuselage-tokens": "npm:~0.33.2"
88268826
"@rocket.chat/fuselage-ui-kit": "workspace:^"
88278827
"@rocket.chat/gazzodown": "workspace:^"
@@ -10037,7 +10037,7 @@ __metadata:
1003710037
"@rocket.chat/fuselage": "npm:~0.61.0"
1003810038
"@rocket.chat/fuselage-hooks": "npm:~0.35.0"
1003910039
"@rocket.chat/fuselage-polyfills": "npm:~0.31.25"
10040-
"@rocket.chat/fuselage-toastbar": "npm:~0.34.0"
10040+
"@rocket.chat/fuselage-toastbar": "npm:^0.35.0"
1004110041
"@rocket.chat/fuselage-tokens": "npm:~0.33.2"
1004210042
"@rocket.chat/fuselage-ui-kit": "workspace:~"
1004310043
"@rocket.chat/icons": "npm:^0.40.0"

0 commit comments

Comments
 (0)