@ethora/chat-component-rn 26.5.18 → 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 (85) hide show
  1. package/lib/commonjs/components/MainComponents/ChatHeader.js +2 -0
  2. package/lib/commonjs/components/MainComponents/ChatHeader.js.map +1 -1
  3. package/lib/commonjs/components/MessageBubble/Message.js +24 -6
  4. package/lib/commonjs/components/MessageBubble/Message.js.map +1 -1
  5. package/lib/commonjs/components/Modals/AttachSheet/AttachSheet.js +9 -3
  6. package/lib/commonjs/components/Modals/AttachSheet/AttachSheet.js.map +1 -1
  7. package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js +5 -2
  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 +6 -4
  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/commonjs/hooks/useSendMessage.js +6 -6
  24. package/lib/commonjs/networking/outboundQueue.js +1 -1
  25. package/lib/module/components/MainComponents/ChatHeader.js +2 -0
  26. package/lib/module/components/MainComponents/ChatHeader.js.map +1 -1
  27. package/lib/module/components/MessageBubble/Message.js +24 -6
  28. package/lib/module/components/MessageBubble/Message.js.map +1 -1
  29. package/lib/module/components/Modals/AttachSheet/AttachSheet.js +9 -3
  30. package/lib/module/components/Modals/AttachSheet/AttachSheet.js.map +1 -1
  31. package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js +5 -2
  32. package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
  33. package/lib/module/components/Modals/styledModalComponents.js +6 -2
  34. package/lib/module/components/Modals/styledModalComponents.js.map +1 -1
  35. package/lib/module/components/styled/SendInput.js +6 -4
  36. package/lib/module/components/styled/SendInput.js.map +1 -1
  37. package/lib/module/components/styled/StyledComponents.js +6 -2
  38. package/lib/module/components/styled/StyledComponents.js.map +1 -1
  39. package/lib/module/components/styled/StyledInputComponents/StyledInputComponents.js +6 -1
  40. package/lib/module/components/styled/StyledInputComponents/StyledInputComponents.js.map +1 -1
  41. package/lib/module/helpers/parseMessageBody.js +12 -5
  42. package/lib/module/helpers/parseMessageBody.js.map +1 -1
  43. package/lib/module/helpers/typography.js +23 -0
  44. package/lib/module/helpers/typography.js.map +1 -0
  45. package/lib/module/hooks/useChatFonts.js +92 -8
  46. package/lib/module/hooks/useChatFonts.js.map +1 -1
  47. package/lib/module/hooks/useSendMessage.js +6 -6
  48. package/lib/module/networking/outboundQueue.js +1 -1
  49. package/lib/typescript/components/MainComponents/ChatHeader.d.ts.map +1 -1
  50. package/lib/typescript/components/MessageBubble/Message.d.ts.map +1 -1
  51. package/lib/typescript/components/Modals/AttachSheet/AttachSheet.d.ts.map +1 -1
  52. package/lib/typescript/components/Modals/ChatProfileModal/ChatProfileModal.d.ts.map +1 -1
  53. package/lib/typescript/components/Modals/styledModalComponents.d.ts +7 -1
  54. package/lib/typescript/components/Modals/styledModalComponents.d.ts.map +1 -1
  55. package/lib/typescript/components/styled/SendInput.d.ts.map +1 -1
  56. package/lib/typescript/components/styled/StyledComponents.d.ts +7 -1
  57. package/lib/typescript/components/styled/StyledComponents.d.ts.map +1 -1
  58. package/lib/typescript/components/styled/StyledInputComponents/StyledInputComponents.d.ts +6 -2
  59. package/lib/typescript/components/styled/StyledInputComponents/StyledInputComponents.d.ts.map +1 -1
  60. package/lib/typescript/helpers/parseMessageBody.d.ts +2 -1
  61. package/lib/typescript/helpers/parseMessageBody.d.ts.map +1 -1
  62. package/lib/typescript/helpers/typography.d.ts +14 -0
  63. package/lib/typescript/helpers/typography.d.ts.map +1 -0
  64. package/lib/typescript/hooks/useChatFonts.d.ts.map +1 -1
  65. package/lib/typescript/main.d.ts +1 -1
  66. package/lib/typescript/main.d.ts.map +1 -1
  67. package/lib/typescript/networking/outboundQueue.d.ts +2 -2
  68. package/lib/typescript/types/types.d.ts +53 -2
  69. package/lib/typescript/types/types.d.ts.map +1 -1
  70. package/package.json +1 -1
  71. package/src/components/MainComponents/ChatHeader.tsx +6 -1
  72. package/src/components/MessageBubble/Message.tsx +30 -8
  73. package/src/components/Modals/AttachSheet/AttachSheet.tsx +9 -3
  74. package/src/components/Modals/ChatProfileModal/ChatProfileModal.tsx +13 -2
  75. package/src/components/Modals/styledModalComponents.tsx +6 -3
  76. package/src/components/styled/SendInput.tsx +6 -4
  77. package/src/components/styled/StyledComponents.ts +6 -3
  78. package/src/components/styled/StyledInputComponents/StyledInputComponents.tsx +4 -1
  79. package/src/helpers/parseMessageBody.tsx +13 -4
  80. package/src/helpers/typography.ts +19 -0
  81. package/src/hooks/useChatFonts.ts +69 -11
  82. package/src/hooks/useSendMessage.tsx +6 -6
  83. package/src/main.ts +1 -0
  84. package/src/networking/outboundQueue.ts +2 -2
  85. package/src/types/types.ts +56 -2
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,gCAAgC,CAAC;AAGxC,OAAO,EAAE,YAAY,IAAI,IAAI,EAAE,MAAM,0CAA0C,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAGtD,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAIpD,YAAY,EACV,OAAO,EACP,KAAK,EACL,QAAQ,EACR,KAAK,EACL,IAAI,EACJ,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,YAAY,GACb,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,gCAAgC,CAAC;AAGxC,OAAO,EAAE,YAAY,IAAI,IAAI,EAAE,MAAM,0CAA0C,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAGtD,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAIpD,YAAY,EACV,OAAO,EACP,KAAK,EACL,QAAQ,EACR,KAAK,EACL,IAAI,EACJ,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,aAAa,GACd,MAAM,eAAe,CAAC"}
@@ -39,14 +39,14 @@ export interface QueuedSend {
39
39
  * Per-item replay window. Kept in lockstep with the matching send
40
40
  * watchdog so a reconnect inside the window replays the buffered send,
41
41
  * while a longer drop lets the watchdog own the failure (no duplicate).
42
- * Text uses 5s, media 30s (large uploads need longer). Falls back to
42
+ * Text uses 10s, media 30s (large uploads need longer). Falls back to
43
43
  * OUTBOUND_QUEUE_TTL_MS when omitted.
44
44
  */
45
45
  ttlMs?: number;
46
46
  /** Replays the original send against a live, online client. */
47
47
  send: (client: OutboundQueueClient) => void;
48
48
  }
49
- export declare const OUTBOUND_QUEUE_TTL_MS = 30000;
49
+ export declare const OUTBOUND_QUEUE_TTL_MS = 10000;
50
50
  /**
51
51
  * Append (or, if the id is already queued, replace in place) a pending
52
52
  * send. Order is preserved for FIFO flush.
@@ -1,4 +1,4 @@
1
- import type { ViewStyle, 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,6 +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[];
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;
269
+ };
219
270
  }
220
271
  export interface IConfig {
221
272
  appId?: 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.18",
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",
@@ -147,7 +147,12 @@ const ChatHeader: React.FC<ChatHeaderProps> = ({
147
147
  }
148
148
  />
149
149
  <ChatContainerHeaderInfo>
150
- <ChatContainerHeaderLabel numberOfLines={1} ellipsizeMode="tail">
150
+ <ChatContainerHeaderLabel
151
+ numberOfLines={1}
152
+ ellipsizeMode="tail"
153
+ fontSize={config?.typography?.headerTitle?.fontSize}
154
+ fontWeight={config?.typography?.headerTitle?.fontWeight as any}
155
+ >
151
156
  {currentRoom?.title || currentRoom?.name}
152
157
  </ChatContainerHeaderLabel>
153
158
  <View>
@@ -28,7 +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';
31
+ import { chatTextStyle } from '../../helpers/typography';
32
32
  import { useMessageHeapState } from '../../hooks/useMessageHeapState';
33
33
  import { DoubleTick } from '../../assets/icons';
34
34
  import { useXmppClient } from '../../context/xmppProvider';
@@ -81,8 +81,11 @@ const CustomMessageText = styled.Text<{
81
81
  isUser: boolean;
82
82
  colorUser?: string;
83
83
  color?: string;
84
+ fontSize?: number;
85
+ fontWeight?: string;
84
86
  }>`
85
- font-size: 16px;
87
+ font-size: ${({ fontSize }) => fontSize ?? 16}px;
88
+ ${({ fontWeight }) => (fontWeight ? `font-weight: ${fontWeight};` : '')}
86
89
  color: ${({ color, colorUser, isUser }) =>
87
90
  isUser ? colorUser || '#333' : color || '#333'};
88
91
  `;
@@ -97,9 +100,14 @@ const CustomMessagePhotoContainer = styled.TouchableOpacity`
97
100
  margin-right: 10px;
98
101
  `;
99
102
 
100
- const CustomUserName = styled.Text<{ color?: string; media: boolean }>`
101
- font-size: 14px;
102
- 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};
103
111
  padding-bottom: 8px;
104
112
  padding-left: ${({media}) => media ? '16px': 0};
105
113
  padding-top: ${({media}) => media ? '8px': 0};
@@ -277,9 +285,16 @@ const Message: React.FC<MessageProps> = ({ message, isUser, isReply }) => {
277
285
  setIsPressed(true);
278
286
  };
279
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);
280
292
  const messageText = config?.messageTextFilter?.enabled
281
- ? parseMessageBody(config?.messageTextFilter.filterFunction(message.body))
282
- : parseMessageBody(message.body);
293
+ ? parseMessageBody(
294
+ config?.messageTextFilter.filterFunction(message.body),
295
+ bodyTextStyle
296
+ )
297
+ : parseMessageBody(message.body, bodyTextStyle);
283
298
 
284
299
  const isFailed = failedIdSet.has(message.id);
285
300
  const isPending =
@@ -368,7 +383,12 @@ const Message: React.FC<MessageProps> = ({ message, isUser, isReply }) => {
368
383
  backgroundMessage={config?.messageColor?.backgroundMessage}
369
384
  >
370
385
  {!isUser && (
371
- <CustomUserName color={getSenderNameColor(config)} media={message?.isMediafile === 'true'}>
386
+ <CustomUserName
387
+ color={config?.colors?.primary}
388
+ media={message?.isMediafile === 'true'}
389
+ fontSize={config?.typography?.senderName?.fontSize}
390
+ fontWeight={config?.typography?.senderName?.fontWeight as any}
391
+ >
372
392
  {message.user.name}
373
393
  </CustomUserName>
374
394
  )}
@@ -398,6 +418,8 @@ const Message: React.FC<MessageProps> = ({ message, isUser, isReply }) => {
398
418
  isUser={isUser}
399
419
  colorUser={config?.messageColor?.colorUser}
400
420
  color={config?.messageColor?.color}
421
+ fontSize={config?.typography?.messageText?.fontSize}
422
+ fontWeight={config?.typography?.messageText?.fontWeight as any}
401
423
  >
402
424
  <Text>{messageText}</Text>
403
425
  </CustomMessageText>
@@ -12,6 +12,9 @@ import {
12
12
  View,
13
13
  } from 'react-native';
14
14
  import { CameraIcon, DocumentIcon, MediaIcon } from '../../../assets/icons';
15
+ import { IConfig } from '../../../types/types';
16
+ import { useChatSettingState } from '../../../hooks/useChatSettingState';
17
+ import { chatTextStyle } from '../../../helpers/typography';
15
18
 
16
19
  interface AttachSheetProps {
17
20
  visible: boolean;
@@ -20,6 +23,7 @@ interface AttachSheetProps {
20
23
  onGallery: () => void;
21
24
  onDocument: () => void;
22
25
  primaryColor?: string;
26
+ /** For `typography.elements.attachSheet*` font overrides. */
23
27
  }
24
28
 
25
29
  // Starting translateY for the sheet. Larger than any realistic sheet
@@ -35,6 +39,8 @@ const AttachSheet: React.FC<AttachSheetProps> = ({
35
39
  onDocument,
36
40
  primaryColor = '#0052CD',
37
41
  }) => {
42
+ const { config } = useChatSettingState();
43
+ const ts = config?.typography?.attachSheet;
38
44
  // Pending handler captured on row tap — runs once the EXIT animation
39
45
  // finishes so iOS doesn't try to present an image picker over a
40
46
  // still-dismissing modal (was the original reason for the
@@ -179,7 +185,7 @@ const AttachSheet: React.FC<AttachSheetProps> = ({
179
185
  >
180
186
  <TouchableOpacity activeOpacity={1}>
181
187
  <View style={styles.grabber} />
182
- <Text style={styles.title}>Attach</Text>
188
+ <Text style={[styles.title, chatTextStyle(ts?.title)]}>Attach</Text>
183
189
  {rows.map(({ label, hint, Icon, handler }, idx) => (
184
190
  <TouchableOpacity
185
191
  key={label}
@@ -199,7 +205,7 @@ const AttachSheet: React.FC<AttachSheetProps> = ({
199
205
  <Icon color={primaryColor} width={20} height={20} />
200
206
  </View>
201
207
  <View style={styles.rowText}>
202
- <Text style={styles.rowLabel}>{label}</Text>
208
+ <Text style={[styles.rowLabel, chatTextStyle(ts?.rowLabel)]}>{label}</Text>
203
209
  <Text style={styles.rowHint}>{hint}</Text>
204
210
  </View>
205
211
  </TouchableOpacity>
@@ -209,7 +215,7 @@ const AttachSheet: React.FC<AttachSheetProps> = ({
209
215
  style={styles.cancelRow}
210
216
  onPress={onClose}
211
217
  >
212
- <Text style={styles.cancelLabel}>Cancel</Text>
218
+ <Text style={[styles.cancelLabel, chatTextStyle(ts?.cancelButton)]}>Cancel</Text>
213
219
  </TouchableOpacity>
214
220
  </TouchableOpacity>
215
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';
@@ -313,7 +314,12 @@ const ChatProfileModal: React.FC<ChatProfileModalProps> = ({
313
314
  size={128}
314
315
  />
315
316
  <UserInfo>
316
- <UserName>{activeRoom.title || activeRoom.name}</UserName>
317
+ <UserName
318
+ fontSize={config?.typography?.profile?.title?.fontSize}
319
+ fontWeight={config?.typography?.profile?.title?.fontWeight as any}
320
+ >
321
+ {activeRoom.title || activeRoom.name}
322
+ </UserName>
317
323
  <UserStatus>
318
324
  {activeRoom.usersCnt}{' '}
319
325
  {activeRoom.usersCnt > 1 ? 'members' : 'member'}
@@ -413,7 +419,12 @@ const ChatProfileModal: React.FC<ChatProfileModalProps> = ({
413
419
  justifyContent: 'center',
414
420
  }}
415
421
  >
416
- <Label style={{ fontSize: 16, fontWeight: 600 }}>
422
+ <Label
423
+ style={[
424
+ { fontSize: 16, fontWeight: 600 },
425
+ chatTextStyle(config?.typography?.profile?.memberName),
426
+ ]}
427
+ >
417
428
  {user.firstName} {user.lastName}
418
429
  </Label>
419
430
  {user.last_active && (
@@ -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`
@@ -495,6 +495,8 @@ const SendInput: React.FC<SendInputProps> = ({
495
495
  accessibilityLabel="chat-message-input"
496
496
  isFocused={isFocused}
497
497
  color={config?.colors?.primary}
498
+ fontSize={config?.typography?.input?.fontSize}
499
+ fontWeight={config?.typography?.input?.fontWeight as any}
498
500
  placeholder="Type message"
499
501
  placeholderTextColor="#999"
500
502
  value={message}
@@ -519,8 +521,8 @@ const SendInput: React.FC<SendInputProps> = ({
519
521
  // target; the row's align-items:center vertically centres
520
522
  // the content-sized input.
521
523
  style={{
522
- minHeight: 40,
523
- maxHeight: 120,
524
+ minHeight: config?.typography?.input?.minHeight ?? 40,
525
+ maxHeight: config?.typography?.input?.maxHeight ?? 120,
524
526
  flex: 1,
525
527
  }}
526
528
  />
@@ -608,8 +610,8 @@ const SendInput: React.FC<SendInputProps> = ({
608
610
  )
609
611
  }
610
612
  style={{
611
- width: 40,
612
- height: 40,
613
+ width: config?.typography?.input?.sendButtonSize ?? 40,
614
+ height: config?.typography?.input?.sendButtonSize ?? 40,
613
615
  borderRadius: 50,
614
616
  alignItems: 'center',
615
617
  justifyContent: 'center',
@@ -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
+ };
@@ -1,5 +1,5 @@
1
1
  import { useEffect, useState } from 'react';
2
- import { Text, TextInput } from 'react-native';
2
+ import { StyleSheet, Text, TextInput } from 'react-native';
3
3
  import type { TypographyConfig } from '../types/types';
4
4
 
5
5
  /**
@@ -25,6 +25,8 @@ import type { TypographyConfig } from '../types/types';
25
25
  export function useChatFonts(typography?: TypographyConfig): boolean {
26
26
  const [ready, setReady] = useState(!typography?.fonts?.length);
27
27
 
28
+ // Apply synchronously on render (not just in the effect) so the factory
29
+ // patch sees the active family/weights before the first child paints.
28
30
  applyDefaultFont(typography);
29
31
 
30
32
  useEffect(() => {
@@ -76,23 +78,78 @@ export function useChatFonts(typography?: TypographyConfig): boolean {
76
78
  }
77
79
 
78
80
  /**
79
- * The family currently applied as the chat-wide default. Read at render time
80
- * by the patched components below, so updating it (then triggering a re-render)
81
- * restyles the whole tree.
81
+ * The family currently applied as the chat-wide default. Read at element-
82
+ * creation time by the patched JSX factories below, so updating it (then
83
+ * triggering a re-render) restyles the whole tree.
82
84
  */
83
85
  let activeFamily: string | undefined;
84
86
 
87
+ /**
88
+ * Per-weight families (regular/medium/semibold/bold). When set, the factory
89
+ * patch maps a Text's effective `fontWeight` to the matching family so custom
90
+ * fonts render intermediate weights correctly — RN can't synthesise 500/600
91
+ * from a single font file (only fake-bold ~700), so each weight needs its own
92
+ * loaded family. This is why a bare `fontWeight: '500'` looked like it did
93
+ * nothing before: there was no medium family to switch to.
94
+ */
95
+ let activeWeightFamilies: TypographyConfig['weightFamilies'] | undefined;
96
+
97
+ /**
98
+ * Resolve a desired weight to a configured family variant. Returns undefined
99
+ * when there's no variant for that tier (so we leave the default family /
100
+ * weight untouched rather than guessing).
101
+ */
102
+ function familyForWeight(weight: unknown): string | undefined {
103
+ const wf = activeWeightFamilies;
104
+ if (!wf || weight == null) {return undefined;}
105
+ let w: number;
106
+ if (typeof weight === 'number') {
107
+ w = weight;
108
+ } else if (weight === 'bold') {
109
+ w = 700;
110
+ } else if (weight === 'normal') {
111
+ w = 400;
112
+ } else {
113
+ const n = parseInt(String(weight), 10);
114
+ w = Number.isFinite(n) ? n : 400;
115
+ }
116
+ if (w >= 700) {return wf.bold;}
117
+ if (w >= 600) {return wf.semibold;}
118
+ if (w >= 500) {return wf.medium;}
119
+ return wf.regular;
120
+ }
85
121
 
122
+ /**
123
+ * Build the style array for a Text/TextInput element: the default family as the
124
+ * lowest-priority layer (explicit per-component styles still win), and — when
125
+ * per-weight families are configured — the variant family that matches the
126
+ * element's effective `fontWeight` as a top layer (with the numeric weight
127
+ * cleared so the OS doesn't also try to synthesise on top). An explicit
128
+ * per-element `fontFamily` override is respected.
129
+ */
130
+ function styleForElement(style: any): any {
131
+ const base = [{ fontFamily: activeFamily }, style];
132
+ if (!activeWeightFamilies) {return base;}
133
+ const flat = (StyleSheet.flatten(style) || {}) as any;
134
+ if (flat.fontFamily && flat.fontFamily !== activeFamily) {return base;}
135
+ const fam = familyForWeight(flat.fontWeight);
136
+ if (!fam) {return base;}
137
+ return [{ fontFamily: activeFamily }, style, { fontFamily: fam, fontWeight: 'normal' }];
138
+ }
139
+
140
+ /**
141
+ * Wrap a JSX factory (`jsx`/`jsxs`/`jsxDEV`/`createElement`) so every Text /
142
+ * TextInput it creates gets the chat-wide font injected. We patch the factory
143
+ * rather than `Text.render` because render-wrapping a `forwardRef` component is
144
+ * fragile across React 19 / RN 0.81; intercepting element creation is version-
145
+ * independent and catches styled-components' inner Text elements too.
146
+ */
86
147
  function wrapFactory(orig: any): any {
87
148
  if (typeof orig !== 'function') return orig;
88
149
  if (orig.__ethoraFontWrapped) return orig;
89
150
  const wrapped = function (this: any, type: any, props: any, ...rest: any[]) {
90
- if (
91
- activeFamily &&
92
- props &&
93
- (type === Text || type === TextInput)
94
- ) {
95
- props = { ...props, style: [{ fontFamily: activeFamily }, props.style] };
151
+ if (activeFamily && props && (type === Text || type === TextInput)) {
152
+ props = { ...props, style: styleForElement(props.style) };
96
153
  }
97
154
  return orig.call(this, type, props, ...rest);
98
155
  };
@@ -145,9 +202,10 @@ function ensurePatched(): void {
145
202
  }
146
203
 
147
204
  /**
148
- * Set (or clear) the chat-wide default font family.
205
+ * Set (or clear) the chat-wide default font family + per-weight families.
149
206
  */
150
207
  function applyDefaultFont(typography?: TypographyConfig): void {
151
208
  activeFamily = typography?.fontFamily;
209
+ activeWeightFamilies = typography?.weightFamilies;
152
210
  if (activeFamily) ensurePatched();
153
211
  }