diff --git a/packages/client/src/login/LoginConnector.tsx b/packages/client/src/login/LoginConnector.tsx deleted file mode 100644 index a34702c..0000000 --- a/packages/client/src/login/LoginConnector.tsx +++ /dev/null @@ -1,36 +0,0 @@ -import { ICredentials } from '@rondo.dev/common' -import { TStateSelector } from '@rondo.dev/redux' -import { bindActionCreators } from 'redux' -import { Connector } from '../redux/Connector' -import { LoginActions } from './LoginActions' -import { LoginForm } from './LoginForm' -import { ILoginState } from './LoginReducer' -import { withForm } from './withForm' - -const defaultCredentials: ICredentials = { - username: '', - password: '', -} - -export class LoginConnector extends Connector { - - constructor(protected readonly loginActions: LoginActions) { - super() - } - - connect(getLocalState: TStateSelector) { - return this.wrap( - getLocalState, - state => ({ - error: state.error, - user: state.user, - redirectTo: state.redirectTo, - }), - dispatch => ({ - onSubmit: bindActionCreators(this.loginActions.logIn, dispatch), - clearOnSuccess: true, - }), - withForm(LoginForm, defaultCredentials), - ) - } -} diff --git a/packages/client/src/login/RegisterConnector.tsx b/packages/client/src/login/RegisterConnector.tsx deleted file mode 100644 index d30a1b5..0000000 --- a/packages/client/src/login/RegisterConnector.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import {Connector} from '../redux/Connector' -import {INewUser} from '@rondo.dev/common' -import {ILoginState} from './LoginReducer' -import {TStateSelector} from '@rondo.dev/redux' -import {LoginActions} from './LoginActions' -import {RegisterForm} from './RegisterForm' -import {bindActionCreators} from 'redux' -import {withForm} from './withForm' - -const defaultCredentials: INewUser = { - username: '', - password: '', - firstName: '', - lastName: '', -} - -export class RegisterConnector extends Connector { - - constructor(protected readonly loginActions: LoginActions) { - super() - } - - connect(getLocalState: TStateSelector) { - return this.wrap( - getLocalState, - state => ({ - error: state.error, - user: state.user, - redirectTo: state.redirectTo, - }), - dispatch => ({ - onSubmit: bindActionCreators(this.loginActions.register, dispatch), - clearOnSuccess: true, - }), - withForm(RegisterForm, defaultCredentials), - ) - } -} diff --git a/packages/client/src/login/LoginForm.test.tsx b/packages/client/src/login/configureLogin.test.tsx similarity index 79% rename from packages/client/src/login/LoginForm.test.tsx rename to packages/client/src/login/configureLogin.test.tsx index e910c9c..91caed1 100644 --- a/packages/client/src/login/LoginForm.test.tsx +++ b/packages/client/src/login/configureLogin.test.tsx @@ -1,16 +1,17 @@ -import { IAPIDef } from '@rondo.dev/common' -import { HTTPClientMock } from '@rondo.dev/http-client' -import { getError } from '@rondo.dev/test-utils' -import React from 'react' -import ReactDOM from 'react-dom' -import T from 'react-dom/test-utils' -import { MemoryRouter } from 'react-router-dom' -import { TestUtils } from '../test-utils' -import * as Feature from './' +import { IAPIDef } from '@rondo.dev/common'; +import { HTTPClientMock } from '@rondo.dev/http-client'; +import { getError } from '@rondo.dev/test-utils'; +import React from 'react'; +import ReactDOM from 'react-dom'; +import T from 'react-dom/test-utils'; +import { MemoryRouter } from 'react-router-dom'; +import { TestUtils } from '../test-utils'; +import * as Feature from './'; +import { configureLogin } from './configureLogin'; const test = new TestUtils() -describe('LoginForm', () => { +describe('configureLogin', () => { const http = new HTTPClientMock() const loginActions = new Feature.LoginActions(http) @@ -20,7 +21,7 @@ describe('LoginForm', () => { select: state => state.Login, }) .withComponent( - select => new Feature.LoginConnector(loginActions).connect(select), + select => configureLogin(select, loginActions), ) .withJSX((Component, props) => , diff --git a/packages/client/src/login/configureLogin.ts b/packages/client/src/login/configureLogin.ts new file mode 100644 index 0000000..41ad085 --- /dev/null +++ b/packages/client/src/login/configureLogin.ts @@ -0,0 +1,32 @@ +import { ICredentials } from '@rondo.dev/common' +import { TStateSelector, pack } from '@rondo.dev/redux' +import { bindActionCreators } from 'redux' +import { Connector } from '../redux/Connector' +import { LoginActions } from './LoginActions' +import { LoginForm } from './LoginForm' +import { ILoginState } from './LoginReducer' +import { withForm } from './withForm' + +const defaultCredentials: ICredentials = { + username: '', + password: '', +} + +export function configureLogin( + getLocalState: TStateSelector, + loginActions: LoginActions, +) { + return pack( + getLocalState, + state => ({ + error: state.error, + user: state.user, + redirectTo: state.redirectTo, + }), + dispatch => ({ + onSubmit: bindActionCreators(loginActions.logIn, dispatch), + clearOnSuccess: true, + }), + withForm(LoginForm, defaultCredentials), + ) +} diff --git a/packages/client/src/login/RegisterForm.test.tsx b/packages/client/src/login/configureRegister.test.tsx similarity index 81% rename from packages/client/src/login/RegisterForm.test.tsx rename to packages/client/src/login/configureRegister.test.tsx index 736436b..e6cf275 100644 --- a/packages/client/src/login/RegisterForm.test.tsx +++ b/packages/client/src/login/configureRegister.test.tsx @@ -1,16 +1,17 @@ -import { IAPIDef } from '@rondo.dev/common' -import { HTTPClientMock } from '@rondo.dev/http-client' -import { getError } from '@rondo.dev/test-utils' -import React from 'react' -import ReactDOM from 'react-dom' -import T from 'react-dom/test-utils' -import { MemoryRouter } from 'react-router-dom' -import { TestUtils } from '../test-utils' -import * as Feature from './' +import { IAPIDef } from '@rondo.dev/common'; +import { HTTPClientMock } from '@rondo.dev/http-client'; +import { getError } from '@rondo.dev/test-utils'; +import React from 'react'; +import ReactDOM from 'react-dom'; +import T from 'react-dom/test-utils'; +import { MemoryRouter } from 'react-router-dom'; +import { TestUtils } from '../test-utils'; +import * as Feature from './'; +import { configureRegister } from './configureRegister'; const test = new TestUtils() -describe('RegisterForm', () => { +describe('configureRegister', () => { const http = new HTTPClientMock() const loginActions = new Feature.LoginActions(http) @@ -20,7 +21,7 @@ describe('RegisterForm', () => { select: state => state.Login, }) .withComponent( - select => new Feature.RegisterConnector(loginActions).connect(select), + select => configureRegister(select, loginActions), ) .withJSX((Component, props) => , diff --git a/packages/client/src/login/configureRegister.ts b/packages/client/src/login/configureRegister.ts new file mode 100644 index 0000000..45604a3 --- /dev/null +++ b/packages/client/src/login/configureRegister.ts @@ -0,0 +1,33 @@ +import { INewUser } from '@rondo.dev/common'; +import { pack, TStateSelector } from '@rondo.dev/redux'; +import { bindActionCreators } from 'redux'; +import { LoginActions } from './LoginActions'; +import { ILoginState } from './LoginReducer'; +import { RegisterForm } from './RegisterForm'; +import { withForm } from './withForm'; + +const defaultCredentials: INewUser = { + username: '', + password: '', + firstName: '', + lastName: '', +} + +export function configureRegister( + getLocalState: TStateSelector, + loginActions: LoginActions, +) { + return pack( + getLocalState, + state => ({ + error: state.error, + user: state.user, + redirectTo: state.redirectTo, + }), + dispatch => ({ + onSubmit: bindActionCreators(loginActions.register, dispatch), + clearOnSuccess: true, + }), + withForm(RegisterForm, defaultCredentials), + ) +} diff --git a/packages/client/src/login/index.ts b/packages/client/src/login/index.ts index 56563f3..a7e3e73 100644 --- a/packages/client/src/login/index.ts +++ b/packages/client/src/login/index.ts @@ -1,6 +1,6 @@ -export * from './LoginActions' -export * from './LoginConnector' -export * from './LoginForm' -export * from './LoginReducer' -export * from './RegisterForm' -export * from './RegisterConnector' +export * from './configureLogin'; +export * from './configureRegister'; +export * from './LoginActions'; +export * from './LoginForm'; +export * from './LoginReducer'; +export * from './RegisterForm'; diff --git a/packages/client/src/team/TeamConnector.test.tsx b/packages/client/src/team/configureTeam.test.tsx similarity index 90% rename from packages/client/src/team/TeamConnector.test.tsx rename to packages/client/src/team/configureTeam.test.tsx index 13c68dc..0826358 100644 --- a/packages/client/src/team/TeamConnector.test.tsx +++ b/packages/client/src/team/configureTeam.test.tsx @@ -1,13 +1,12 @@ -import { IAPIDef, IUserInTeam, ITeamService, TeamServiceMethods, UserServiceMethods, TeamActions, UserActions, IUserService, ITeamUsers, Team } from '@rondo.dev/common' -import { HTTPClientMock } from '@rondo.dev/http-client' +import { ITeamService, ITeamUsers, IUserService, Team, TeamActions, TeamServiceMethods, UserActions, UserServiceMethods } from '@rondo.dev/common' +import { createActions } from '@rondo.dev/jsonrpc' +import createClientMock from '@rondo.dev/jsonrpc/lib/createClientMock' import { getError } from '@rondo.dev/test-utils' import React from 'react' import T from 'react-dom/test-utils' import { MemoryRouter } from 'react-router-dom' import { TestUtils } from '../test-utils' import * as Feature from './' -import { createActions, createRemoteClient } from '@rondo.dev/jsonrpc' -import createClientMock from '@rondo.dev/jsonrpc/lib/createClientMock' const test = new TestUtils() @@ -41,7 +40,8 @@ describe('TeamConnector', () => { reducers: {Team: Feature.Team}, select: state => state.Team, }) - .withComponent(select => Feature.configure(teamActions, userActions, select)) + .withComponent(select => + Feature.configureTeam(select, teamActions, userActions)) .withJSX((Component, props) => diff --git a/packages/client/src/team/TeamConnector.ts b/packages/client/src/team/configureTeam.ts similarity index 94% rename from packages/client/src/team/TeamConnector.ts rename to packages/client/src/team/configureTeam.ts index 63f881a..152d502 100644 --- a/packages/client/src/team/TeamConnector.ts +++ b/packages/client/src/team/configureTeam.ts @@ -3,10 +3,10 @@ import { bindActionCreators, pack, TStateSelector } from '@rondo.dev/redux' import { TeamManager } from './TeamManager' import { ITeamState } from './TeamReducer' -export function configure( +export function configureTeam( + getLocalState: TStateSelector, teamActions: TeamActions, userActions: UserActions, - getLocalState: TStateSelector, ) { const Component = pack( getLocalState, diff --git a/packages/client/src/team/index.ts b/packages/client/src/team/index.ts index 761b825..4ba15c3 100644 --- a/packages/client/src/team/index.ts +++ b/packages/client/src/team/index.ts @@ -1,4 +1,4 @@ -export * from './TeamConnector' +export * from './configureTeam' export * from './TeamList' export * from './TeamManager' export * from './TeamReducer'