From ebec11f23b105de754e9bd8025b6fcdd43a61079 Mon Sep 17 00:00:00 2001 From: Ryan Price Date: Tue, 13 Aug 2019 18:57:26 -0400 Subject: [PATCH] export v4 react-custom-scrollbars as namespace because it is a UMD module (#37520) This was done once already for v3 https://github.com/DefinitelyTyped/DefinitelyTyped/pull/37489 Without doing this, tsc complains that node_modules/@types/react-custom-scrollbars/index.d.ts is not a module This change also allows importing Scrollbars as the module default `import Scrollbars from` or as a named export `import {Scollbars} from` because either work. Documentation that this is a UMD module: https://github.com/malte-wessel/react-custom-scrollbars/commit/f632d08e725f30ac40cdb6257752ad36b40c6fef --- types/react-custom-scrollbars/index.d.ts | 112 ++++++++++++----------- 1 file changed, 57 insertions(+), 55 deletions(-) diff --git a/types/react-custom-scrollbars/index.d.ts b/types/react-custom-scrollbars/index.d.ts index db2ba3eb74..b5b12c7ee3 100644 --- a/types/react-custom-scrollbars/index.d.ts +++ b/types/react-custom-scrollbars/index.d.ts @@ -7,60 +7,62 @@ import * as React from "react"; -declare module "react-custom-scrollbars" { - export interface positionValues { - top: number; - left: number; - clientWidth: number; - clientHeight: number; - scrollWidth: number; - scrollHeight: number; - scrollLeft: number; - scrollTop: number; - } +export as namespace ReactCustomScrollbars; - export interface ScrollbarProps extends React.HTMLProps { - onScroll?: React.UIEventHandler; - onScrollFrame?: (values: positionValues) => void; - onScrollStart?: () => void; - onScrollStop?: () => void; - onUpdate?: (values: positionValues) => void; - - renderView?: React.StatelessComponent; - renderTrackHorizontal?: React.StatelessComponent; - renderTrackVertical?: React.StatelessComponent; - renderThumbHorizontal?: React.StatelessComponent; - renderThumbVertical?: React.StatelessComponent; - - tagName?: string; - hideTracksWhenNotNeeded?: boolean; - - autoHide?: boolean; - autoHideTimeout?: number; - autoHideDuration?: number; - - thumbSize?: number; - thumbMinSize?: number; - universal?: boolean; - - autoHeight?: boolean; - autoHeightMin?: number | string; - autoHeightMax?: number | string; - } - - export default class Scrollbars extends React.Component { - scrollTop(top: number): void; - scrollLeft(left: number): void; - scrollToTop(): void; - scrollToBottom(): void; - scrollToLeft(): void; - scrollToRight(): void; - getScrollLeft(): number; - getScrollTop(): number; - getScrollWidth(): number; - getScrollHeight(): number; - getClientWidth(): number; - getClientHeight(): number; - getValues(): positionValues; - } +export interface positionValues { + top: number; + left: number; + clientWidth: number; + clientHeight: number; + scrollWidth: number; + scrollHeight: number; + scrollLeft: number; + scrollTop: number; } + +export interface ScrollbarProps extends React.HTMLProps { + onScroll?: React.UIEventHandler; + onScrollFrame?: (values: positionValues) => void; + onScrollStart?: () => void; + onScrollStop?: () => void; + onUpdate?: (values: positionValues) => void; + + renderView?: React.StatelessComponent; + renderTrackHorizontal?: React.StatelessComponent; + renderTrackVertical?: React.StatelessComponent; + renderThumbHorizontal?: React.StatelessComponent; + renderThumbVertical?: React.StatelessComponent; + + tagName?: string; + hideTracksWhenNotNeeded?: boolean; + + autoHide?: boolean; + autoHideTimeout?: number; + autoHideDuration?: number; + + thumbSize?: number; + thumbMinSize?: number; + universal?: boolean; + + autoHeight?: boolean; + autoHeightMin?: number | string; + autoHeightMax?: number | string; +} + +export class Scrollbars extends React.Component { + scrollTop(top: number): void; + scrollLeft(left: number): void; + scrollToTop(): void; + scrollToBottom(): void; + scrollToLeft(): void; + scrollToRight(): void; + getScrollLeft(): number; + getScrollTop(): number; + getScrollWidth(): number; + getScrollHeight(): number; + getClientWidth(): number; + getClientHeight(): number; + getValues(): positionValues; +} + +export default Scrollbars;