diff --git a/src/utilities/overrideTextInputRenderFn.ts b/src/utilities/overrideTextInputRenderFn.ts index e8a2dfa..730d971 100644 --- a/src/utilities/overrideTextInputRenderFn.ts +++ b/src/utilities/overrideTextInputRenderFn.ts @@ -12,12 +12,15 @@ export function overrideTextInputRenderFn() { } overrideRenderFn(...args: any[]) { - const element = originalRenderFn.call(this, ...args); - const fontFaces = Object.values(globalFontFaces); - const originalStyle: TextStyle = StyleSheet.flatten([element.props.style]); - const overrideStyle: TextStyle = generateOverrideStyle(fontFaces, originalStyle); - const flattenedStyle: TextStyle = StyleSheet.flatten([originalStyle, overrideStyle]); - return React.cloneElement(element, { style: flattenedStyle }); + if (args.length && args[0].style) { + const fontFaces = Object.values(globalFontFaces); + const originalStyle: TextStyle = StyleSheet.flatten([args[0].style]); + const overrideStyle: TextStyle = generateOverrideStyle(fontFaces, originalStyle); + const flattenedStyle: TextStyle = StyleSheet.flatten([originalStyle, overrideStyle]); + args.splice(0, 1, { ...args[0], style: flattenedStyle }); + } + + return originalRenderFn.call(this, ...args); } } diff --git a/src/utilities/overrideTextRenderFn.ts b/src/utilities/overrideTextRenderFn.ts index 1df672a..b0fe5cc 100644 --- a/src/utilities/overrideTextRenderFn.ts +++ b/src/utilities/overrideTextRenderFn.ts @@ -12,12 +12,15 @@ export function overrideTextRenderFn() { } overrideRenderFn(...args: any[]) { - const element = originalRenderFn.call(this, ...args); - const fontFaces = Object.values(globalFontFaces); - const originalStyle: TextStyle = StyleSheet.flatten([element.props.style]); - const overrideStyle: TextStyle = generateOverrideStyle(fontFaces, originalStyle); - const flattenedStyle: TextStyle = StyleSheet.flatten([originalStyle, overrideStyle]); - return React.cloneElement(element, { style: flattenedStyle }); + if (args.length && args[0].style) { + const fontFaces = Object.values(globalFontFaces); + const originalStyle: TextStyle = StyleSheet.flatten([args[0].style]); + const overrideStyle: TextStyle = generateOverrideStyle(fontFaces, originalStyle); + const flattenedStyle: TextStyle = StyleSheet.flatten([originalStyle, overrideStyle]); + args.splice(0, 1, { ...args[0], style: flattenedStyle }); + } + + return originalRenderFn.call(this, ...args); } }