diff --git a/android/app/src/main/assets/fonts/Inter-Bold_italic.otf b/android/app/src/main/assets/fonts/Inter-Bold_italic.otf
new file mode 100644
index 00000000000..20d20c195cd
Binary files /dev/null and b/android/app/src/main/assets/fonts/Inter-Bold_italic.otf differ
diff --git a/android/app/src/main/assets/fonts/Inter-Medium_italic.otf b/android/app/src/main/assets/fonts/Inter-Medium_italic.otf
new file mode 100644
index 00000000000..2df62bc189f
Binary files /dev/null and b/android/app/src/main/assets/fonts/Inter-Medium_italic.otf differ
diff --git a/android/app/src/main/assets/fonts/Inter-Regular_italic.otf b/android/app/src/main/assets/fonts/Inter-Regular_italic.otf
new file mode 100644
index 00000000000..39d6016be45
Binary files /dev/null and b/android/app/src/main/assets/fonts/Inter-Regular_italic.otf differ
diff --git a/android/app/src/main/assets/fonts/Inter-SemiBold_italic.otf b/android/app/src/main/assets/fonts/Inter-SemiBold_italic.otf
new file mode 100644
index 00000000000..bc58b80d70b
Binary files /dev/null and b/android/app/src/main/assets/fonts/Inter-SemiBold_italic.otf differ
diff --git a/app/containers/UIKit/__snapshots__/UiKitMessage.test.tsx.snap b/app/containers/UIKit/__snapshots__/UiKitMessage.test.tsx.snap
index 0f6da409f65..bf295d7ee2a 100644
--- a/app/containers/UIKit/__snapshots__/UiKitMessage.test.tsx.snap
+++ b/app/containers/UIKit/__snapshots__/UiKitMessage.test.tsx.snap
@@ -1084,9 +1084,17 @@ exports[`Story Snapshots: InfoCard should match snapshot 1`] = `
{
"color": "#2F343D",
},
- {
- "fontSize": 14,
- },
+ [
+ {
+ "fontSize": 14,
+ },
+ {
+ "backgroundColor": "transparent",
+ "fontFamily": "Inter",
+ "fontWeight": "700",
+ "textAlign": "left",
+ },
+ ],
]
}
>
@@ -1187,9 +1195,17 @@ exports[`Story Snapshots: InfoCard should match snapshot 1`] = `
{
"color": "#2F343D",
},
- {
- "fontSize": 14,
- },
+ [
+ {
+ "fontSize": 14,
+ },
+ {
+ "backgroundColor": "transparent",
+ "fontFamily": "Inter",
+ "fontWeight": "700",
+ "textAlign": "left",
+ },
+ ],
]
}
>
@@ -1357,9 +1373,17 @@ exports[`Story Snapshots: InfoCard should match snapshot 1`] = `
{
"color": "#2F343D",
},
- {
- "fontSize": 14,
- },
+ [
+ {
+ "fontSize": 14,
+ },
+ {
+ "backgroundColor": "transparent",
+ "fontFamily": "Inter",
+ "fontWeight": "700",
+ "textAlign": "left",
+ },
+ ],
]
}
>
@@ -1460,9 +1484,17 @@ exports[`Story Snapshots: InfoCard should match snapshot 1`] = `
{
"color": "#2F343D",
},
- {
- "fontSize": 14,
- },
+ [
+ {
+ "fontSize": 14,
+ },
+ {
+ "backgroundColor": "transparent",
+ "fontFamily": "Inter",
+ "fontWeight": "700",
+ "textAlign": "left",
+ },
+ ],
]
}
>
@@ -1630,9 +1662,17 @@ exports[`Story Snapshots: InfoCard should match snapshot 1`] = `
{
"color": "#2F343D",
},
- {
- "fontSize": 14,
- },
+ [
+ {
+ "fontSize": 14,
+ },
+ {
+ "backgroundColor": "transparent",
+ "fontFamily": "Inter",
+ "fontWeight": "700",
+ "textAlign": "left",
+ },
+ ],
]
}
>
@@ -1800,9 +1840,17 @@ exports[`Story Snapshots: InfoCard should match snapshot 1`] = `
{
"color": "#2F343D",
},
- {
- "fontSize": 14,
- },
+ [
+ {
+ "fontSize": 14,
+ },
+ {
+ "backgroundColor": "transparent",
+ "fontFamily": "Inter",
+ "fontWeight": "700",
+ "textAlign": "left",
+ },
+ ],
]
}
>
@@ -1980,9 +2028,17 @@ exports[`Story Snapshots: InfoCard should match snapshot 1`] = `
{
"color": "#C1C7D0",
},
- {
- "fontSize": 14,
- },
+ [
+ {
+ "fontSize": 14,
+ },
+ {
+ "backgroundColor": "transparent",
+ "fontFamily": "Inter",
+ "fontWeight": "700",
+ "textAlign": "left",
+ },
+ ],
]
}
>
@@ -2083,9 +2139,17 @@ exports[`Story Snapshots: InfoCard should match snapshot 1`] = `
{
"color": "#C1C7D0",
},
- {
- "fontSize": 14,
- },
+ [
+ {
+ "fontSize": 14,
+ },
+ {
+ "backgroundColor": "transparent",
+ "fontFamily": "Inter",
+ "fontWeight": "700",
+ "textAlign": "left",
+ },
+ ],
]
}
>
@@ -2253,9 +2317,17 @@ exports[`Story Snapshots: InfoCard should match snapshot 1`] = `
{
"color": "#C1C7D0",
},
- {
- "fontSize": 14,
- },
+ [
+ {
+ "fontSize": 14,
+ },
+ {
+ "backgroundColor": "transparent",
+ "fontFamily": "Inter",
+ "fontWeight": "700",
+ "textAlign": "left",
+ },
+ ],
]
}
>
@@ -2356,9 +2428,17 @@ exports[`Story Snapshots: InfoCard should match snapshot 1`] = `
{
"color": "#C1C7D0",
},
- {
- "fontSize": 14,
- },
+ [
+ {
+ "fontSize": 14,
+ },
+ {
+ "backgroundColor": "transparent",
+ "fontFamily": "Inter",
+ "fontWeight": "700",
+ "textAlign": "left",
+ },
+ ],
]
}
>
@@ -2526,9 +2606,17 @@ exports[`Story Snapshots: InfoCard should match snapshot 1`] = `
{
"color": "#C1C7D0",
},
- {
- "fontSize": 14,
- },
+ [
+ {
+ "fontSize": 14,
+ },
+ {
+ "backgroundColor": "transparent",
+ "fontFamily": "Inter",
+ "fontWeight": "700",
+ "textAlign": "left",
+ },
+ ],
]
}
>
@@ -2696,9 +2784,17 @@ exports[`Story Snapshots: InfoCard should match snapshot 1`] = `
{
"color": "#C1C7D0",
},
- {
- "fontSize": 14,
- },
+ [
+ {
+ "fontSize": 14,
+ },
+ {
+ "backgroundColor": "transparent",
+ "fontFamily": "Inter",
+ "fontWeight": "700",
+ "textAlign": "left",
+ },
+ ],
]
}
>
@@ -2876,9 +2972,17 @@ exports[`Story Snapshots: InfoCard should match snapshot 1`] = `
{
"color": "#E4E7EA",
},
- {
- "fontSize": 14,
- },
+ [
+ {
+ "fontSize": 14,
+ },
+ {
+ "backgroundColor": "transparent",
+ "fontFamily": "Inter",
+ "fontWeight": "700",
+ "textAlign": "left",
+ },
+ ],
]
}
>
@@ -2979,9 +3083,17 @@ exports[`Story Snapshots: InfoCard should match snapshot 1`] = `
{
"color": "#E4E7EA",
},
- {
- "fontSize": 14,
- },
+ [
+ {
+ "fontSize": 14,
+ },
+ {
+ "backgroundColor": "transparent",
+ "fontFamily": "Inter",
+ "fontWeight": "700",
+ "textAlign": "left",
+ },
+ ],
]
}
>
@@ -3149,9 +3261,17 @@ exports[`Story Snapshots: InfoCard should match snapshot 1`] = `
{
"color": "#E4E7EA",
},
- {
- "fontSize": 14,
- },
+ [
+ {
+ "fontSize": 14,
+ },
+ {
+ "backgroundColor": "transparent",
+ "fontFamily": "Inter",
+ "fontWeight": "700",
+ "textAlign": "left",
+ },
+ ],
]
}
>
@@ -3252,9 +3372,17 @@ exports[`Story Snapshots: InfoCard should match snapshot 1`] = `
{
"color": "#E4E7EA",
},
- {
- "fontSize": 14,
- },
+ [
+ {
+ "fontSize": 14,
+ },
+ {
+ "backgroundColor": "transparent",
+ "fontFamily": "Inter",
+ "fontWeight": "700",
+ "textAlign": "left",
+ },
+ ],
]
}
>
@@ -3422,9 +3550,17 @@ exports[`Story Snapshots: InfoCard should match snapshot 1`] = `
{
"color": "#E4E7EA",
},
- {
- "fontSize": 14,
- },
+ [
+ {
+ "fontSize": 14,
+ },
+ {
+ "backgroundColor": "transparent",
+ "fontFamily": "Inter",
+ "fontWeight": "700",
+ "textAlign": "left",
+ },
+ ],
]
}
>
@@ -3592,9 +3728,17 @@ exports[`Story Snapshots: InfoCard should match snapshot 1`] = `
{
"color": "#E4E7EA",
},
- {
- "fontSize": 14,
- },
+ [
+ {
+ "fontSize": 14,
+ },
+ {
+ "backgroundColor": "transparent",
+ "fontFamily": "Inter",
+ "fontWeight": "700",
+ "textAlign": "left",
+ },
+ ],
]
}
>
@@ -3717,9 +3861,17 @@ exports[`Story Snapshots: InfoCardI18n should match snapshot 1`] = `
{
"color": "#2F343D",
},
- {
- "fontSize": 14,
- },
+ [
+ {
+ "fontSize": 14,
+ },
+ {
+ "backgroundColor": "transparent",
+ "fontFamily": "Inter",
+ "fontWeight": "700",
+ "textAlign": "left",
+ },
+ ],
]
}
>
@@ -3820,9 +3972,17 @@ exports[`Story Snapshots: InfoCardI18n should match snapshot 1`] = `
{
"color": "#2F343D",
},
- {
- "fontSize": 14,
- },
+ [
+ {
+ "fontSize": 14,
+ },
+ {
+ "backgroundColor": "transparent",
+ "fontFamily": "Inter",
+ "fontWeight": "700",
+ "textAlign": "left",
+ },
+ ],
]
}
>
@@ -3923,9 +4083,17 @@ exports[`Story Snapshots: InfoCardI18n should match snapshot 1`] = `
{
"color": "#2F343D",
},
- {
- "fontSize": 14,
- },
+ [
+ {
+ "fontSize": 14,
+ },
+ {
+ "backgroundColor": "transparent",
+ "fontFamily": "Inter",
+ "fontWeight": "700",
+ "textAlign": "left",
+ },
+ ],
]
}
>
@@ -4026,9 +4194,17 @@ exports[`Story Snapshots: InfoCardI18n should match snapshot 1`] = `
{
"color": "#2F343D",
},
- {
- "fontSize": 14,
- },
+ [
+ {
+ "fontSize": 14,
+ },
+ {
+ "backgroundColor": "transparent",
+ "fontFamily": "Inter",
+ "fontWeight": "700",
+ "textAlign": "left",
+ },
+ ],
]
}
>
@@ -5173,9 +5349,17 @@ exports[`Story Snapshots: SectionMarkdownList should match snapshot 1`] = `
{
"color": "#2F343D",
},
- {
- "fontSize": 14,
- },
+ [
+ {
+ "fontSize": 14,
+ },
+ {
+ "backgroundColor": "transparent",
+ "fontFamily": "Inter",
+ "fontWeight": "700",
+ "textAlign": "left",
+ },
+ ],
]
}
>
diff --git a/app/containers/UIKit/__snapshots__/UiKitModal.test.tsx.snap b/app/containers/UIKit/__snapshots__/UiKitModal.test.tsx.snap
index a098c73ec9f..b8f3b3830cf 100644
--- a/app/containers/UIKit/__snapshots__/UiKitModal.test.tsx.snap
+++ b/app/containers/UIKit/__snapshots__/UiKitModal.test.tsx.snap
@@ -883,9 +883,17 @@ exports[`Story Snapshots: ModalActionsWithShowMore should match snapshot 1`] = `
{
"color": "#2F343D",
},
- {
- "fontSize": 14,
- },
+ [
+ {
+ "fontSize": 14,
+ },
+ {
+ "backgroundColor": "transparent",
+ "fontFamily": "Inter",
+ "fontWeight": "700",
+ "textAlign": "left",
+ },
+ ],
]
}
>
@@ -1774,9 +1782,17 @@ exports[`Story Snapshots: ModalActionsWithShowMore should match snapshot 1`] = `
{
"color": "#2F343D",
},
- {
- "fontSize": 14,
- },
+ [
+ {
+ "fontSize": 14,
+ },
+ {
+ "backgroundColor": "transparent",
+ "fontFamily": "Inter",
+ "fontWeight": "700",
+ "textAlign": "left",
+ },
+ ],
]
}
>
@@ -1825,9 +1841,17 @@ exports[`Story Snapshots: ModalActionsWithShowMore should match snapshot 1`] = `
{
"color": "#2F343D",
},
- {
- "fontSize": 14,
- },
+ [
+ {
+ "fontSize": 14,
+ },
+ {
+ "backgroundColor": "transparent",
+ "fontFamily": "Inter",
+ "fontWeight": "700",
+ "textAlign": "left",
+ },
+ ],
]
}
>
@@ -3843,9 +3867,17 @@ exports[`Story Snapshots: ModalImages should match snapshot 1`] = `
{
"color": "#2F343D",
},
- {
- "fontSize": 14,
- },
+ [
+ {
+ "fontSize": 14,
+ },
+ {
+ "backgroundColor": "transparent",
+ "fontFamily": "Inter",
+ "fontWeight": "700",
+ "textAlign": "left",
+ },
+ ],
]
}
>
@@ -5043,9 +5075,17 @@ exports[`Story Snapshots: ModalSectionAccessories should match snapshot 1`] = `
{
"color": "#2F343D",
},
- {
- "fontSize": 14,
- },
+ [
+ {
+ "fontSize": 14,
+ },
+ {
+ "backgroundColor": "transparent",
+ "fontFamily": "Inter",
+ "fontWeight": "700",
+ "textAlign": "left",
+ },
+ ],
]
}
>
@@ -5144,9 +5184,17 @@ exports[`Story Snapshots: ModalSectionAccessories should match snapshot 1`] = `
{
"color": "#2F343D",
},
- {
- "fontSize": 14,
- },
+ [
+ {
+ "fontSize": 14,
+ },
+ {
+ "backgroundColor": "transparent",
+ "fontFamily": "Inter",
+ "fontWeight": "700",
+ "textAlign": "left",
+ },
+ ],
]
}
>
@@ -5245,9 +5293,17 @@ exports[`Story Snapshots: ModalSectionAccessories should match snapshot 1`] = `
{
"color": "#2F343D",
},
- {
- "fontSize": 14,
- },
+ [
+ {
+ "fontSize": 14,
+ },
+ {
+ "backgroundColor": "transparent",
+ "fontFamily": "Inter",
+ "fontWeight": "700",
+ "textAlign": "left",
+ },
+ ],
]
}
>
@@ -5407,9 +5463,17 @@ exports[`Story Snapshots: ModalSectionAccessories should match snapshot 1`] = `
{
"color": "#2F343D",
},
- {
- "fontSize": 14,
- },
+ [
+ {
+ "fontSize": 14,
+ },
+ {
+ "backgroundColor": "transparent",
+ "fontFamily": "Inter",
+ "fontWeight": "700",
+ "textAlign": "left",
+ },
+ ],
]
}
>
@@ -5548,9 +5612,17 @@ exports[`Story Snapshots: ModalSectionAccessories should match snapshot 1`] = `
{
"color": "#2F343D",
},
- {
- "fontSize": 14,
- },
+ [
+ {
+ "fontSize": 14,
+ },
+ {
+ "backgroundColor": "transparent",
+ "fontFamily": "Inter",
+ "fontWeight": "700",
+ "textAlign": "left",
+ },
+ ],
]
}
>
@@ -5689,9 +5761,17 @@ exports[`Story Snapshots: ModalSectionAccessories should match snapshot 1`] = `
{
"color": "#2F343D",
},
- {
- "fontSize": 14,
- },
+ [
+ {
+ "fontSize": 14,
+ },
+ {
+ "backgroundColor": "transparent",
+ "fontFamily": "Inter",
+ "fontWeight": "700",
+ "textAlign": "left",
+ },
+ ],
]
}
>
@@ -5830,9 +5910,17 @@ exports[`Story Snapshots: ModalSectionAccessories should match snapshot 1`] = `
{
"color": "#2F343D",
},
- {
- "fontSize": 14,
- },
+ [
+ {
+ "fontSize": 14,
+ },
+ {
+ "backgroundColor": "transparent",
+ "fontFamily": "Inter",
+ "fontWeight": "700",
+ "textAlign": "left",
+ },
+ ],
]
}
>
@@ -5976,9 +6064,17 @@ exports[`Story Snapshots: ModalSectionSelects should match snapshot 1`] = `
{
"color": "#2F343D",
},
- {
- "fontSize": 14,
- },
+ [
+ {
+ "fontSize": 14,
+ },
+ {
+ "backgroundColor": "transparent",
+ "fontFamily": "Inter",
+ "fontWeight": "700",
+ "textAlign": "left",
+ },
+ ],
]
}
>
@@ -6203,9 +6299,17 @@ exports[`Story Snapshots: ModalSectionSelects should match snapshot 1`] = `
{
"color": "#2F343D",
},
- {
- "fontSize": 14,
- },
+ [
+ {
+ "fontSize": 14,
+ },
+ {
+ "backgroundColor": "transparent",
+ "fontFamily": "Inter",
+ "fontWeight": "700",
+ "textAlign": "left",
+ },
+ ],
]
}
>
@@ -6339,9 +6443,17 @@ exports[`Story Snapshots: ModalSectionSelects should match snapshot 1`] = `
{
"color": "#2F343D",
},
- {
- "fontSize": 14,
- },
+ [
+ {
+ "fontSize": 14,
+ },
+ {
+ "backgroundColor": "transparent",
+ "fontFamily": "Inter",
+ "fontWeight": "700",
+ "textAlign": "left",
+ },
+ ],
]
}
>
@@ -6488,9 +6600,17 @@ exports[`Story Snapshots: ModalSectionSelects should match snapshot 1`] = `
{
"color": "#2F343D",
},
- {
- "fontSize": 14,
- },
+ [
+ {
+ "fontSize": 14,
+ },
+ {
+ "backgroundColor": "transparent",
+ "fontFamily": "Inter",
+ "fontWeight": "700",
+ "textAlign": "left",
+ },
+ ],
]
}
>
@@ -6624,9 +6744,17 @@ exports[`Story Snapshots: ModalSectionSelects should match snapshot 1`] = `
{
"color": "#2F343D",
},
- {
- "fontSize": 14,
- },
+ [
+ {
+ "fontSize": 14,
+ },
+ {
+ "backgroundColor": "transparent",
+ "fontFamily": "Inter",
+ "fontWeight": "700",
+ "textAlign": "left",
+ },
+ ],
]
}
>
diff --git a/app/containers/markdown/Markdown.stories.tsx b/app/containers/markdown/Markdown.stories.tsx
index fb9b7fa94c1..9a5b4a6161e 100644
--- a/app/containers/markdown/Markdown.stories.tsx
+++ b/app/containers/markdown/Markdown.stories.tsx
@@ -75,6 +75,7 @@ const mentions = [
{ _id: 'all', username: 'all', type: 'user' },
{ _id: 'team', name: 'team', type: 'team' }
];
+const channels = [{ _id: '123', name: 'test-channel' }];
export const Mentions = () => (
@@ -83,9 +84,44 @@ export const Mentions = () => (
);
+export const MentionsWithFormatting = () => (
+
+
+
+
+
+
+
+);
+
export const Hashtag = () => (
-
+
);
@@ -131,6 +167,35 @@ export const Headers = () => (
);
+export const HeadersWithFormatting = () => (
+
+
+
+
+
+
+);
+
export const Code = () => (
@@ -175,7 +240,7 @@ export const TextStyle = () => (
textStyle={textStyle}
/>
-
+
This is block quote
this is a normal line`}
diff --git a/app/containers/markdown/__snapshots__/Markdown.test.tsx.snap b/app/containers/markdown/__snapshots__/Markdown.test.tsx.snap
index 009e5615a36..5756d2d0cd9 100644
--- a/app/containers/markdown/__snapshots__/Markdown.test.tsx.snap
+++ b/app/containers/markdown/__snapshots__/Markdown.test.tsx.snap
@@ -1112,6 +1112,7 @@ exports[`Story Snapshots: Headers should match snapshot 1`] = `
"fontFamily": "Inter",
"fontSize": 24,
"fontWeight": "700",
+ "lineHeight": 30,
"textAlign": "left",
},
{
@@ -1120,7 +1121,31 @@ exports[`Story Snapshots: Headers should match snapshot 1`] = `
]
}
>
- Header 1
+
+ Header 1
+
- Header 2
+
+ Header 2
+
- Header 3
+
+ Header 3
+
- Header 4
-
-
-
-`;
-
-exports[`Story Snapshots: Image should match snapshot 1`] = `
-
-
-
-
+ "color": "#2F343D",
+ },
+ {
+ "backgroundColor": "transparent",
+ "fontFamily": "Inter",
+ "fontSize": 18,
+ "fontWeight": "600",
+ "lineHeight": 24,
+ "textAlign": "left",
+ },
+ ]
+ }
+ >
+ Header 4
`;
-exports[`Story Snapshots: Links should match snapshot 1`] = `
+exports[`Story Snapshots: HeadersWithFormatting should match snapshot 1`] = `
+
+ H1
+
- Markdown link
+ bold
+
+
+
+
+
- :
-
-
-
- [description](url)
-
+ italic
-
-
-
-
+
+
+
- Formatted Link
-
-
- :
-
-
-
- <url|description>
-
+ strike
-
-
-
-
-
- Markdown link
-
-
- and the text with default style
-
+
-
-
-
-
-
- Markdown link
-
-
- and the text continues on the next line
+
+ code
+
+
+
+
+
+ 🚀
+
+
+
+
+
+ rocket.cat
+
+
+
+
+
+ test-channel
+
+
+
+
+
+ https://rocket.chat
+
-
-`;
-
-exports[`Story Snapshots: Lists should match snapshot 1`] = `
-
-
-
+
+ H2
+
+
- •
-
-
-
-
- Open Source
-
-
+ bold
-
-
+
+
+
+
- •
-
-
-
-
- Rocket.Chat
-
-
+ italic
-
-
-
+
-
- - nodejs
-
+
-
-
- - ReactNative
+ strike
-
-
-
-
-
-
+
+
+
+
+ code
+
+
+
+
+
+
+
+ 🚀
+
+
+
+
+
+ rocket.cat
+
+
+
+
+
+ test-channel
+
+
+
+
+
+ https://rocket.chat
+
+
+
+
+
+
+ H3
+
+
+
+ bold
+
+
+
+
+
+
+
+ italic
+
+
+
+
+
+
+
+ strike
+
+
+
+
+
+
+
+ code
+
+
+
+
+
+
+
+ 🚀
+
+
+
+
+
+ rocket.cat
+
+
+
+
+
+ test-channel
+
+
+
+
+
+ https://rocket.chat
+
+
+
+
+
+
+ H4
+
+
+
+ bold
+
+
+
+
+
+
+
+ italic
+
+
+
+
+
+
+
+ strike
+
+
+
+
+
+
+
+ code
+
+
+
+
+
+
+
+ 🚀
+
+
+
+
+
+ rocket.cat
+
+
+
+
+
+ test-channel
+
+
+
+
+
+ https://rocket.chat
+
+
+
+
+`;
+
+exports[`Story Snapshots: Image should match snapshot 1`] = `
+
+
+
+
+
+
+
+
+
+`;
+
+exports[`Story Snapshots: Links should match snapshot 1`] = `
+
+
+
+
+
+ Markdown link
+
+
+ :
+
+
+
+ [description](url)
+
+
+
+
+
+
+
+
+
+ Formatted Link
+
+
+ :
+
+
+
+ <url|description>
+
+
+
+
+
+
+
+
+
+ Markdown link
+
+
+ and the text with default style
+
+
+
+
+
+
+
+
+ Markdown link
+
+
+ and the text continues on the next line
+
+
+
+
+
+`;
+
+exports[`Story Snapshots: Lists should match snapshot 1`] = `
+
+
+
+
+
+ •
+
+
+
+
+ Open Source
+
+
+
+
+
+
+ •
+
+
+
+
+ Rocket.Chat
+
+
+
+
+
+
+
+
+ - nodejs
+
+
+
+
+
+
+ - ReactNative
+
+
+
+
+
+
+
+
+ 1
+ .
+
+
+
+
+ Open Source
+
+
+
+
+
+
+ 2
+ .
+
+
+
+
+ Rocket.Chat
+
+
+
+
+
+
+
+
+
+
+ •
+
+
+
+
+
+ bold
+
+
+
+
+
+
+
+
+
+
+ •
+
+
+
+
+
+ italic
+
+
+
+
+
+
+
+
+
+
+ •
+
+
+
+
+
+ strikethrough
+
+
+
+
+
+
+
+
+
+
+ •
+
+
+
+
+
+
+ bold italic
+
+
+
+
+
+
+
+
+
+
+
+ •
+
+
+
+
+
+
+ bold strikethrough
+
+
+
+
+
+
+
+
+
+
+
+ •
+
+
+
+
+
+
+ italic strikethrough
+
+
+
+
+
+
+
+
+
+
+
+ •
+
+
- 1
- .
+
+
+
+
+
+ bold italic strikethrough
+
+
+
+
+
+
+
+
+
+
+`;
+
+exports[`Story Snapshots: Mentions should match snapshot 1`] = `
+
+
+
+
+
+
+ rocket.cat
+
+
+
+
+
+ name1
+
+
+
+
+
+ all
+
+
+
+
+
+ here
+
+
+
+
+
+ @unknown
+
+
+
+
+
+ team
+
+
+
+
+
+
+
+
+ Rocket Cat
+
+
+
+
+
+ Name
+
+
+
+
+
+ all
+
+
+
+
+
+ here
+
+
+
+
+
+ @unknown
+
+
+
+
+
+ team
+
+
+
+
+
+`;
+
+exports[`Story Snapshots: MentionsWithFormatting should match snapshot 1`] = `
+
+
+
+
+ Normal:
+
+
+ rocket.cat
+
+
-
- Open Source
-
+
+
+
+ name1
+
+
+
+
+
+ all
+
+
+
+
+
+ here
+
+
+
+
+
+ test-channel
-
-
+
+
+
- 2
- .
-
-
+
+ Bold:
+
- Rocket.Chat
+ rocket.cat
-
-
-
-
-
-
-
-
- •
-
-
+
+
+
-
- bold
-
+ name1
+
+
+
+
+
-
+ all
-
-
-
-
- •
-
-
+
+
+
+ }
+ }
+ >
+
+ here
+
+
+
+
+
-
- italic
-
-
-
-
+ test-channel
-
-
+
+
+
- •
-
-
+
+ Italic:
+
-
- strikethrough
-
+
+
+
+ rocket.cat
-
-
-
-
- •
-
-
+
+
+
-
+
-
- bold italic
-
-
+ },
+ {
+ "color": "#8E6300",
+ },
+ ]
+ }
+ >
+ name1
-
-
-
-
- •
-
-
+
+
+
-
+
-
- bold strikethrough
-
-
+ "backgroundColor": "transparent",
+ "fontFamily": "Inter",
+ "fontSize": 16,
+ "fontWeight": "600",
+ "textAlign": "left",
+ },
+ {
+ "color": "#974809",
+ },
+ ]
+ }
+ >
+ all
-
-
-
-
- •
-
-
+
+
+
+
+
+
-
-
- italic strikethrough
-
-
+ here
-
-
-
-
- •
-
-
+
+
+
-
+
-
-
- bold italic strikethrough
-
-
-
+ },
+ {
+ "color": "#095AD2",
+ },
+ ]
+ }
+ >
+ test-channel
+
+
+
-
+
-
-
-`;
-
-exports[`Story Snapshots: Mentions should match snapshot 1`] = `
-
-
- rocket.cat
-
-
-
-
-
- name1
-
-
-
+ Strikethrough:
- all
+
+ rocket.cat
+
- here
+
+ name1
+
+
+ all
+
+
+
- @unknown
+
+
+
+
+ here
+
- team
+
+ test-channel
+
@@ -3121,26 +6574,7 @@ exports[`Story Snapshots: Mentions should match snapshot 1`] = `
}
>
- Rocket Cat
-
-
-
-
-
- Name
+ Italic + Bold + Strikethrough:
-
-
-
- all
+ "textDecorationLine": "line-through",
+ }
+ }
+ >
+
+
+ rocket.cat
+
+
+
- here
+
+
+
+ name1
+
+
+
+
+
+
+ all
+
+
+
+
+
- @unknown
+
+
+
+
+
+
+ here
+
+
+
- team
+
+
+
+ test-channel
+
+
+
@@ -4007,6 +7607,12 @@ exports[`Story Snapshots: Text should match snapshot 1`] = `
{
"color": "#2F343D",
},
+ {
+ "backgroundColor": "transparent",
+ "fontFamily": "Inter",
+ "fontWeight": "700",
+ "textAlign": "left",
+ },
]
}
>
@@ -4143,6 +7749,12 @@ exports[`Story Snapshots: Text should match snapshot 1`] = `
{
"color": "#2F343D",
},
+ {
+ "backgroundColor": "transparent",
+ "fontFamily": "Inter",
+ "fontWeight": "700",
+ "textAlign": "left",
+ },
]
}
>
@@ -4196,6 +7808,12 @@ exports[`Story Snapshots: Text should match snapshot 1`] = `
{
"color": "#2F343D",
},
+ {
+ "backgroundColor": "transparent",
+ "fontFamily": "Inter",
+ "fontWeight": "700",
+ "textAlign": "left",
+ },
]
}
>
@@ -4256,6 +7874,12 @@ exports[`Story Snapshots: Text should match snapshot 1`] = `
{
"color": "#2F343D",
},
+ {
+ "backgroundColor": "transparent",
+ "fontFamily": "Inter",
+ "fontWeight": "700",
+ "textAlign": "left",
+ },
]
}
>
@@ -4408,10 +8032,18 @@ exports[`Story Snapshots: TextStyle should match snapshot 1`] = `
{
"color": "#2F343D",
},
- {
- "color": "red",
- "fontSize": 10,
- },
+ [
+ {
+ "color": "red",
+ "fontSize": 10,
+ },
+ {
+ "backgroundColor": "transparent",
+ "fontFamily": "Inter",
+ "fontWeight": "700",
+ "textAlign": "left",
+ },
+ ],
]
}
>
@@ -4568,10 +8200,18 @@ exports[`Story Snapshots: TextStyle should match snapshot 1`] = `
{
"color": "#2F343D",
},
- {
- "color": "red",
- "fontSize": 10,
- },
+ [
+ {
+ "color": "red",
+ "fontSize": 10,
+ },
+ {
+ "backgroundColor": "transparent",
+ "fontFamily": "Inter",
+ "fontWeight": "700",
+ "textAlign": "left",
+ },
+ ],
]
}
>
@@ -4629,10 +8269,18 @@ exports[`Story Snapshots: TextStyle should match snapshot 1`] = `
{
"color": "#2F343D",
},
- {
- "color": "red",
- "fontSize": 10,
- },
+ [
+ {
+ "color": "red",
+ "fontSize": 10,
+ },
+ {
+ "backgroundColor": "transparent",
+ "fontFamily": "Inter",
+ "fontWeight": "700",
+ "textAlign": "left",
+ },
+ ],
]
}
>
@@ -4697,10 +8345,18 @@ exports[`Story Snapshots: TextStyle should match snapshot 1`] = `
{
"color": "#2F343D",
},
- {
- "color": "red",
- "fontSize": 10,
- },
+ [
+ {
+ "color": "red",
+ "fontSize": 10,
+ },
+ {
+ "backgroundColor": "transparent",
+ "fontFamily": "Inter",
+ "fontWeight": "700",
+ "textAlign": "left",
+ },
+ ],
]
}
>
diff --git a/app/containers/markdown/components/Heading.tsx b/app/containers/markdown/components/Heading.tsx
index b4b3cae3618..262d8174bc8 100644
--- a/app/containers/markdown/components/Heading.tsx
+++ b/app/containers/markdown/components/Heading.tsx
@@ -1,29 +1,63 @@
+import { type ReactElement } from 'react';
import { Text } from 'react-native';
import { type Heading as HeadingProps } from '@rocket.chat/message-parser';
import { themes } from '../../../lib/constants/colors';
import styles from '../styles';
import { useTheme } from '../../../theme';
+import { AtMention, Hashtag } from './mentions';
+import { Emoji } from './emoji';
+import { Bold, Italic, Link, Strike } from './inline/index';
+import Plain from './Plain';
+import InlineCode from './InlineCode';
+import Image from './Image';
+import MarkdownContext, { useMarkdownContext } from '../contexts/MarkdownContext';
+import Timestamp from './Timestamp';
interface IHeadingProps {
value: HeadingProps['value'];
level: HeadingProps['level'];
}
-const Heading = ({ value, level }: IHeadingProps) => {
+const Heading = ({ value, level }: IHeadingProps): ReactElement => {
+ 'use memo';
+
const { theme } = useTheme();
const textStyle = styles[`heading${level}`];
+ const context = useMarkdownContext({ textStyle });
return (
- {value.map(block => {
- switch (block.type) {
- case 'PLAIN_TEXT':
- return block.value;
- default:
- return null;
- }
- })}
+
+ {value.map((block, index) => {
+ switch (block.type) {
+ case 'IMAGE':
+ return ;
+ case 'PLAIN_TEXT':
+ return ;
+ case 'BOLD':
+ return ;
+ case 'STRIKE':
+ return ;
+ case 'ITALIC':
+ return ;
+ case 'LINK':
+ return ;
+ case 'MENTION_USER':
+ return ;
+ case 'EMOJI':
+ return ;
+ case 'MENTION_CHANNEL':
+ return ;
+ case 'INLINE_CODE':
+ return ;
+ case 'TIMESTAMP':
+ return ;
+ default:
+ return null;
+ }
+ })}
+
);
};
diff --git a/app/containers/markdown/components/Inline.tsx b/app/containers/markdown/components/Inline.tsx
index 284a8193ef9..98034445d2a 100644
--- a/app/containers/markdown/components/Inline.tsx
+++ b/app/containers/markdown/components/Inline.tsx
@@ -1,4 +1,4 @@
-import { useContext, type ReactElement } from 'react';
+import { type ReactElement } from 'react';
import { Text } from 'react-native';
import { type Paragraph as ParagraphProps } from '@rocket.chat/message-parser';
@@ -9,7 +9,6 @@ import { Bold, Italic, Link, Strike } from './inline/index';
import Plain from './Plain';
import InlineCode from './InlineCode';
import Image from './Image';
-import MarkdownContext from '../contexts/MarkdownContext';
import Timestamp from './Timestamp';
// import { InlineKaTeX, KaTeX } from './Katex';
@@ -19,7 +18,6 @@ interface IParagraphProps {
}
const Inline = ({ value, forceTrim }: IParagraphProps): ReactElement | null => {
- const { useRealName, username, navToRoomInfo, mentions, channels } = useContext(MarkdownContext);
return (
{value.map((block, index) => {
@@ -53,19 +51,11 @@ const Inline = ({ value, forceTrim }: IParagraphProps): ReactElement | null => {
case 'LINK':
return ;
case 'MENTION_USER':
- return (
-
- );
+ return ;
case 'EMOJI':
return ;
case 'MENTION_CHANNEL':
- return ;
+ return ;
case 'INLINE_CODE':
return ;
case 'INLINE_KATEX':
diff --git a/app/containers/markdown/components/inline/Bold.tsx b/app/containers/markdown/components/inline/Bold.tsx
index f1717ed62fd..e5ed5706441 100644
--- a/app/containers/markdown/components/inline/Bold.tsx
+++ b/app/containers/markdown/components/inline/Bold.tsx
@@ -3,7 +3,9 @@ import { type Bold as BoldProps } from '@rocket.chat/message-parser';
import { Italic, Link, Strike } from './index';
import Plain from '../Plain';
+import { Hashtag, AtMention } from '../mentions';
import sharedStyles from '../../../../views/Styles';
+import MarkdownContext, { useMarkdownContext } from '../../contexts/MarkdownContext';
interface IBoldProps {
value: BoldProps['value'];
@@ -15,25 +17,35 @@ const styles = StyleSheet.create({
}
});
-const Bold = ({ value }: IBoldProps) => (
-
- {value.map(block => {
- switch (block.type) {
- case 'LINK':
- return ;
- case 'PLAIN_TEXT':
- return ;
- case 'STRIKE':
- return ;
- case 'ITALIC':
- return ;
- case 'MENTION_CHANNEL':
- return ;
- default:
- return null;
- }
- })}
-
-);
+const Bold = ({ value }: IBoldProps) => {
+ 'use memo';
+
+ const context = useMarkdownContext({ textStyle: sharedStyles.textBold });
+
+ return (
+
+
+ {value.map(block => {
+ switch (block.type) {
+ case 'LINK':
+ return ;
+ case 'PLAIN_TEXT':
+ return ;
+ case 'STRIKE':
+ return ;
+ case 'ITALIC':
+ return ;
+ case 'MENTION_CHANNEL':
+ return ;
+ case 'MENTION_USER':
+ return ;
+ default:
+ return null;
+ }
+ })}
+
+
+ );
+};
export default Bold;
diff --git a/app/containers/markdown/components/inline/Italic.tsx b/app/containers/markdown/components/inline/Italic.tsx
index a65dc96d7f1..fd50f902e80 100644
--- a/app/containers/markdown/components/inline/Italic.tsx
+++ b/app/containers/markdown/components/inline/Italic.tsx
@@ -3,6 +3,7 @@ import { type Italic as ItalicProps } from '@rocket.chat/message-parser';
import { Bold, Link, Strike } from './index';
import Plain from '../Plain';
+import { AtMention, Hashtag } from '../mentions';
interface IItalicProps {
value: ItalicProps['value'];
@@ -14,25 +15,31 @@ const styles = StyleSheet.create({
}
});
-const Italic = ({ value }: IItalicProps) => (
-
- {value.map(block => {
- switch (block.type) {
- case 'LINK':
- return ;
- case 'PLAIN_TEXT':
- return ;
- case 'STRIKE':
- return ;
- case 'BOLD':
- return ;
- case 'MENTION_CHANNEL':
- return ;
- default:
- return null;
- }
- })}
-
-);
+const Italic = ({ value }: IItalicProps) => {
+ 'use memo';
+
+ return (
+
+ {value.map(block => {
+ switch (block.type) {
+ case 'LINK':
+ return ;
+ case 'PLAIN_TEXT':
+ return ;
+ case 'STRIKE':
+ return ;
+ case 'BOLD':
+ return ;
+ case 'MENTION_CHANNEL':
+ return ;
+ case 'MENTION_USER':
+ return ;
+ default:
+ return null;
+ }
+ })}
+
+ );
+};
export default Italic;
diff --git a/app/containers/markdown/components/inline/Strike.tsx b/app/containers/markdown/components/inline/Strike.tsx
index 362d3c1d11f..8364768a553 100644
--- a/app/containers/markdown/components/inline/Strike.tsx
+++ b/app/containers/markdown/components/inline/Strike.tsx
@@ -3,6 +3,7 @@ import { type Strike as StrikeProps } from '@rocket.chat/message-parser';
import { Bold, Italic, Link } from './index';
import Plain from '../Plain';
+import { AtMention, Hashtag } from '../mentions';
interface IStrikeProps {
value: StrikeProps['value'];
@@ -14,25 +15,31 @@ const styles = StyleSheet.create({
}
});
-const Strike = ({ value }: IStrikeProps) => (
-
- {value.map(block => {
- switch (block.type) {
- case 'LINK':
- return ;
- case 'PLAIN_TEXT':
- return ;
- case 'BOLD':
- return ;
- case 'ITALIC':
- return ;
- case 'MENTION_CHANNEL':
- return ;
- default:
- return null;
- }
- })}
-
-);
+const Strike = ({ value }: IStrikeProps) => {
+ 'use memo';
+
+ return (
+
+ {value.map(block => {
+ switch (block.type) {
+ case 'LINK':
+ return ;
+ case 'PLAIN_TEXT':
+ return ;
+ case 'BOLD':
+ return ;
+ case 'ITALIC':
+ return ;
+ case 'MENTION_CHANNEL':
+ return ;
+ case 'MENTION_USER':
+ return ;
+ default:
+ return null;
+ }
+ })}
+
+ );
+};
export default Strike;
diff --git a/app/containers/markdown/components/mentions/AtMention.tsx b/app/containers/markdown/components/mentions/AtMention.tsx
index bb454b7bbd2..27c3b8ccac6 100644
--- a/app/containers/markdown/components/mentions/AtMention.tsx
+++ b/app/containers/markdown/components/mentions/AtMention.tsx
@@ -6,21 +6,16 @@ import { themes } from '../../../../lib/constants/colors';
import { USER_MENTIONS_PREFERENCES_KEY } from '../../../../lib/constants/keys';
import styles from '../../styles';
import { events, logEvent } from '../../../../lib/methods/helpers/log';
-import { type IUserMention } from '../../interfaces';
import { useUserPreferences } from '../../../../lib/methods/userPreferences';
import MarkdownContext from '../../contexts/MarkdownContext';
interface IAtMention {
mention: string;
- username?: string;
- navToRoomInfo?: Function;
- useRealName?: boolean;
- mentions?: IUserMention[];
}
-const AtMention = memo(({ mention, mentions, username, navToRoomInfo, useRealName }: IAtMention) => {
+const AtMention = memo(({ mention }: IAtMention) => {
const { theme } = useTheme();
- const { textStyle } = useContext(MarkdownContext);
+ const { textStyle, username, navToRoomInfo, useRealName, mentions } = useContext(MarkdownContext);
const [mentionsWithAtSymbol] = useUserPreferences(USER_MENTIONS_PREFERENCES_KEY, false);
const preffix = mentionsWithAtSymbol ? '@' : '';
if (mention === 'all' || mention === 'here') {
diff --git a/app/containers/markdown/components/mentions/Hashtag.tsx b/app/containers/markdown/components/mentions/Hashtag.tsx
index 3336998369c..44259738c9a 100644
--- a/app/containers/markdown/components/mentions/Hashtag.tsx
+++ b/app/containers/markdown/components/mentions/Hashtag.tsx
@@ -12,19 +12,16 @@ import { goRoom } from '../../../../lib/methods/helpers/goRoom';
import { getRoomInfo } from '../../../../lib/services/restApi';
import { useTheme } from '../../../../theme';
import { sendLoadingEvent } from '../../../Loading';
-import { type IUserChannel } from '../../interfaces';
import styles from '../../styles';
import MarkdownContext from '../../contexts/MarkdownContext';
interface IHashtag {
hashtag: string;
- navToRoomInfo?: Function;
- channels?: IUserChannel[];
}
-const Hashtag = memo(({ hashtag, channels, navToRoomInfo }: IHashtag) => {
+const Hashtag = memo(({ hashtag }: IHashtag) => {
const { theme } = useTheme();
- const { textStyle } = useContext(MarkdownContext);
+ const { textStyle, channels, navToRoomInfo } = useContext(MarkdownContext);
const [roomsWithHashTagSymbol] = useUserPreferences(ROOM_MENTIONS_PREFERENCES_KEY, false);
const isMasterDetail = useMasterDetail();
const preffix = roomsWithHashTagSymbol ? '#' : '';
diff --git a/app/containers/markdown/contexts/MarkdownContext.ts b/app/containers/markdown/contexts/MarkdownContext.ts
index ee58ef1c1cd..cbcdcf7ca69 100644
--- a/app/containers/markdown/contexts/MarkdownContext.ts
+++ b/app/containers/markdown/contexts/MarkdownContext.ts
@@ -1,4 +1,4 @@
-import { createContext } from 'react';
+import { createContext, useContext } from 'react';
import { type StyleProp, type TextStyle } from 'react-native';
import { type IUserMention, type IUserChannel } from '../interfaces';
@@ -23,4 +23,23 @@ const defaultState = {
};
const MarkdownContext = createContext(defaultState);
+
+export const useMarkdownContext = (overrides?: Partial): IMarkdownContext => {
+ const context = useContext(MarkdownContext);
+ if (!overrides) return context;
+
+ // Merge the context and overrides
+ const newContext = { ...context, ...overrides };
+
+ // Deep merge textStyle if both exist
+ if (context.textStyle && overrides.textStyle) {
+ newContext.textStyle = [
+ ...(Array.isArray(context.textStyle) ? context.textStyle : [context.textStyle]),
+ ...(Array.isArray(overrides.textStyle) ? overrides.textStyle : [overrides.textStyle])
+ ];
+ }
+
+ return newContext;
+};
+
export default MarkdownContext;
diff --git a/app/containers/markdown/styles.ts b/app/containers/markdown/styles.ts
index 761d27a505f..c3e85b92a8c 100644
--- a/app/containers/markdown/styles.ts
+++ b/app/containers/markdown/styles.ts
@@ -97,27 +97,33 @@ export default StyleSheet.create({
},
heading1: {
...sharedStyles.textBold,
- fontSize: 24
+ fontSize: 24,
+ lineHeight: 30
},
heading2: {
...sharedStyles.textBold,
- fontSize: 22
+ fontSize: 22,
+ lineHeight: 28
},
heading3: {
...sharedStyles.textSemibold,
- fontSize: 20
+ fontSize: 20,
+ lineHeight: 26
},
heading4: {
...sharedStyles.textSemibold,
- fontSize: 18
+ fontSize: 18,
+ lineHeight: 24
},
heading5: {
...sharedStyles.textMedium,
- fontSize: 16
+ fontSize: 16,
+ lineHeight: 22
},
heading6: {
...sharedStyles.textMedium,
- fontSize: 14
+ fontSize: 14,
+ lineHeight: 20
},
quote: {
height: '100%',
diff --git a/app/containers/message/components/__tests__/__snapshots__/Message.test.tsx.snap b/app/containers/message/components/__tests__/__snapshots__/Message.test.tsx.snap
index 4b0bda15861..674d94dd4b5 100644
--- a/app/containers/message/components/__tests__/__snapshots__/Message.test.tsx.snap
+++ b/app/containers/message/components/__tests__/__snapshots__/Message.test.tsx.snap
@@ -52653,6 +52653,12 @@ exports[`Story Snapshots: FileAttachmentsWithFilenames should match snapshot 1`]
{
"color": "#2F343D",
},
+ {
+ "backgroundColor": "transparent",
+ "fontFamily": "Inter",
+ "fontWeight": "700",
+ "textAlign": "left",
+ },
]
}
>
@@ -55567,6 +55573,12 @@ exports[`Story Snapshots: FileAttachmentsWithFilenamesLargeFont should match sna
{
"color": "#2F343D",
},
+ {
+ "backgroundColor": "transparent",
+ "fontFamily": "Inter",
+ "fontWeight": "700",
+ "textAlign": "left",
+ },
]
}
>
@@ -94559,6 +94571,12 @@ exports[`Story Snapshots: MessageWithReplyAndFile should match snapshot 1`] = `
{
"color": "#2F343D",
},
+ {
+ "backgroundColor": "transparent",
+ "fontFamily": "Inter",
+ "fontWeight": "700",
+ "textAlign": "left",
+ },
]
}
>
@@ -96651,6 +96669,12 @@ exports[`Story Snapshots: MessageWithReplyAndFileLargeFont should match snapshot
{
"color": "#2F343D",
},
+ {
+ "backgroundColor": "transparent",
+ "fontFamily": "Inter",
+ "fontWeight": "700",
+ "textAlign": "left",
+ },
]
}
>
@@ -129525,6 +129549,12 @@ exports[`Story Snapshots: ShowButtonAsAttachment should match snapshot 1`] = `
{
"color": "#2F343D",
},
+ {
+ "backgroundColor": "transparent",
+ "fontFamily": "Inter",
+ "fontWeight": "700",
+ "textAlign": "left",
+ },
]
}
>
@@ -130765,6 +130795,12 @@ exports[`Story Snapshots: ShowButtonAsAttachmentLargeFont should match snapshot
{
"color": "#2F343D",
},
+ {
+ "backgroundColor": "transparent",
+ "fontFamily": "Inter",
+ "fontWeight": "700",
+ "textAlign": "left",
+ },
]
}
>
@@ -149944,6 +149980,12 @@ exports[`Story Snapshots: TwoShortCustomFieldsWithMarkdown should match snapshot
{
"color": "#2F343D",
},
+ {
+ "backgroundColor": "transparent",
+ "fontFamily": "Inter",
+ "fontWeight": "700",
+ "textAlign": "left",
+ },
]
}
>
@@ -151131,6 +151173,12 @@ exports[`Story Snapshots: TwoShortCustomFieldsWithMarkdownLargeFont should match
{
"color": "#2F343D",
},
+ {
+ "backgroundColor": "transparent",
+ "fontFamily": "Inter",
+ "fontWeight": "700",
+ "textAlign": "left",
+ },
]
}
>
diff --git a/jest.config.js b/jest.config.js
index aa5e3a720c6..8dcdf6d5a6f 100644
--- a/jest.config.js
+++ b/jest.config.js
@@ -2,7 +2,7 @@ module.exports = {
modulePathIgnorePatterns: ['/.*worktrees/'],
testPathIgnorePatterns: ['e2e', 'node_modules', '/.*worktrees/', '/__tests__/testHelpers\\.tsx$'],
transformIgnorePatterns: [
- 'node_modules/(?!((jest-)?react-native|@react-native(-community)?)|expo(nent)?|@expo(nent)?/.*|@expo-google-fonts/.*|react-navigation|@react-navigation/.*|@unimodules/.*|unimodules|sentry-expo|native-base|react-native-svg|@rocket.chat/ui-kit|@rocket.chat/sdk|tiny-events)'
+ 'node_modules/(?!((jest-)?react-native|@react-native(-community)?)|expo(nent)?|@expo(nent)?/.*|@expo-google-fonts/.*|react-navigation|@react-navigation/.*|@unimodules/.*|unimodules|sentry-expo|native-base|react-native-svg|@rocket.chat/ui-kit|@rocket.chat/sdk|@rocket.chat/message-parser|tiny-events)'
],
preset: './jest.preset.js',
cacheDirectory: '/.jest-cache',
diff --git a/package.json b/package.json
index cb488c56114..73238f637d2 100644
--- a/package.json
+++ b/package.json
@@ -48,7 +48,7 @@
"@react-navigation/native": "^7.3.3",
"@react-navigation/native-stack": "^7.17.5",
"@rocket.chat/media-signaling": "1.0.0-rc.1",
- "@rocket.chat/message-parser": "0.31.31",
+ "@rocket.chat/message-parser": "0.31.36",
"@rocket.chat/mobile-crypto": "RocketChat/rocket.chat-mobile-crypto#main",
"@rocket.chat/sdk": "RocketChat/Rocket.Chat.js.SDK#mobile",
"@rocket.chat/ui-kit": "^0.39.0",
diff --git a/patches/@rocket.chat+message-parser+0.31.31.patch b/patches/@rocket.chat+message-parser+0.31.31.patch
deleted file mode 100644
index d255d0edc49..00000000000
--- a/patches/@rocket.chat+message-parser+0.31.31.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff --git a/node_modules/@rocket.chat/message-parser/messageParser.js b/node_modules/@rocket.chat/message-parser/messageParser.js
-index c1dc1bd..d25c5ed 100644
---- a/node_modules/@rocket.chat/message-parser/messageParser.js
-+++ b/node_modules/@rocket.chat/message-parser/messageParser.js
-@@ -3,5 +3,5 @@
- if (process.env.NODE_ENV === 'production') {
- module.exports = require('./dist/messageParser.production.js');
- } else {
-- module.exports = require('./dist/messageParser.development.js');
-+ module.exports = require('./dist/messageParser.production.js');
- }
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index eafb0f810ca..4b93a331e95 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -85,8 +85,8 @@ importers:
specifier: 1.0.0-rc.1
version: 1.0.0-rc.1
'@rocket.chat/message-parser':
- specifier: 0.31.31
- version: 0.31.31
+ specifier: 0.31.36
+ version: 0.31.36
'@rocket.chat/mobile-crypto':
specifier: RocketChat/rocket.chat-mobile-crypto#main
version: https://codeload.github.com/RocketChat/rocket.chat-mobile-crypto/tar.gz/69a0a250dd7c6ff0808eb659d7202be1cae7fa1c(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
@@ -2444,11 +2444,12 @@ packages:
'@rocket.chat/media-signaling@1.0.0-rc.1':
resolution: {integrity: sha512-yUMFOyhJfN1XH4IssQF17zAeaamNiSw3riaeuc+pby4XYDd405aN8jh//Lz2nn9c8DeGCCzUbRStlMlmPsbr6g==}
- '@rocket.chat/message-parser@0.31.31':
- resolution: {integrity: sha512-YWHdin2ejndwgQJXlHIzAmQB+xvZLeEOqOkPq8RxdyTjAaGo1DbBCrc0aU7u0LOUnGN+jm3H4grnYdI9SPwitA==}
+ '@rocket.chat/message-parser@0.31.36':
+ resolution: {integrity: sha512-Z8kmWHKswEYH9dnr6iU61DJG2BAmCTkvhXhZ4dtFHe8/UThgr8cJcFSpSJi/y8Fh7LakzQIsgq+xMZ1OcwZU+g==}
+ engines: {node: 22.16.0}
'@rocket.chat/mobile-crypto@https://codeload.github.com/RocketChat/rocket.chat-mobile-crypto/tar.gz/69a0a250dd7c6ff0808eb659d7202be1cae7fa1c':
- resolution: {gitHosted: true, integrity: sha512-v3uaVCYlj9gGZkAZe3JWQkhlGaRyahmnagbMSKtSnl+6WuLNxaPOf0GjJKVuxBdqkXPPhr23JIihVlch3FVeCQ==, tarball: https://codeload.github.com/RocketChat/rocket.chat-mobile-crypto/tar.gz/69a0a250dd7c6ff0808eb659d7202be1cae7fa1c}
+ resolution: {gitHosted: true, tarball: https://codeload.github.com/RocketChat/rocket.chat-mobile-crypto/tar.gz/69a0a250dd7c6ff0808eb659d7202be1cae7fa1c}
version: 0.4.0
peerDependencies:
react: '*'
@@ -7277,11 +7278,11 @@ packages:
resolution: {integrity: sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==}
engines: {node: '>=14.0.0'}
- tldts-core@5.7.112:
- resolution: {integrity: sha512-mutrEUgG2sp0e/MIAnv9TbSLR0IPbvmAImpzqul5O/HJ2XM1/I1sajchQ/fbj0fPdA31IiuWde8EUhfwyldY1Q==}
+ tldts-core@6.1.86:
+ resolution: {integrity: sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==}
- tldts@5.7.112:
- resolution: {integrity: sha512-6VSJ/C0uBtc2PQlLsp4IT8MIk2UUh6qVeXB1HZtK+0HiXlAPzNcfF3p2WM9RqCO/2X1PIa4danlBLPoC2/Tc7A==}
+ tldts@6.1.86:
+ resolution: {integrity: sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==}
hasBin: true
tmp@0.2.5:
@@ -10457,9 +10458,9 @@ snapshots:
'@rocket.chat/emitter': 0.32.0
ajv: 8.18.0
- '@rocket.chat/message-parser@0.31.31':
+ '@rocket.chat/message-parser@0.31.36':
dependencies:
- tldts: 5.7.112
+ tldts: 6.1.86
'@rocket.chat/mobile-crypto@https://codeload.github.com/RocketChat/rocket.chat-mobile-crypto/tar.gz/69a0a250dd7c6ff0808eb659d7202be1cae7fa1c(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)':
dependencies:
@@ -16076,11 +16077,11 @@ snapshots:
tinyspy@4.0.4: {}
- tldts-core@5.7.112: {}
+ tldts-core@6.1.86: {}
- tldts@5.7.112:
+ tldts@6.1.86:
dependencies:
- tldts-core: 5.7.112
+ tldts-core: 6.1.86
tmp@0.2.5: {}