From 8c9ef00d19cb26981ccb6f9640bdffa7649409ec Mon Sep 17 00:00:00 2001 From: Danijel Hrvacanin Date: Sat, 11 Apr 2020 10:01:05 +0200 Subject: [PATCH 1/4] Add typings for typescript support --- .gitignore | 1 + index.d.ts | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++ package.json | 1 + 3 files changed, 63 insertions(+) create mode 100644 index.d.ts diff --git a/.gitignore b/.gitignore index 2e35d89..21e26d6 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ package-lock.json /.nyc_output /coverage /lib +.DS_Store diff --git a/index.d.ts b/index.d.ts new file mode 100644 index 0000000..773e131 --- /dev/null +++ b/index.d.ts @@ -0,0 +1,61 @@ +declare module '@trendmicro/react-sidenav' { + import { PureComponent, CSSProperties, FunctionComponent } from 'react'; + + namespace SideNav { + const NavIcon: FunctionComponent + + const NavText: FunctionComponent + + interface NavItemProps { + componentType?: any; + componentClass?: string | Function; + active?: boolean; + disabled?: boolean; + expanded?: boolean; + eventKey?: any; + onClick?: Function; + onSelect?: Function; + selected?: any; + subnav?: boolean; + navitemClassName?: string; + navitemStyle?: CSSProperties; + subnavClassName?: string; + subnavStyle?: CSSProperties; + } + + class NavItem extends PureComponent {} + + interface ToggleProps { + componentType?: any; + componentClass?: string | Function; + disabled?: boolean; + expanded?: boolean; + } + + class Toggle extends PureComponent {} + + interface NavProps { + componentType?: any; + componentClass?: string | Function; + onSelect?: Function; + selected?: any; + defaultSelected?: any; + expanded?: boolean; + } + + class Nav extends PureComponent {} + + interface SideNavProps { + componentType?: any; + componentClass?: string | Function; + disabled?: boolean; + expanded?: boolean; + onToggle?: Function; + onSelect?: Function; + } + } + + class SideNav extends PureComponent {} + + export = SideNav; +} diff --git a/package.json b/package.json index af63d3b..800be95 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,7 @@ "version": "0.5.0", "description": "React SideNav", "main": "lib/index.js", + "types": "./index.d.ts", "files": [ "dist", "lib" From 319954374e9b8216da381b9513df9a9e6df39b74 Mon Sep 17 00:00:00 2001 From: Danijel Hrvacanin Date: Sat, 11 Apr 2020 12:19:30 +0200 Subject: [PATCH 2/4] Add more explicit types --- index.d.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/index.d.ts b/index.d.ts index 773e131..3a820e4 100644 --- a/index.d.ts +++ b/index.d.ts @@ -12,10 +12,10 @@ declare module '@trendmicro/react-sidenav' { active?: boolean; disabled?: boolean; expanded?: boolean; - eventKey?: any; - onClick?: Function; - onSelect?: Function; - selected?: any; + eventKey: string; + onClick?: (event: React.MouseEvent) => void; + onSelect?: (eventKey: string, event: React.MouseEvent) => void; + selected?: string; subnav?: boolean; navitemClassName?: string; navitemStyle?: CSSProperties; @@ -37,9 +37,9 @@ declare module '@trendmicro/react-sidenav' { interface NavProps { componentType?: any; componentClass?: string | Function; - onSelect?: Function; - selected?: any; - defaultSelected?: any; + onSelect?: (eventKey: string, event: React.MouseEvent) => void; + selected?: string; + defaultSelected?: string; expanded?: boolean; } @@ -51,7 +51,7 @@ declare module '@trendmicro/react-sidenav' { disabled?: boolean; expanded?: boolean; onToggle?: Function; - onSelect?: Function; + onSelect?: (expanded: boolean) => void; } } From 5af7db9c3f686e35206ce569cc2bf8d50b6fe2bc Mon Sep 17 00:00:00 2001 From: Danijel Hrvacanin Date: Sat, 11 Apr 2020 12:19:56 +0200 Subject: [PATCH 3/4] Add more explicit types --- index.d.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.d.ts b/index.d.ts index 3a820e4..23c69f8 100644 --- a/index.d.ts +++ b/index.d.ts @@ -13,8 +13,8 @@ declare module '@trendmicro/react-sidenav' { disabled?: boolean; expanded?: boolean; eventKey: string; - onClick?: (event: React.MouseEvent) => void; - onSelect?: (eventKey: string, event: React.MouseEvent) => void; + onClick?: (event: React.MouseEvent) => void; + onSelect?: (eventKey: string, event: React.MouseEvent) => void; selected?: string; subnav?: boolean; navitemClassName?: string; From 4ab7fe23880a8b003deab643827fe96a4d108197 Mon Sep 17 00:00:00 2001 From: Danijel Hrvacanin Date: Sat, 11 Apr 2020 12:22:21 +0200 Subject: [PATCH 4/4] Add more explicit types --- index.d.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/index.d.ts b/index.d.ts index 23c69f8..5aaea8c 100644 --- a/index.d.ts +++ b/index.d.ts @@ -13,8 +13,8 @@ declare module '@trendmicro/react-sidenav' { disabled?: boolean; expanded?: boolean; eventKey: string; - onClick?: (event: React.MouseEvent) => void; - onSelect?: (eventKey: string, event: React.MouseEvent) => void; + onClick?: (event?: React.MouseEvent) => void; + onSelect?: (eventKey: string, event?: React.MouseEvent) => void; selected?: string; subnav?: boolean; navitemClassName?: string; @@ -37,7 +37,7 @@ declare module '@trendmicro/react-sidenav' { interface NavProps { componentType?: any; componentClass?: string | Function; - onSelect?: (eventKey: string, event: React.MouseEvent) => void; + onSelect?: (eventKey: string, event?: React.MouseEvent) => void; selected?: string; defaultSelected?: string; expanded?: boolean;