From 8f414532c9af2514486bb490468c6e57f2cd930e Mon Sep 17 00:00:00 2001 From: blacktail Date: Fri, 22 Jul 2022 11:30:17 +0800 Subject: [PATCH] fix: Inconsistent use of accents in Safari #16 --- src/ResizableTextArea.tsx | 13 ++++++++----- tests/index.spec.js | 4 ++-- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/ResizableTextArea.tsx b/src/ResizableTextArea.tsx index 595f455..7602da0 100644 --- a/src/ResizableTextArea.tsx +++ b/src/ResizableTextArea.tsx @@ -1,10 +1,10 @@ -import * as React from 'react'; +import classNames from 'classnames'; import ResizeObserver from 'rc-resize-observer'; import omit from 'rc-util/lib/omit'; -import classNames from 'classnames'; -import calculateNodeHeight from './calculateNodeHeight'; -import type { TextAreaProps } from '.'; +import * as React from 'react'; import shallowEqual from 'shallowequal'; +import type { TextAreaProps } from '.'; +import calculateNodeHeight from './calculateNodeHeight'; // eslint-disable-next-line @typescript-eslint/naming-convention enum RESIZE_STATUS { @@ -109,7 +109,10 @@ class ResizableTextArea extends React.Component { // https://github.com/ant-design/ant-design/issues/21870 fixFirefoxAutoScroll() { try { - if (document.activeElement === this.textArea) { + if ( + window.hasOwnProperty('mozInnerScreenX') && + document.activeElement === this.textArea + ) { const currentStart = this.textArea.selectionStart; const currentEnd = this.textArea.selectionEnd; this.textArea.setSelectionRange(currentStart, currentEnd); diff --git a/tests/index.spec.js b/tests/index.spec.js index 3fd5035..4bbc99e 100644 --- a/tests/index.spec.js +++ b/tests/index.spec.js @@ -1,10 +1,9 @@ -import React from 'react'; import { mount } from 'enzyme'; import TextArea from '../src'; -import { focusTest, sleep } from './utils'; import calculateNodeHeight, { calculateNodeStyling, } from '../src/calculateNodeHeight'; +import { focusTest, sleep } from './utils'; focusTest(TextArea); @@ -241,6 +240,7 @@ describe('TextArea', () => { }); it('scroll to bottom when autoSize', async () => { + window.mozInnerScreenX = 0; const wrapper = mount(