@ethora/chat-component-rn 26.5.19 → 26.5.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/lib/commonjs/components/MainComponents/ChatHeader.js +2 -2
  2. package/lib/commonjs/components/MainComponents/ChatHeader.js.map +1 -1
  3. package/lib/commonjs/components/MessageBubble/Message.js +24 -9
  4. package/lib/commonjs/components/MessageBubble/Message.js.map +1 -1
  5. package/lib/commonjs/components/Modals/AttachSheet/AttachSheet.js +11 -7
  6. package/lib/commonjs/components/Modals/AttachSheet/AttachSheet.js.map +1 -1
  7. package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js +4 -3
  8. package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
  9. package/lib/commonjs/components/Modals/styledModalComponents.js +6 -2
  10. package/lib/commonjs/components/Modals/styledModalComponents.js.map +1 -1
  11. package/lib/commonjs/components/styled/SendInput.js +10 -11
  12. package/lib/commonjs/components/styled/SendInput.js.map +1 -1
  13. package/lib/commonjs/components/styled/StyledComponents.js +6 -2
  14. package/lib/commonjs/components/styled/StyledComponents.js.map +1 -1
  15. package/lib/commonjs/components/styled/StyledInputComponents/StyledInputComponents.js +6 -1
  16. package/lib/commonjs/components/styled/StyledInputComponents/StyledInputComponents.js.map +1 -1
  17. package/lib/commonjs/helpers/parseMessageBody.js +12 -5
  18. package/lib/commonjs/helpers/parseMessageBody.js.map +1 -1
  19. package/lib/commonjs/helpers/typography.js +28 -0
  20. package/lib/commonjs/helpers/typography.js.map +1 -0
  21. package/lib/commonjs/hooks/useChatFonts.js +91 -7
  22. package/lib/commonjs/hooks/useChatFonts.js.map +1 -1
  23. package/lib/module/components/MainComponents/ChatHeader.js +2 -2
  24. package/lib/module/components/MainComponents/ChatHeader.js.map +1 -1
  25. package/lib/module/components/MessageBubble/Message.js +24 -9
  26. package/lib/module/components/MessageBubble/Message.js.map +1 -1
  27. package/lib/module/components/Modals/AttachSheet/AttachSheet.js +11 -7
  28. package/lib/module/components/Modals/AttachSheet/AttachSheet.js.map +1 -1
  29. package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js +4 -3
  30. package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
  31. package/lib/module/components/Modals/styledModalComponents.js +6 -2
  32. package/lib/module/components/Modals/styledModalComponents.js.map +1 -1
  33. package/lib/module/components/styled/SendInput.js +10 -11
  34. package/lib/module/components/styled/SendInput.js.map +1 -1
  35. package/lib/module/components/styled/StyledComponents.js +6 -2
  36. package/lib/module/components/styled/StyledComponents.js.map +1 -1
  37. package/lib/module/components/styled/StyledInputComponents/StyledInputComponents.js +6 -1
  38. package/lib/module/components/styled/StyledInputComponents/StyledInputComponents.js.map +1 -1
  39. package/lib/module/helpers/parseMessageBody.js +12 -5
  40. package/lib/module/helpers/parseMessageBody.js.map +1 -1
  41. package/lib/module/helpers/typography.js +23 -0
  42. package/lib/module/helpers/typography.js.map +1 -0
  43. package/lib/module/hooks/useChatFonts.js +92 -8
  44. package/lib/module/hooks/useChatFonts.js.map +1 -1
  45. package/lib/typescript/components/MainComponents/ChatHeader.d.ts.map +1 -1
  46. package/lib/typescript/components/MessageBubble/Message.d.ts.map +1 -1
  47. package/lib/typescript/components/Modals/AttachSheet/AttachSheet.d.ts +0 -3
  48. package/lib/typescript/components/Modals/AttachSheet/AttachSheet.d.ts.map +1 -1
  49. package/lib/typescript/components/Modals/ChatProfileModal/ChatProfileModal.d.ts.map +1 -1
  50. package/lib/typescript/components/Modals/styledModalComponents.d.ts +7 -1
  51. package/lib/typescript/components/Modals/styledModalComponents.d.ts.map +1 -1
  52. package/lib/typescript/components/styled/SendInput.d.ts.map +1 -1
  53. package/lib/typescript/components/styled/StyledComponents.d.ts +7 -1
  54. package/lib/typescript/components/styled/StyledComponents.d.ts.map +1 -1
  55. package/lib/typescript/components/styled/StyledInputComponents/StyledInputComponents.d.ts +6 -2
  56. package/lib/typescript/components/styled/StyledInputComponents/StyledInputComponents.d.ts.map +1 -1
  57. package/lib/typescript/helpers/parseMessageBody.d.ts +2 -1
  58. package/lib/typescript/helpers/parseMessageBody.d.ts.map +1 -1
  59. package/lib/typescript/helpers/typography.d.ts +14 -0
  60. package/lib/typescript/helpers/typography.d.ts.map +1 -0
  61. package/lib/typescript/hooks/useChatFonts.d.ts.map +1 -1
  62. package/lib/typescript/main.d.ts +1 -1
  63. package/lib/typescript/main.d.ts.map +1 -1
  64. package/lib/typescript/types/types.d.ts +52 -47
  65. package/lib/typescript/types/types.d.ts.map +1 -1
  66. package/package.json +1 -1
  67. package/src/components/MainComponents/ChatHeader.tsx +2 -2
  68. package/src/components/MessageBubble/Message.tsx +27 -11
  69. package/src/components/Modals/AttachSheet/AttachSheet.tsx +8 -30
  70. package/src/components/Modals/ChatProfileModal/ChatProfileModal.tsx +6 -3
  71. package/src/components/Modals/styledModalComponents.tsx +6 -3
  72. package/src/components/styled/SendInput.tsx +10 -14
  73. package/src/components/styled/StyledComponents.ts +6 -3
  74. package/src/components/styled/StyledInputComponents/StyledInputComponents.tsx +4 -1
  75. package/src/helpers/parseMessageBody.tsx +13 -4
  76. package/src/helpers/typography.ts +19 -0
  77. package/src/hooks/useChatFonts.ts +69 -11
  78. package/src/main.ts +1 -0
  79. package/src/types/types.ts +55 -49
  80. package/lib/commonjs/helpers/getElementFont.js +0 -29
  81. package/lib/commonjs/helpers/getElementFont.js.map +0 -1
  82. package/lib/module/helpers/getElementFont.js +0 -24
  83. package/lib/module/helpers/getElementFont.js.map +0 -1
  84. package/lib/typescript/helpers/getElementFont.d.ts +0 -13
  85. package/lib/typescript/helpers/getElementFont.d.ts.map +0 -1
  86. package/src/helpers/getElementFont.ts +0 -25
@@ -1,4 +1,4 @@
1
- import type { ViewStyle, TextStyle, ImageSourcePropType } from 'react-native';
1
+ import type { ViewStyle, ImageSourcePropType, TextStyle } from 'react-native';
2
2
  import type { Iso639_1Codes } from './models/language.model';
3
3
  import type { IMessage } from './models/message.model';
4
4
  import type { RoomMember } from './models/room.model';
@@ -204,10 +204,30 @@ export interface RNFontSource {
204
204
  * itself (e.g. via `@expo-google-fonts/*` or its own `useFonts`), pass only
205
205
  * `fontFamily` and leave `fonts` empty.
206
206
  */
207
+ /**
208
+ * Per-element font size / weight override.
209
+ *
210
+ * `fontWeight` is honoured even with a custom `fontFamily`: when
211
+ * `weightFamilies` is configured, the chat maps the requested weight to the
212
+ * matching family variant at render time (a single font file can't synthesise
213
+ * 500/600 — only fake-bold ~700 — so the variant family is what actually
214
+ * renders medium/semibold). Omit a field to keep the component default.
215
+ */
216
+ export interface ChatTextStyle {
217
+ /** Point size. */
218
+ fontSize?: number;
219
+ /** '400' | '500' | '600' | '700' | 'normal' | 'bold' | number. */
220
+ fontWeight?: TextStyle['fontWeight'];
221
+ }
207
222
  export interface TypographyConfig {
208
223
  /** Family applied across the chat UI. Must be loaded (via `fonts` or by the host). */
209
224
  fontFamily?: string;
210
- /** Optional per-weight families, used where the chat renders bolder text. */
225
+ /**
226
+ * Optional per-weight families. REQUIRED for `fontWeight` overrides to take
227
+ * visible effect when a custom `fontFamily` is set — RN can't synthesise
228
+ * intermediate weights from one font file, so each weight needs its own
229
+ * loaded family (and a matching entry in `fonts`).
230
+ */
211
231
  weightFamilies?: {
212
232
  regular?: string;
213
233
  medium?: string;
@@ -216,50 +236,37 @@ export interface TypographyConfig {
216
236
  };
217
237
  /** Fonts for the SDK to load with expo-font before applying `fontFamily`. */
218
238
  fonts?: RNFontSource[];
219
- /** Per-element size / weight overrides. Each entry replaces only the
220
- * properties it sets; everything else keeps the built-in style. */
221
- elements?: {
222
- /** Message body text inside bubbles (default 16). */
223
- messageText?: ElementFontStyle;
224
- /** Sender's name above incoming bubbles (default 14 / 500). */
225
- senderName?: ElementFontStyle;
226
- /** Room title in the chat header (default 16 / 600). */
227
- chatHeaderTitle?: ElementFontStyle;
228
- /** Typed text AND the "Type message" placeholder (default 16).
229
- * Pair larger sizes with `inputLayout.minHeight` so glyphs aren't
230
- * clipped vertically. */
231
- input?: ElementFontStyle;
232
- /** Room name on the chat-profile screen (default 24 / 400). */
233
- chatProfileTitle?: ElementFontStyle;
234
- /** Member names in the chat-profile list (default 16 / 600). */
235
- chatProfileMemberName?: ElementFontStyle;
236
- /** "ATTACH" caption of the attachment sheet (default 13 / 600). */
237
- attachSheetTitle?: ElementFontStyle;
238
- /** Row labels in the attachment sheet — "Take photo", "Photo or
239
- * video", "Document" (default 16 / 500). */
240
- attachSheetRowLabel?: ElementFontStyle;
241
- /** Row hints under each label (default 12). */
242
- attachSheetRowHint?: ElementFontStyle;
243
- /** "Cancel" button of the attachment sheet (default 16 / 600). */
244
- attachSheetCancel?: ElementFontStyle;
239
+ /** Message body text inside chat bubbles. Default 16. */
240
+ messageText?: ChatTextStyle;
241
+ /** Sender name shown above incoming messages. Default 14 / "500". */
242
+ senderName?: ChatTextStyle;
243
+ /** Room title in the chat header. Default 16 / "600". */
244
+ headerTitle?: ChatTextStyle;
245
+ /** Message composer: the input/placeholder text plus its layout sizing. */
246
+ input?: ChatTextStyle & {
247
+ /** Min height of the input box in px. Default 40. */
248
+ minHeight?: number;
249
+ /** Max height before the input scrolls in px. Default 120. */
250
+ maxHeight?: number;
251
+ /** Width & height of the round send button in px. Default 40. */
252
+ sendButtonSize?: number;
253
+ };
254
+ /** Chat profile screen (opens when tapping the room name in the header). */
255
+ profile?: {
256
+ /** Big room-name title at the top of the profile screen. Default 24 / "400". */
257
+ title?: ChatTextStyle;
258
+ /** Member name rows. Default 16 / "600". */
259
+ memberName?: ChatTextStyle;
260
+ };
261
+ /** Attach (photo/document picker) bottom sheet. */
262
+ attachSheet?: {
263
+ /** "Attach" header label. Default 13 / "600". */
264
+ title?: ChatTextStyle;
265
+ /** Row labels (Camera / Gallery / Document). Default 16 / "500". */
266
+ rowLabel?: ChatTextStyle;
267
+ /** Cancel button. Default 16 / "600". */
268
+ cancelButton?: ChatTextStyle;
245
269
  };
246
- }
247
- /** Size/weight override for one chat-UI text element. */
248
- export interface ElementFontStyle {
249
- fontSize?: number;
250
- fontWeight?: TextStyle['fontWeight'];
251
- }
252
- /**
253
- * Geometry of the message-input row. Raise `minHeight` together with
254
- * `typography.elements.input.fontSize` so larger text isn't clipped.
255
- */
256
- export interface InputLayoutConfig {
257
- /** Min height of the text field, also its single-line height (default 40). */
258
- minHeight?: number;
259
- /** Height at which the field stops growing and starts scrolling (default 120). */
260
- maxHeight?: number;
261
- /** Diameter of the round send / mic button (default 40). */
262
- sendButtonSize?: number;
263
270
  }
264
271
  export interface IConfig {
265
272
  appId?: string;
@@ -286,8 +293,6 @@ export interface IConfig {
286
293
  };
287
294
  /** Configurable font family / weights for the chat UI. See TypographyConfig. */
288
295
  typography?: TypographyConfig;
289
- /** Input-row geometry (field height, send-button size). See InputLayoutConfig. */
290
- inputLayout?: InputLayoutConfig;
291
296
  messageColor?: {
292
297
  backgroundMessage: string;
293
298
  backgroundMessageUser: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ethora/chat-component-rn",
3
- "version": "26.5.19",
3
+ "version": "26.5.20",
4
4
  "description": "Drop-in XMPP chat component for React Native / Expo. <Chat config={...}/> and you're done.",
5
5
  "main": "index.js",
6
6
  "module": "lib/module/main.js",
@@ -28,7 +28,6 @@ import { useRoomState } from '../../hooks/useRoomState';
28
28
  import { useChatSettingState } from '../../hooks/useChatSettingState';
29
29
  import { View, StyleSheet, Text, Keyboard } from 'react-native';
30
30
  import { getIconColor } from '../../helpers/getIconColor';
31
- import { getElementFont } from '../../helpers/getElementFont';
32
31
 
33
32
  interface ChatHeaderProps {
34
33
  currentRoom: IRoom;
@@ -151,7 +150,8 @@ const ChatHeader: React.FC<ChatHeaderProps> = ({
151
150
  <ChatContainerHeaderLabel
152
151
  numberOfLines={1}
153
152
  ellipsizeMode="tail"
154
- style={getElementFont(config, 'chatHeaderTitle')}
153
+ fontSize={config?.typography?.headerTitle?.fontSize}
154
+ fontWeight={config?.typography?.headerTitle?.fontWeight as any}
155
155
  >
156
156
  {currentRoom?.title || currentRoom?.name}
157
157
  </ChatContainerHeaderLabel>
@@ -28,8 +28,7 @@ import MediaMessage from '../MainComponents/MediaMessage';
28
28
  import MessageTranslations from './MessageTranslations';
29
29
  import { useChatSettingState } from '../../hooks/useChatSettingState';
30
30
  import { parseMessageBody } from '../../helpers/parseMessageBody';
31
- import { getSenderNameColor } from '../../helpers/getSenderNameColor';
32
- import { getElementFont } from '../../helpers/getElementFont';
31
+ import { chatTextStyle } from '../../helpers/typography';
33
32
  import { useMessageHeapState } from '../../hooks/useMessageHeapState';
34
33
  import { DoubleTick } from '../../assets/icons';
35
34
  import { useXmppClient } from '../../context/xmppProvider';
@@ -82,8 +81,11 @@ const CustomMessageText = styled.Text<{
82
81
  isUser: boolean;
83
82
  colorUser?: string;
84
83
  color?: string;
84
+ fontSize?: number;
85
+ fontWeight?: string;
85
86
  }>`
86
- font-size: 16px;
87
+ font-size: ${({ fontSize }) => fontSize ?? 16}px;
88
+ ${({ fontWeight }) => (fontWeight ? `font-weight: ${fontWeight};` : '')}
87
89
  color: ${({ color, colorUser, isUser }) =>
88
90
  isUser ? colorUser || '#333' : color || '#333'};
89
91
  `;
@@ -98,9 +100,14 @@ const CustomMessagePhotoContainer = styled.TouchableOpacity`
98
100
  margin-right: 10px;
99
101
  `;
100
102
 
101
- const CustomUserName = styled.Text<{ color?: string; media: boolean }>`
102
- font-size: 14px;
103
- font-weight: 500;
103
+ const CustomUserName = styled.Text<{
104
+ color?: string;
105
+ media: boolean;
106
+ fontSize?: number;
107
+ fontWeight?: string;
108
+ }>`
109
+ font-size: ${({ fontSize }) => fontSize ?? 14}px;
110
+ font-weight: ${({ fontWeight }) => fontWeight ?? 500};
104
111
  padding-bottom: 8px;
105
112
  padding-left: ${({media}) => media ? '16px': 0};
106
113
  padding-top: ${({media}) => media ? '8px': 0};
@@ -278,9 +285,16 @@ const Message: React.FC<MessageProps> = ({ message, isUser, isReply }) => {
278
285
  setIsPressed(true);
279
286
  };
280
287
 
288
+ // Body text size/weight is set on the parser's leaf <Text>s — the markdown
289
+ // wraps content in <View>s which break Text-style inheritance, so the bubble
290
+ // wrapper's fontSize alone never reached the actual text.
291
+ const bodyTextStyle = chatTextStyle(config?.typography?.messageText);
281
292
  const messageText = config?.messageTextFilter?.enabled
282
- ? parseMessageBody(config?.messageTextFilter.filterFunction(message.body))
283
- : parseMessageBody(message.body);
293
+ ? parseMessageBody(
294
+ config?.messageTextFilter.filterFunction(message.body),
295
+ bodyTextStyle
296
+ )
297
+ : parseMessageBody(message.body, bodyTextStyle);
284
298
 
285
299
  const isFailed = failedIdSet.has(message.id);
286
300
  const isPending =
@@ -370,9 +384,10 @@ const Message: React.FC<MessageProps> = ({ message, isUser, isReply }) => {
370
384
  >
371
385
  {!isUser && (
372
386
  <CustomUserName
373
- color={getSenderNameColor(config)}
387
+ color={config?.colors?.primary}
374
388
  media={message?.isMediafile === 'true'}
375
- style={getElementFont(config, 'senderName')}
389
+ fontSize={config?.typography?.senderName?.fontSize}
390
+ fontWeight={config?.typography?.senderName?.fontWeight as any}
376
391
  >
377
392
  {message.user.name}
378
393
  </CustomUserName>
@@ -403,7 +418,8 @@ const Message: React.FC<MessageProps> = ({ message, isUser, isReply }) => {
403
418
  isUser={isUser}
404
419
  colorUser={config?.messageColor?.colorUser}
405
420
  color={config?.messageColor?.color}
406
- style={getElementFont(config, 'messageText')}
421
+ fontSize={config?.typography?.messageText?.fontSize}
422
+ fontWeight={config?.typography?.messageText?.fontWeight as any}
407
423
  >
408
424
  <Text>{messageText}</Text>
409
425
  </CustomMessageText>
@@ -12,8 +12,9 @@ import {
12
12
  View,
13
13
  } from 'react-native';
14
14
  import { CameraIcon, DocumentIcon, MediaIcon } from '../../../assets/icons';
15
- import { getElementFont } from '../../../helpers/getElementFont';
16
15
  import { IConfig } from '../../../types/types';
16
+ import { useChatSettingState } from '../../../hooks/useChatSettingState';
17
+ import { chatTextStyle } from '../../../helpers/typography';
17
18
 
18
19
  interface AttachSheetProps {
19
20
  visible: boolean;
@@ -23,7 +24,6 @@ interface AttachSheetProps {
23
24
  onDocument: () => void;
24
25
  primaryColor?: string;
25
26
  /** For `typography.elements.attachSheet*` font overrides. */
26
- config?: IConfig;
27
27
  }
28
28
 
29
29
  // Starting translateY for the sheet. Larger than any realistic sheet
@@ -38,8 +38,9 @@ const AttachSheet: React.FC<AttachSheetProps> = ({
38
38
  onGallery,
39
39
  onDocument,
40
40
  primaryColor = '#0052CD',
41
- config,
42
41
  }) => {
42
+ const { config } = useChatSettingState();
43
+ const ts = config?.typography?.attachSheet;
43
44
  // Pending handler captured on row tap — runs once the EXIT animation
44
45
  // finishes so iOS doesn't try to present an image picker over a
45
46
  // still-dismissing modal (was the original reason for the
@@ -184,9 +185,7 @@ const AttachSheet: React.FC<AttachSheetProps> = ({
184
185
  >
185
186
  <TouchableOpacity activeOpacity={1}>
186
187
  <View style={styles.grabber} />
187
- <Text style={[styles.title, getElementFont(config, 'attachSheetTitle')]}>
188
- Attach
189
- </Text>
188
+ <Text style={[styles.title, chatTextStyle(ts?.title)]}>Attach</Text>
190
189
  {rows.map(({ label, hint, Icon, handler }, idx) => (
191
190
  <TouchableOpacity
192
191
  key={label}
@@ -206,22 +205,8 @@ const AttachSheet: React.FC<AttachSheetProps> = ({
206
205
  <Icon color={primaryColor} width={20} height={20} />
207
206
  </View>
208
207
  <View style={styles.rowText}>
209
- <Text
210
- style={[
211
- styles.rowLabel,
212
- getElementFont(config, 'attachSheetRowLabel'),
213
- ]}
214
- >
215
- {label}
216
- </Text>
217
- <Text
218
- style={[
219
- styles.rowHint,
220
- getElementFont(config, 'attachSheetRowHint'),
221
- ]}
222
- >
223
- {hint}
224
- </Text>
208
+ <Text style={[styles.rowLabel, chatTextStyle(ts?.rowLabel)]}>{label}</Text>
209
+ <Text style={styles.rowHint}>{hint}</Text>
225
210
  </View>
226
211
  </TouchableOpacity>
227
212
  ))}
@@ -230,14 +215,7 @@ const AttachSheet: React.FC<AttachSheetProps> = ({
230
215
  style={styles.cancelRow}
231
216
  onPress={onClose}
232
217
  >
233
- <Text
234
- style={[
235
- styles.cancelLabel,
236
- getElementFont(config, 'attachSheetCancel'),
237
- ]}
238
- >
239
- Cancel
240
- </Text>
218
+ <Text style={[styles.cancelLabel, chatTextStyle(ts?.cancelButton)]}>Cancel</Text>
241
219
  </TouchableOpacity>
242
220
  </TouchableOpacity>
243
221
  </Animated.View>
@@ -25,6 +25,7 @@ import Button from '../../styled/Button';
25
25
  import { DeleteIcon, MoreIcon, QrIcon } from '../../../assets/icons';
26
26
  import Switch from '../../MainComponents/Switch';
27
27
  import { useChatSettingState } from '../../../hooks/useChatSettingState';
28
+ import { chatTextStyle } from '../../../helpers/typography';
28
29
  import { deleteRoomMember } from '../../../networking/api-requests/rooms.api';
29
30
  import { RoomMember } from '../../../types/models/room.model';
30
31
  import { setActiveModal, setSelectedUser } from '../../../roomStore/chatSettingsSlice';
@@ -33,7 +34,6 @@ import DropdownMenu, { MenuOption } from '../../DropdownMenu/DropdownMenu';
33
34
  import SelectUsersModal from '../SelectUsersModal/SelectUsersModal';
34
35
  import { useToast } from '../../../context/ToastContext';
35
36
  import DeleteChatModal from './DeleteChatModal';
36
- import { getElementFont } from '../../../helpers/getElementFont';
37
37
 
38
38
 
39
39
  interface ChatProfileModalProps {
@@ -314,7 +314,10 @@ const ChatProfileModal: React.FC<ChatProfileModalProps> = ({
314
314
  size={128}
315
315
  />
316
316
  <UserInfo>
317
- <UserName style={getElementFont(config, 'chatProfileTitle')}>
317
+ <UserName
318
+ fontSize={config?.typography?.profile?.title?.fontSize}
319
+ fontWeight={config?.typography?.profile?.title?.fontWeight as any}
320
+ >
318
321
  {activeRoom.title || activeRoom.name}
319
322
  </UserName>
320
323
  <UserStatus>
@@ -419,7 +422,7 @@ const ChatProfileModal: React.FC<ChatProfileModalProps> = ({
419
422
  <Label
420
423
  style={[
421
424
  { fontSize: 16, fontWeight: 600 },
422
- getElementFont(config, 'chatProfileMemberName'),
425
+ chatTextStyle(config?.typography?.profile?.memberName),
423
426
  ]}
424
427
  >
425
428
  {user.firstName} {user.lastName}
@@ -128,10 +128,13 @@ export const UserInfo = styled.View`
128
128
  align-items: center;
129
129
  `;
130
130
 
131
- export const UserName = styled.Text`
131
+ export const UserName = styled.Text<{
132
+ fontSize?: number;
133
+ fontWeight?: string;
134
+ }>`
132
135
  color: #141414;
133
- font-size: 24px;
134
- font-weight: 400;
136
+ font-size: ${({ fontSize }) => fontSize ?? 24}px;
137
+ font-weight: ${({ fontWeight }) => fontWeight ?? 400};
135
138
  `;
136
139
 
137
140
  export const UserStatus = styled.Text`
@@ -13,7 +13,6 @@ import { KeyboardAvoidingView, Platform, View, Text, TouchableOpacity, Alert, Li
13
13
  import AttachSheet from '../Modals/AttachSheet/AttachSheet';
14
14
  import { MediaFilePreview } from './MediaFilePreview';
15
15
  import { getIconColor } from '../../helpers/getIconColor';
16
- import { getElementFont } from '../../helpers/getElementFont';
17
16
  import * as ImagePicker from 'expo-image-picker';
18
17
  import * as DocumentPicker from 'expo-document-picker';
19
18
  import * as ImageManipulator from 'expo-image-manipulator';
@@ -496,6 +495,8 @@ const SendInput: React.FC<SendInputProps> = ({
496
495
  accessibilityLabel="chat-message-input"
497
496
  isFocused={isFocused}
498
497
  color={config?.colors?.primary}
498
+ fontSize={config?.typography?.input?.fontSize}
499
+ fontWeight={config?.typography?.input?.fontWeight as any}
499
500
  placeholder="Type message"
500
501
  placeholderTextColor="#999"
501
502
  value={message}
@@ -519,14 +520,11 @@ const SendInput: React.FC<SendInputProps> = ({
519
520
  // the text had dropped). minHeight keeps the 40px tap
520
521
  // target; the row's align-items:center vertically centres
521
522
  // the content-sized input.
522
- style={[
523
- {
524
- minHeight: config?.inputLayout?.minHeight ?? 40,
525
- maxHeight: config?.inputLayout?.maxHeight ?? 120,
526
- flex: 1,
527
- },
528
- getElementFont(config, 'input'),
529
- ]}
523
+ style={{
524
+ minHeight: config?.typography?.input?.minHeight ?? 40,
525
+ maxHeight: config?.typography?.input?.maxHeight ?? 120,
526
+ flex: 1,
527
+ }}
530
528
  />
531
529
  </>
532
530
  )}
@@ -598,7 +596,6 @@ const SendInput: React.FC<SendInputProps> = ({
598
596
  : handleSendClick;
599
597
  const disabled = !isRecording && !showMic && !hasContent;
600
598
  const filled = isRecording || hasContent || showMic;
601
- const sendSize = config?.inputLayout?.sendButtonSize ?? 40;
602
599
  return (
603
600
  <Button
604
601
  testID={showMic ? 'chat-record-button' : 'chat-send-button'}
@@ -613,9 +610,9 @@ const SendInput: React.FC<SendInputProps> = ({
613
610
  )
614
611
  }
615
612
  style={{
616
- width: sendSize,
617
- height: sendSize,
618
- borderRadius: sendSize / 2,
613
+ width: config?.typography?.input?.sendButtonSize ?? 40,
614
+ height: config?.typography?.input?.sendButtonSize ?? 40,
615
+ borderRadius: 50,
619
616
  alignItems: 'center',
620
617
  justifyContent: 'center',
621
618
  marginLeft: 0,
@@ -636,7 +633,6 @@ const SendInput: React.FC<SendInputProps> = ({
636
633
  onGallery={handleGallerySelection}
637
634
  onDocument={handleFileSelection}
638
635
  primaryColor={getIconColor(config)}
639
- config={config}
640
636
  />
641
637
  </InputContainer>
642
638
  );
@@ -75,10 +75,13 @@ export const ChatContainerHeaderInfo = styled.View`
75
75
  gap: 2px;
76
76
  `;
77
77
 
78
- export const ChatContainerHeaderLabel = styled.Text`
78
+ export const ChatContainerHeaderLabel = styled.Text<{
79
+ fontSize?: number;
80
+ fontWeight?: string;
81
+ }>`
79
82
  color: #141414;
80
- font-weight: 600;
81
- font-size: 16px;
83
+ font-weight: ${({ fontWeight }) => fontWeight ?? 600};
84
+ font-size: ${({ fontSize }) => fontSize ?? 16}px;
82
85
  text-align: left;
83
86
  overflow: hidden;
84
87
  max-width: 100%;
@@ -45,6 +45,8 @@ export const MessageInputContainer = styled.View`
45
45
  export const MessageInput = styled.TextInput<{
46
46
  isFocused?: boolean;
47
47
  color?: string;
48
+ fontSize?: number;
49
+ fontWeight?: string;
48
50
  }>`
49
51
  padding: 8px 14px;
50
52
  border-radius: 20px;
@@ -52,7 +54,8 @@ export const MessageInput = styled.TextInput<{
52
54
  border-color: ${(props) =>
53
55
  props.isFocused ? props.color || '#0052CD' : 'transparent'};
54
56
  color: #141414;
55
- font-size: 16px;
57
+ font-size: ${({ fontSize }) => fontSize ?? 16}px;
58
+ ${({ fontWeight }) => (fontWeight ? `font-weight: ${fontWeight};` : '')}
56
59
  background-color: #f5f7f9;
57
60
  flex: 1;
58
61
  /* No explicit line-height: on iOS a line-height larger than the
@@ -8,6 +8,7 @@ import {
8
8
  ScrollView,
9
9
  StyleProp,
10
10
  ViewStyle,
11
+ TextStyle,
11
12
  } from 'react-native';
12
13
 
13
14
  let elementKeyCounter = 0;
@@ -292,7 +293,15 @@ const renderMarkdownTableRN = (
292
293
  );
293
294
  };
294
295
 
295
- export const parseMessageBody = (text: string): JSX.Element => {
296
+ // `baseStyle` is applied to the normal body-text leaves (paragraphs, list
297
+ // items, quotes) so a host can configure message font size / weight. Headings
298
+ // and code blocks keep their own semantic sizes. Markdown wraps text in
299
+ // <View>s, which break RN's Text-style inheritance — so the size has to be set
300
+ // on the leaf <Text>s here rather than on the bubble wrapper.
301
+ export const parseMessageBody = (
302
+ text: string,
303
+ baseStyle?: TextStyle
304
+ ): JSX.Element => {
296
305
  if (typeof text !== 'string') {
297
306
  return <View />;
298
307
  }
@@ -339,14 +348,14 @@ export const parseMessageBody = (text: string): JSX.Element => {
339
348
  <View style={[styles.checkboxBox, item.checked && { backgroundColor: '#e8f3ff', borderColor: '#0a66c2' }]}>
340
349
  {item.checked ? <Text style={styles.checkboxTick}>✓</Text> : null}
341
350
  </View>
342
- <Text style={{ flex: 1 }}>{parseInline(item.content)}</Text>
351
+ <Text style={[{ flex: 1 }, baseStyle]}>{parseInline(item.content)}</Text>
343
352
  </View>
344
353
  );
345
354
  } else {
346
355
  contentEl = (
347
356
  <View key={`ulitem-${elementKeyCounter++}`} style={styles.listItemRow}>
348
357
  <Text style={styles.listMarker}>{'\u2022'}</Text>
349
- <Text style={{ flex: 1 }}>{parseInline(item.content)}</Text>
358
+ <Text style={[{ flex: 1 }, baseStyle]}>{parseInline(item.content)}</Text>
350
359
  </View>
351
360
  );
352
361
  }
@@ -493,7 +502,7 @@ export const parseMessageBody = (text: string): JSX.Element => {
493
502
  flushList();
494
503
  elements.push(
495
504
  <View key={`p-${elementKeyCounter++}`} style={styles.paragraph}>
496
- <Text>{parseInline(trimmedLine)}</Text>
505
+ <Text style={baseStyle}>{parseInline(trimmedLine)}</Text>
497
506
  </View>
498
507
  );
499
508
  } else {
@@ -0,0 +1,19 @@
1
+ import type { TextStyle } from 'react-native';
2
+ import type { ChatTextStyle } from '../types/types';
3
+
4
+ /**
5
+ * Turn a `ChatTextStyle` config (fontSize / fontWeight) into a partial RN
6
+ * `TextStyle` that can be spread on top of a base style. Only sets fields the
7
+ * consumer actually provided, so it never clobbers a component default with
8
+ * `undefined`. Pair with a base style: `style={[styles.title, chatTextStyle(cfg)]}`.
9
+ *
10
+ * Note: with a custom font, `fontWeight` only renders visibly when
11
+ * `typography.weightFamilies` is configured — the global font patch
12
+ * (useChatFonts) maps the weight to the matching family variant.
13
+ */
14
+ export const chatTextStyle = (cfg?: ChatTextStyle): TextStyle => {
15
+ const s: TextStyle = {};
16
+ if (cfg?.fontSize != null) {s.fontSize = cfg.fontSize;}
17
+ if (cfg?.fontWeight != null) {s.fontWeight = cfg.fontWeight;}
18
+ return s;
19
+ };