diff --git a/CHANGELOG.md b/CHANGELOG.md index a021630af8..d1d4a907d3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,11 @@ ## Unreleased +### Features + +- Add `autoCorrect` and `spellCheck` config options to `FeedbackWidget` ([#5627](https://github.com/getsentry/sentry-react-native/pull/5627)) +- Add `autoCapitalize="none"` to `FeedbackWidget` email input ([#5627](https://github.com/getsentry/sentry-react-native/pull/5627)) + ### Fixes - Deep merge custom `styles` with defaults in `FeedbackWidget` instead of replacing them ([#5625](https://github.com/getsentry/sentry-react-native/pull/5625)) diff --git a/packages/core/src/js/feedback/FeedbackWidget.tsx b/packages/core/src/js/feedback/FeedbackWidget.tsx index 7029792444..c3b0eea2f0 100644 --- a/packages/core/src/js/feedback/FeedbackWidget.tsx +++ b/packages/core/src/js/feedback/FeedbackWidget.tsx @@ -260,8 +260,11 @@ export class FeedbackWidget extends React.Component).reduce( (merged, key) => { (merged as Record)[key] = { ...(_defaultStyles[key] as object), ...(_propStyles[key] as object) }; @@ -318,6 +321,8 @@ export class FeedbackWidget extends React.Component this.setState({ name: value })} + autoCorrect={false} + spellCheck={false} /> )} @@ -333,6 +338,9 @@ export class FeedbackWidget extends React.Component this.setState({ email: value })} /> @@ -350,6 +358,8 @@ export class FeedbackWidget extends React.Component this.setState({ description: value })} multiline + autoCorrect={autoCorrect} + spellCheck={spellCheck} /> {(config.enableScreenshot || imagePickerConfiguration.imagePicker || this._hasScreenshot()) && ( diff --git a/packages/core/src/js/feedback/FeedbackWidget.types.ts b/packages/core/src/js/feedback/FeedbackWidget.types.ts index d3878dcfb0..e73a4b00f1 100644 --- a/packages/core/src/js/feedback/FeedbackWidget.types.ts +++ b/packages/core/src/js/feedback/FeedbackWidget.types.ts @@ -60,6 +60,20 @@ export interface FeedbackGeneralConfiguration { */ enableTakeScreenshot?: boolean; + /** + * Enable auto-correct for text inputs. + * + * @default true + */ + autoCorrect?: boolean; + + /** + * Enable spell check for text inputs. + * + * @default true + */ + spellCheck?: boolean; + /** * Fill in email/name input fields with Sentry user context if it exists. * The value of the email/name keys represent the properties of your user context. diff --git a/packages/core/test/feedback/FeedbackWidget.test.tsx b/packages/core/test/feedback/FeedbackWidget.test.tsx index ae31422b62..af9c65e20f 100644 --- a/packages/core/test/feedback/FeedbackWidget.test.tsx +++ b/packages/core/test/feedback/FeedbackWidget.test.tsx @@ -149,6 +149,35 @@ describe('FeedbackWidget', () => { expect(toJSON()).toMatchSnapshot(); }); + it('passes autoCorrect and spellCheck props to message input', () => { + const { getByTestId } = render( + , + ); + + expect(getByTestId('sentry-feedback-message-input').props.autoCorrect).toBe(false); + expect(getByTestId('sentry-feedback-message-input').props.spellCheck).toBe(false); + }); + + it('defaults autoCorrect and spellCheck to true on message input', () => { + const { getByTestId } = render(); + + expect(getByTestId('sentry-feedback-message-input').props.autoCorrect).toBe(true); + expect(getByTestId('sentry-feedback-message-input').props.spellCheck).toBe(true); + }); + + it('hardcodes autoCorrect and spellCheck to false on name and email inputs', () => { + const { getByTestId } = render(); + + expect(getByTestId('sentry-feedback-name-input').props.autoCorrect).toBe(false); + expect(getByTestId('sentry-feedback-name-input').props.spellCheck).toBe(false); + expect(getByTestId('sentry-feedback-email-input').props.autoCorrect).toBe(false); + expect(getByTestId('sentry-feedback-email-input').props.spellCheck).toBe(false); + }); + + it('sets autoCapitalize to none on email input', () => { + const { getByTestId } = render(); + + expect(getByTestId('sentry-feedback-email-input').props.autoCapitalize).toBe('none'); it('deep merges custom styles with defaults instead of replacing them', () => { const partialStyles: FeedbackWidgetStyles = { input: { diff --git a/packages/core/test/feedback/__snapshots__/FeedbackWidget.test.tsx.snap b/packages/core/test/feedback/__snapshots__/FeedbackWidget.test.tsx.snap index 6667e7b1c4..3e1f529fe7 100644 --- a/packages/core/test/feedback/__snapshots__/FeedbackWidget.test.tsx.snap +++ b/packages/core/test/feedback/__snapshots__/FeedbackWidget.test.tsx.snap @@ -80,8 +80,10 @@ exports[`FeedbackWidget matches the snapshot with custom styles 1`] = ` Name