diff options
author | Eric Bailey <git@esb.lol> | 2024-10-04 15:31:40 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-10-04 13:31:40 -0700 |
commit | d17da8474b6aa3985e3a74bc3459b483d23109cd (patch) | |
tree | 50d687e23838da9668f676bf27baac8302330437 /src/components/Typography.tsx | |
parent | 00486e94991f344353ffb083dd631283a84c3ad3 (diff) | |
download | voidsky-d17da8474b6aa3985e3a74bc3459b483d23109cd.tar.zst |
Emoji handling nested (#5609)
Diffstat (limited to 'src/components/Typography.tsx')
-rw-r--r-- | src/components/Typography.tsx | 31 |
1 files changed, 19 insertions, 12 deletions
diff --git a/src/components/Typography.tsx b/src/components/Typography.tsx index 501e23872..19eba35fb 100644 --- a/src/components/Typography.tsx +++ b/src/components/Typography.tsx @@ -53,11 +53,14 @@ export function childIsString( ) } -export function renderChildrenWithEmoji(children: StringChild) { +export function renderChildrenWithEmoji( + children: StringChild, + props: Omit<TextProps, 'children'> = {}, +) { const normalized = Array.isArray(children) ? children : [children] return ( - <UITextView> + <UITextView {...props}> {normalized.map(child => { if (typeof child !== 'string') return child @@ -68,10 +71,12 @@ export function renderChildrenWithEmoji(children: StringChild) { } return child.split(EMOJI).map((stringPart, index) => ( - <UITextView key={index}> + <UITextView key={index} {...props}> {stringPart} {emojis[index] ? ( - <UITextView style={{color: 'black', fontFamily: 'System'}}> + <UITextView + {...props} + style={[props?.style, {color: 'black', fontFamily: 'System'}]}> {emojis[index]} </UITextView> ) : null} @@ -163,15 +168,17 @@ export function Text({ } } + const shared = { + uiTextView: true, + selectable, + style: s, + dataSet: Object.assign({tooltip: title}, dataSet || {}), + ...rest, + } + return ( - <UITextView - selectable={selectable} - uiTextView - style={s} - {...rest} - // @ts-ignore - dataSet={Object.assign({tooltip: title}, dataSet || {})}> - {isIOS && emoji ? renderChildrenWithEmoji(children) : children} + <UITextView {...shared}> + {isIOS && emoji ? renderChildrenWithEmoji(children, shared) : children} </UITextView> ) } |