diff --git a/redux-ui/redux-ui-tests.ts b/redux-ui/redux-ui-tests.ts
index 6d1954886d..c039fcf349 100644
--- a/redux-ui/redux-ui-tests.ts
+++ b/redux-ui/redux-ui-tests.ts
@@ -2,7 +2,7 @@
///
import * as React from 'react'
-import ui, { ReduxUIProps } from 'redux-ui'
+import ui, { ReduxUIProps, reducer } from 'redux-ui'
type UIShape = {
s: string
@@ -18,7 +18,7 @@ type UIShape = {
options: {}
})
class Root extends React.Component, {}> {
- render() {
+ componentWillMount() {
console.info(
this.props.ui.s,
this.props.uiKey
@@ -26,6 +26,10 @@ class Root extends React.Component, {}> {
this.props.updateUI('s', 'a')
this.props.updateUI({s: 'a'})
this.props.resetUI()
- return null
}
}
+
+Redux.combineReducers({
+ ui: reducer,
+})
+
diff --git a/redux-ui/redux-ui.d.ts b/redux-ui/redux-ui.d.ts
index 8af92fbefd..61110ed245 100644
--- a/redux-ui/redux-ui.d.ts
+++ b/redux-ui/redux-ui.d.ts
@@ -1,43 +1,47 @@
+///
+
declare module "redux-ui" {
export interface uiParams {
// optional key which is used to determine the UI path in which state will
// be stored. if omitted this is randomly generated.
key?: string
-
+
// optional persist, defaults to false. if set to true persist will keep UI
// state for this component after it unmounts. if set to false the UI state
// will be deleted and recreated when the component remounts
persist?: boolean
-
+
// **required**: UI state for the component
state: UIStateShape
-
+
// optional mergeProps passed to react-redux' @connect
mergeProps?: (stateProps: any, dispatchProps: any, ownProps: any) => any
-
+
// optional `options` passed to react-redux @connect
options?: {
pure?: boolean;
withRef?: boolean;
}
}
-
+
export interface ReduxUIProps {
// The key passed to the decorator from the decorator
// (eg. 'some-decorator' with `@ui('some-decorator')`
uiKey: string
-
+
// The UI state for the component's `uiKey`
ui: UIStateShape
-
+
// A function accepting either a name/value pair or object which updates
// state within `uiKey`
updateUI(obj: UIStateShape): void
updateUI(key: string, value: any): void
-
+
// A function which resets the state within `uiKey` to its default
resetUI(): void
}
-
+
+ export const reducer: Redux.Reducer
+
export default function ui(params: uiParams): (component: T) => T
}