From ecbcdc9510125acc01fba283c9dbdce115eb9a3b Mon Sep 17 00:00:00 2001 From: Josh Dover Date: Mon, 5 Nov 2018 17:25:04 -0600 Subject: [PATCH 1/4] Add TS types for EuiTab/EuiTabs/EuiTabbedContent --- src/components/tabs/index.d.ts | 39 ++++++++++++++++++++++++++++++++++ src/components/text/index.d.ts | 4 ++-- 2 files changed, 41 insertions(+), 2 deletions(-) create mode 100644 src/components/tabs/index.d.ts diff --git a/src/components/tabs/index.d.ts b/src/components/tabs/index.d.ts new file mode 100644 index 00000000000..45b3df843b9 --- /dev/null +++ b/src/components/tabs/index.d.ts @@ -0,0 +1,39 @@ +/// + +declare module '@elastic/eui' { + import { MouseEventHandler, ReactNode, SFC } from 'react'; + + type TAB_SIZES = 's' | 'm'; + + type EuiTabProps = CommonProps & { + onClick: MouseEventHandler; + isSelected?: boolean; + children?: ReactNode[]; + disabled?: boolean; + }; + + type EuiTabsProps = CommonProps & { + children?: ReactNode[]; + size?: TAB_SIZES; + expand?: boolean; + }; + + export interface EuiTabbedContentTab { + id: string; + name: string; + content: ReactNode; + } + + type EuiTabbedContentProps = CommonProps & { + tabs: EuiTabbedContentTab[]; + onTabClick?: (tab: EuiTabbedContentTab) => void; + selectedTab?: EuiTabbedContentTab; + initialSelectedTab?: EuiTabbedContentTab; + size?: TAB_SIZES; + expand?: boolean; + } + + export const EuiTab: SFC; + export const EuiTabs: SFC; + export const EuiTabbedContent: SFC; +} \ No newline at end of file diff --git a/src/components/text/index.d.ts b/src/components/text/index.d.ts index 990c4b8a79a..79056140eb6 100644 --- a/src/components/text/index.d.ts +++ b/src/components/text/index.d.ts @@ -9,7 +9,7 @@ declare module '@elastic/eui' { * @see './text.js' * @see './text_color.js' */ - type SIZES = 's' | 'xs'; + type TEXT_SIZES = 's' | 'xs'; type COLORS = | 'default' @@ -22,7 +22,7 @@ declare module '@elastic/eui' { type EuiTextProps = CommonProps & HTMLAttributes & { - size?: SIZES; + size?: TEXT_SIZES; color?: COLORS; grow?: boolean; }; From f9ea1dfac8a169fd6d9cdd2f359b4ae3e1c2ff0a Mon Sep 17 00:00:00 2001 From: Josh Dover Date: Tue, 6 Nov 2018 09:53:32 -0600 Subject: [PATCH 2/4] Fixes --- src/components/tabs/index.d.ts | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/src/components/tabs/index.d.ts b/src/components/tabs/index.d.ts index 45b3df843b9..f259d2b8c96 100644 --- a/src/components/tabs/index.d.ts +++ b/src/components/tabs/index.d.ts @@ -1,19 +1,17 @@ /// declare module '@elastic/eui' { - import { MouseEventHandler, ReactNode, SFC } from 'react'; + import { MouseEventHandler, ReactNode, SFC, HTMLAttributes } from 'react'; type TAB_SIZES = 's' | 'm'; - type EuiTabProps = CommonProps & { + type EuiTabProps = { onClick: MouseEventHandler; isSelected?: boolean; - children?: ReactNode[]; disabled?: boolean; }; - type EuiTabsProps = CommonProps & { - children?: ReactNode[]; + type EuiTabsProps = { size?: TAB_SIZES; expand?: boolean; }; @@ -24,7 +22,7 @@ declare module '@elastic/eui' { content: ReactNode; } - type EuiTabbedContentProps = CommonProps & { + type EuiTabbedContentProps = { tabs: EuiTabbedContentTab[]; onTabClick?: (tab: EuiTabbedContentTab) => void; selectedTab?: EuiTabbedContentTab; @@ -33,7 +31,7 @@ declare module '@elastic/eui' { expand?: boolean; } - export const EuiTab: SFC; - export const EuiTabs: SFC; - export const EuiTabbedContent: SFC; -} \ No newline at end of file + export const EuiTab: SFC>; + export const EuiTabs: SFC>; + export const EuiTabbedContent: SFC>; +} From 70b05e7dc5ef293a7db37c0736695942787888a0 Mon Sep 17 00:00:00 2001 From: Josh Dover Date: Tue, 6 Nov 2018 10:55:45 -0600 Subject: [PATCH 3/4] Add CHANGELOG entry --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 321db57d9ae..c2064f1a1c1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ No public interface changes since `4.8.0`. +**Bug fixes** +- Added TypeScript definitions for tab components ([#1288](https://github.com/elastic/eui/pull/1288)) + ## [`4.8.0`](https://github.com/elastic/eui/tree/v4.8.0) - Adding a `branch` icon to `EuiIcon` ([#1249](https://github.com/elastic/eui/pull/1249/)) From a010cfb39788cd400a8334bb48b9214e11499bdf Mon Sep 17 00:00:00 2001 From: Josh Dover Date: Tue, 6 Nov 2018 11:09:21 -0600 Subject: [PATCH 4/4] Update CHANGELOG.md --- CHANGELOG.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c2064f1a1c1..c163e593fd9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,5 @@ ## [`master`](https://github.com/elastic/eui/tree/master) -No public interface changes since `4.8.0`. - **Bug fixes** - Added TypeScript definitions for tab components ([#1288](https://github.com/elastic/eui/pull/1288))