diff --git a/react/react-addons-tests.ts b/react/react-addons-tests.ts index 059769bb9..7ce0fa23f 100644 --- a/react/react-addons-tests.ts +++ b/react/react-addons-tests.ts @@ -1,7 +1,36 @@ /// import React = require("react/addons"); -// TestUtils +var isImportant: boolean; +var isRead: boolean; +var classSet: React.ClassSet = { + "message": true, + "message-important": isImportant, + "message-read": isRead +}; +var cx = React.addons.classSet; +var classes: string = cx(classSet); + +// +// React.addons (Transitions) +// -------------------------------------------------------------------------- + +React.createFactory(React.addons.TransitionGroup)({ component: "div" }); +React.createFactory(React.addons.CSSTransitionGroup)({ + component: React.createClass({ + render: (): React.ReactElement => null + }), + childFactory: (c) => c, + transitionName: "transition", + transitionAppear: false, + transitionEnter: true, + transitionLeave: true +}); + +// +// React.addons.TestUtils +// -------------------------------------------------------------------------- + var that: React.CompositeComponent; var node = that.refs["input"].getDOMNode(); React.addons.TestUtils.Simulate.click(node); @@ -16,27 +45,24 @@ interface GreetingState { } interface Greeting extends React.CompositeComponent { } -var Greeting = React.createClass({displayName: "Greeting", +var Greeting = React.createClass({ + displayName: "Greeting", getInitialState: function() { return {morning: true}; }, render: function() { var me = this; - return React.DOM.div(null, (me.state.morning ? "Hello" : "Goodbye "), me.props.name); + return React.DOM.div( + null, + me.state.morning ? "Hello " : "Goodbye ", + me.props.name); } }); -var root = React.addons.TestUtils.renderIntoDocument(React.createElement(Greeting, {name: "John"})); -var greeting = React.addons.TestUtils.findRenderedComponentWithType(root, Greeting); +var root = React.addons.TestUtils.renderIntoDocument( + React.createElement(Greeting, {name: "John"})); +var greeting = React.addons.TestUtils + .findRenderedComponentWithType(root, Greeting); greeting.setState({ morning: false }); - -var isImportant: boolean; -var isRead: boolean; -var cx = React.addons.classSet; -var classes: string = cx({ - "message": true, - "message-important": isImportant, - "message-read": isRead -}); diff --git a/react/react.d.ts b/react/react.d.ts index 65153341b..ca94c7e01 100644 --- a/react/react.d.ts +++ b/react/react.d.ts @@ -647,21 +647,29 @@ declare module React { } // - // React.addons (Transitions) + // React.addons // ---------------------------------------------------------------------- - interface CSSTransitionGroupProps { - transitionName: string; - transitionAppear?: boolean; - transitionEnter?: boolean; - transitionLeave?: boolean; + interface ClassSet { + [key: string]: boolean; } + // + // React.addons (Transitions) + // ---------------------------------------------------------------------- + interface TransitionGroupProps { component?: any; // ReactType childFactory?: (child: ReactElement) => ReactElement; } + interface CSSTransitionGroupProps extends TransitionGroupProps { + transitionName: string; + transitionAppear?: boolean; + transitionEnter?: boolean; + transitionLeave?: boolean; + } + interface CSSTransitionGroup extends ComponentClass {} interface TransitionGroup extends ComponentClass {} @@ -874,7 +882,7 @@ declare module React { batchedUpdates(callback: (a: A) => any, a: A): void; batchedUpdates(callback: () => any): void; - classSet(cx: { [key: string]: boolean }): string; + classSet(cx: ClassSet): string; cloneWithProps

(element: ReactElement

, props: P): ReactElement

; update(value: any[], spec: UpdateArraySpec): any[];