From b7531163db5658688e338ae6354a790ea753c4cf Mon Sep 17 00:00:00 2001 From: yu-i9 Date: Fri, 1 Apr 2016 20:12:28 +0900 Subject: [PATCH] Added definitions for react-tabs --- react-tabs/react-tabs-tests.ts | 27 +++++++++++++++ react-tabs/react-tabs.d.ts | 61 ++++++++++++++++++++++++++++++++++ 2 files changed, 88 insertions(+) create mode 100644 react-tabs/react-tabs-tests.ts create mode 100644 react-tabs/react-tabs.d.ts diff --git a/react-tabs/react-tabs-tests.ts b/react-tabs/react-tabs-tests.ts new file mode 100644 index 000000000..f953b5001 --- /dev/null +++ b/react-tabs/react-tabs-tests.ts @@ -0,0 +1,27 @@ +/// +/// +/// + +import React = require("react"); +import ReactDOM = require("react-dom"); +import { Tabs, TabList, Tab, TabPanel } from "react-tabs"; + +class TestApp extends React.Component<{}, {}> { + onSelect = (index: number, last: number) => { + console.log("selected tab: " + index.toString()); + console.log("last tab: " + last.toString()); + } + + render() { + return React.createElement(Tabs, {onSelect: this.onSelect, selectedIndex: 1}, + React.createElement(TabList, {className: "test-class"}, + React.createElement(Tab, {}, "Tab1"), + React.createElement(Tab, {}, "Tab2"), + React.createElement(Tab, {}, "Tab3")), + React.createElement(TabPanel, {}, React.createElement("h2", {}, "Content1")), + React.createElement(TabPanel, {}, React.createElement("h2", {}, "Content2")), + React.createElement(TabPanel, {}, React.createElement("h2", {}, "Content3"))); + } +} + +ReactDOM.render(React.createElement(TestApp, {}), document.getElementById("test-app")); diff --git a/react-tabs/react-tabs.d.ts b/react-tabs/react-tabs.d.ts new file mode 100644 index 000000000..cb292a8f7 --- /dev/null +++ b/react-tabs/react-tabs.d.ts @@ -0,0 +1,61 @@ +// Type definitions for react-tabs 0.5.3 +// Project: https://github.com/reactjs/react-tabs/ +// Definitions by: Yuu Igarashi +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/// + +declare namespace ReactTabs { + + interface TabsProps { + className?: string; + selectedIndex?: number; + focus?: boolean; + forceRenderTabPanel?: boolean; + onSelect?: (index: number, last: number) => void; + } + + interface Tabs extends __React.ComponentClass {} + + interface TabListProps { + className?: string; + } + + interface TabList extends __React.ComponentClass {} + + interface TabProps { + className?: string; + focus?: boolean; + selected?: boolean; + id?: string; + panelId?: string; + } + + interface Tab extends __React.ComponentClass {} + + interface TabPanelProps { + className?: string; + selected?: boolean; + id?: string; + tabId?: string; + } + + interface TabPanel extends __React.ComponentClass {} +} + + +declare module "react-tabs" { + + var Tabs: ReactTabs.Tabs; + var TabList: ReactTabs.TabList; + var Tab: ReactTabs.Tab; + var TabPanel: ReactTabs.TabPanel; + + export { + Tabs, + TabList, + Tab, + TabPanel + } + +}