@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.
- package/lib/commonjs/components/MainComponents/ChatHeader.js +2 -0
- package/lib/commonjs/components/MainComponents/ChatHeader.js.map +1 -1
- package/lib/commonjs/components/MessageBubble/Message.js +24 -6
- package/lib/commonjs/components/MessageBubble/Message.js.map +1 -1
- package/lib/commonjs/components/Modals/AttachSheet/AttachSheet.js +9 -3
- package/lib/commonjs/components/Modals/AttachSheet/AttachSheet.js.map +1 -1
- package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js +5 -2
- package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
- package/lib/commonjs/components/Modals/styledModalComponents.js +6 -2
- package/lib/commonjs/components/Modals/styledModalComponents.js.map +1 -1
- package/lib/commonjs/components/styled/SendInput.js +6 -4
- package/lib/commonjs/components/styled/SendInput.js.map +1 -1
- package/lib/commonjs/components/styled/StyledComponents.js +6 -2
- package/lib/commonjs/components/styled/StyledComponents.js.map +1 -1
- package/lib/commonjs/components/styled/StyledInputComponents/StyledInputComponents.js +6 -1
- package/lib/commonjs/components/styled/StyledInputComponents/StyledInputComponents.js.map +1 -1
- package/lib/commonjs/helpers/parseMessageBody.js +12 -5
- package/lib/commonjs/helpers/parseMessageBody.js.map +1 -1
- package/lib/commonjs/helpers/typography.js +28 -0
- package/lib/commonjs/helpers/typography.js.map +1 -0
- package/lib/commonjs/hooks/useChatFonts.js +91 -7
- package/lib/commonjs/hooks/useChatFonts.js.map +1 -1
- package/lib/commonjs/hooks/useSendMessage.js +6 -6
- package/lib/commonjs/networking/outboundQueue.js +1 -1
- package/lib/module/components/MainComponents/ChatHeader.js +2 -0
- package/lib/module/components/MainComponents/ChatHeader.js.map +1 -1
- package/lib/module/components/MessageBubble/Message.js +24 -6
- package/lib/module/components/MessageBubble/Message.js.map +1 -1
- package/lib/module/components/Modals/AttachSheet/AttachSheet.js +9 -3
- package/lib/module/components/Modals/AttachSheet/AttachSheet.js.map +1 -1
- package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js +5 -2
- package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
- package/lib/module/components/Modals/styledModalComponents.js +6 -2
- package/lib/module/components/Modals/styledModalComponents.js.map +1 -1
- package/lib/module/components/styled/SendInput.js +6 -4
- package/lib/module/components/styled/SendInput.js.map +1 -1
- package/lib/module/components/styled/StyledComponents.js +6 -2
- package/lib/module/components/styled/StyledComponents.js.map +1 -1
- package/lib/module/components/styled/StyledInputComponents/StyledInputComponents.js +6 -1
- package/lib/module/components/styled/StyledInputComponents/StyledInputComponents.js.map +1 -1
- package/lib/module/helpers/parseMessageBody.js +12 -5
- package/lib/module/helpers/parseMessageBody.js.map +1 -1
- package/lib/module/helpers/typography.js +23 -0
- package/lib/module/helpers/typography.js.map +1 -0
- package/lib/module/hooks/useChatFonts.js +92 -8
- package/lib/module/hooks/useChatFonts.js.map +1 -1
- package/lib/module/hooks/useSendMessage.js +6 -6
- package/lib/module/networking/outboundQueue.js +1 -1
- package/lib/typescript/components/MainComponents/ChatHeader.d.ts.map +1 -1
- package/lib/typescript/components/MessageBubble/Message.d.ts.map +1 -1
- package/lib/typescript/components/Modals/AttachSheet/AttachSheet.d.ts.map +1 -1
- package/lib/typescript/components/Modals/ChatProfileModal/ChatProfileModal.d.ts.map +1 -1
- package/lib/typescript/components/Modals/styledModalComponents.d.ts +7 -1
- package/lib/typescript/components/Modals/styledModalComponents.d.ts.map +1 -1
- package/lib/typescript/components/styled/SendInput.d.ts.map +1 -1
- package/lib/typescript/components/styled/StyledComponents.d.ts +7 -1
- package/lib/typescript/components/styled/StyledComponents.d.ts.map +1 -1
- package/lib/typescript/components/styled/StyledInputComponents/StyledInputComponents.d.ts +6 -2
- package/lib/typescript/components/styled/StyledInputComponents/StyledInputComponents.d.ts.map +1 -1
- package/lib/typescript/helpers/parseMessageBody.d.ts +2 -1
- package/lib/typescript/helpers/parseMessageBody.d.ts.map +1 -1
- package/lib/typescript/helpers/typography.d.ts +14 -0
- package/lib/typescript/helpers/typography.d.ts.map +1 -0
- package/lib/typescript/hooks/useChatFonts.d.ts.map +1 -1
- package/lib/typescript/main.d.ts +1 -1
- package/lib/typescript/main.d.ts.map +1 -1
- package/lib/typescript/networking/outboundQueue.d.ts +2 -2
- package/lib/typescript/types/types.d.ts +53 -2
- package/lib/typescript/types/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/MainComponents/ChatHeader.tsx +6 -1
- package/src/components/MessageBubble/Message.tsx +30 -8
- package/src/components/Modals/AttachSheet/AttachSheet.tsx +9 -3
- package/src/components/Modals/ChatProfileModal/ChatProfileModal.tsx +13 -2
- package/src/components/Modals/styledModalComponents.tsx +6 -3
- package/src/components/styled/SendInput.tsx +6 -4
- package/src/components/styled/StyledComponents.ts +6 -3
- package/src/components/styled/StyledInputComponents/StyledInputComponents.tsx +4 -1
- package/src/helpers/parseMessageBody.tsx +13 -4
- package/src/helpers/typography.ts +19 -0
- package/src/hooks/useChatFonts.ts +69 -11
- package/src/hooks/useSendMessage.tsx +6 -6
- package/src/main.ts +1 -0
- package/src/networking/outboundQueue.ts +2 -2
- 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,
|
|
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
|
|
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 =
|
|
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
|
-
/**
|
|
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
|
@@ -147,7 +147,12 @@ const ChatHeader: React.FC<ChatHeaderProps> = ({
|
|
|
147
147
|
}
|
|
148
148
|
/>
|
|
149
149
|
<ChatContainerHeaderInfo>
|
|
150
|
-
<ChatContainerHeaderLabel
|
|
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 {
|
|
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:
|
|
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<{
|
|
101
|
-
|
|
102
|
-
|
|
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(
|
|
282
|
-
|
|
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
|
|
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
|
|
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
|
|
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:
|
|
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:
|
|
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:
|
|
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
|
-
|
|
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
|
|
80
|
-
* by the patched
|
|
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
|
-
|
|
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
|
}
|