diff --git a/examples/multiple-Portal.tsx b/examples/multiple-Portal.tsx index a1ecbca1..9aa0bc5a 100644 --- a/examples/multiple-Portal.tsx +++ b/examples/multiple-Portal.tsx @@ -1,10 +1,12 @@ -import React, { useState } from 'react'; -import ReactDOM from 'react-dom'; +import * as React from 'react'; +import * as ReactDOM from 'react-dom'; import Dialog from '../src/DialogWrap'; import Drawer from 'rc-drawer'; import 'rc-drawer/assets/index.css'; import 'rc-dialog/assets/index.less'; +const { useState } = React; + const Demo = () => { const [showDialog, setShowDialog] = useState(false); const [showDrawer, setShowDrawer] = useState(false); diff --git a/package.json b/package.json index 11e97a87..87f9af1d 100644 --- a/package.json +++ b/package.json @@ -49,6 +49,7 @@ "compile": "rc-tools run compile --babel-runtime", "pub": "rc-tools run pub --babel-runtime", "lint": "rc-tools run lint --no-js-lint", + "lint:ts": "tsc", "karma": "rc-test run karma", "saucelabs": "rc-test run saucelabs", "test": "rc-test run test", diff --git a/src/Dialog.tsx b/src/Dialog.tsx index 6e02f6f9..3e32d3bc 100644 --- a/src/Dialog.tsx +++ b/src/Dialog.tsx @@ -47,7 +47,11 @@ function offset(el: any) { // https://github.com/ant-design/ant-design/issues/19340 // https://github.com/ant-design/ant-design/issues/19332 -let cacheOverflow = {}; +interface ICacheOverflow { + overflowX?: string; + overflowY?: string; +} +let cacheOverflow: ICacheOverflow = {}; export interface IDialogChildProps extends IDialogPropTypes { getOpenCount: () => number; @@ -75,7 +79,6 @@ export default class Dialog extends React.Component { private sentinelEnd: HTMLElement; private dialogMouseDown: boolean; private timeoutId: number; - private cacheOverflow: { overflowX: string | null; overflowY: string | null}; constructor(props: IDialogChildProps) { super(props); @@ -383,12 +386,14 @@ export default class Dialog extends React.Component { cacheOverflow = { overflowX: document.body.style.overflowX, overflowY: document.body.style.overflowY, - }; + } as ICacheOverflow; document.body.style.overflow = 'hidden'; switchScrollingEffect(); } else if (!openCount) { - if (cacheOverflow.overflowX !== undefined || cacheOverflow.overflowY !== undefined) { + if (cacheOverflow.overflowX !== undefined) { document.body.style.overflowX = cacheOverflow.overflowX; + } + if (cacheOverflow.overflowY !== undefined) { document.body.style.overflowY = cacheOverflow.overflowY; } cacheOverflow = {};