react-native-paper icon indicating copy to clipboard operation
react-native-paper copied to clipboard

Multiline TextInput backgroundColor does not fully cover surface

Open donutdonate opened this issue 1 year ago • 4 comments

Current behaviour

Multiline TextInput background color does not cover all the surface on iOS if background color have opacity.

Expected behaviour

Multiline TextInput background color should cover all the surface on iOS.

How to reproduce?

https://snack.expo.dev/@konstantin_bonn/textinput

Preview

Снимок экрана 2024-07-30 в 17 16 33

What have you tried so far?

Try to apply contentStyle with the same color, but it just got worse. Works fine if comment background in this workaround for iOS

{!isAndroid && multiline && !!label && !disabled && (
          // Workaround for: https://github.com/callstack/react-native-paper/issues/2799
          // Patch for a multiline TextInput with fixed height, which allow to avoid covering input label with its value.
          <View
            testID="patch-container"
            pointerEvents="none"
            style={[
              StyleSheet.absoluteFill,
              dense ? styles.densePatchContainer : styles.patchContainer,
              {
                // backgroundColor:
                //   viewStyle.backgroundColor || containerStyle.backgroundColor,
                left: paddingLeft,
                right: paddingRight,
              },
            ]}
          />
        )}

Your Environment

software version
ios 17.2
react-native "0.73.6"
react-native-paper "^5.12.3"
node v20.5.0
yarn 1.22.19

donutdonate avatar Jul 30 '24 14:07 donutdonate

@lukewalczak I'm facing the same with the latest version of paper using mulitline. Here is the patch mentioned above by @donutdonate that seems to resolve the issue, in case anyone needs it.

diff --git a/node_modules/react-native-paper/src/components/TextInput/TextInputFlat.tsx b/node_modules/react-native-paper/src/components/TextInput/TextInputFlat.tsx
index 8a0dcb1..583c656 100644
--- a/node_modules/react-native-paper/src/components/TextInput/TextInputFlat.tsx
+++ b/node_modules/react-native-paper/src/components/TextInput/TextInputFlat.tsx
@@ -363,8 +363,8 @@ const TextInputFlat = ({
               StyleSheet.absoluteFill,
               dense ? styles.densePatchContainer : styles.patchContainer,
               {
-                backgroundColor:
-                  viewStyle.backgroundColor || containerStyle.backgroundColor,
+                // backgroundColor:
+                //   viewStyle.backgroundColor || containerStyle.backgroundColor,
                 left: paddingLeft,
                 right: paddingRight,
               },

iM-GeeKy avatar Aug 01 '24 09:08 iM-GeeKy

@lukewalczak The above patch seems to work on simulator, but appears to not work when deployed to a standalone build. Screenshot 2024-08-02 at 8 51 07 AM I suppose I could revert back to a version where this wasn't an issue (for me that is 5.12.3, but it would be nice to find a resolution for this as it is the only defect preventing me from releasing the next version of my app.

iM-GeeKy avatar Aug 02 '24 12:08 iM-GeeKy

#4482 looks to be caused by the same block of code mentioned in this issue.

ericpoulinnz avatar Aug 21 '24 05:08 ericpoulinnz

Still happening. Bump!

Michota avatar Jun 10 '25 16:06 Michota