From e5472a13da277ef7cccb870d62197dd86b9c3e86 Mon Sep 17 00:00:00 2001 From: Hailey Date: Mon, 15 Jan 2024 05:27:15 -0800 Subject: [PATCH] re-render on numberOfLines change --- .../expo-selectable-text/ios/ExpoUITextViewModule.swift | 9 +++++++-- modules/expo-selectable-text/src/ExpoUITextView.tsx | 2 +- modules/expo-selectable-text/src/ExpoUITextView.types.ts | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/modules/expo-selectable-text/ios/ExpoUITextViewModule.swift b/modules/expo-selectable-text/ios/ExpoUITextViewModule.swift index e9702c6ad8..ef5e79db20 100644 --- a/modules/expo-selectable-text/ios/ExpoUITextViewModule.swift +++ b/modules/expo-selectable-text/ios/ExpoUITextViewModule.swift @@ -34,10 +34,15 @@ public class ExpoUITextViewModule: Module { Prop("allowFontScaling") { (view: ExpoUITextView, prop: Bool) in view.textView.adjustsFontForContentSizeCategory = prop } - Prop("numberOfLines") { (view: ExpoUITextView, prop: Int) in - view.textView.textContainer.maximumNumberOfLines = prop + Prop("numberOfLines") { (view: ExpoUITextView, prop: Int?) in + view.textView.textContainer.maximumNumberOfLines = prop ?? 0 + + if view.textView.attributedText != nil { + view.setText() + } } Prop("ellipsizeMode") { (view: ExpoUITextView, prop: EllipsizeMode) in + print(prop.toLineBreakMode()) view.textView.textContainer.lineBreakMode = prop.toLineBreakMode() } Prop("selectable") { (view: ExpoUITextView, prop: Bool) in diff --git a/modules/expo-selectable-text/src/ExpoUITextView.tsx b/modules/expo-selectable-text/src/ExpoUITextView.tsx index 017b4bd374..3e9a6709fc 100644 --- a/modules/expo-selectable-text/src/ExpoUITextView.tsx +++ b/modules/expo-selectable-text/src/ExpoUITextView.tsx @@ -22,7 +22,6 @@ const useTextAncestorContext = () => React.useContext(TextAncestorContext) const textDefaults: TextProps = { allowFontScaling: true, selectable: true, - lineBreakMode: 'tail', } export default function ExpoUITextView({ @@ -45,6 +44,7 @@ export default function ExpoUITextView({ {React.Children.toArray(children).map((c, index) => { if (React.isValidElement(c)) { diff --git a/modules/expo-selectable-text/src/ExpoUITextView.types.ts b/modules/expo-selectable-text/src/ExpoUITextView.types.ts index 5bd8dc4b6b..17c938d46d 100644 --- a/modules/expo-selectable-text/src/ExpoUITextView.types.ts +++ b/modules/expo-selectable-text/src/ExpoUITextView.types.ts @@ -3,7 +3,7 @@ import {TextProps, TextStyle, ViewStyle} from 'react-native' export interface ExpoUITextViewProps extends TextProps {} -export interface ExpoUITextViewNativeProps { +export interface ExpoUITextViewNativeProps extends TextProps { children: React.ReactNode style: ViewStyle[] }