From e4c3a21c4292d587de0d49a84eb7b023fc68a984 Mon Sep 17 00:00:00 2001 From: Nicolas Gallagher Date: Thu, 7 Mar 2019 10:58:27 -0800 Subject: [PATCH] [fix] TextInput autoComplete="off" Browsers treat autoComplete "off" as "on". The fix is to provide the browser with an unrecognized value so that it doesn't attempt to auto-fill the input. Fix #1249 --- .../src/exports/TextInput/__tests__/index-test.js | 2 +- packages/react-native-web/src/exports/TextInput/index.js | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/react-native-web/src/exports/TextInput/__tests__/index-test.js b/packages/react-native-web/src/exports/TextInput/__tests__/index-test.js index 3c4287b3..3f6f4d7a 100644 --- a/packages/react-native-web/src/exports/TextInput/__tests__/index-test.js +++ b/packages/react-native-web/src/exports/TextInput/__tests__/index-test.js @@ -25,7 +25,7 @@ describe('components/TextInput', () => { test('value "off"', () => { const input = findNativeInput(shallow()); - expect(input.prop('autoComplete')).toEqual('off'); + expect(input.prop('autoComplete')).toEqual('noop'); }); }); diff --git a/packages/react-native-web/src/exports/TextInput/index.js b/packages/react-native-web/src/exports/TextInput/index.js index ef2f37b9..8a344b48 100644 --- a/packages/react-native-web/src/exports/TextInput/index.js +++ b/packages/react-native-web/src/exports/TextInput/index.js @@ -171,6 +171,7 @@ class TextInput extends Component<*> { render() { const { + autoComplete, autoCorrect, editable, keyboardType, @@ -253,6 +254,9 @@ class TextInput extends Component<*> { const component = multiline ? 'textarea' : 'input'; Object.assign(otherProps, { + // Browser's treat autocomplete "off" as "on" + // https://bugs.chromium.org/p/chromium/issues/detail?id=468153#c164 + autoComplete: autoComplete === 'off' ? 'noop' : autoComplete, autoCorrect: autoCorrect ? 'on' : 'off', dir: 'auto', onBlur: normalizeEventHandler(this._handleBlur),