Autofill first team member with auth'd user (#140)

This commit is contained in:
AMStrix 2018-10-08 21:21:40 -07:00 committed by Daniel Ternyak
parent 3dd4253acb
commit 9cb71923d5
2 changed files with 31 additions and 10 deletions

View File

@ -1,18 +1,26 @@
import React from 'react';
import { connect } from 'react-redux';
import { Icon } from 'antd';
import { CreateFormState, TeamMember } from 'types';
import TeamMemberComponent from './TeamMember';
import './Team.less';
import { AppState } from 'store/reducers';
interface State {
team: TeamMember[];
}
interface Props {
interface StateProps {
authUser: AppState['auth']['user'];
}
interface OwnProps {
initialState?: Partial<State>;
updateForm(form: Partial<CreateFormState>): void;
}
type Props = OwnProps & StateProps;
const MAX_TEAM_SIZE = 6;
const DEFAULT_STATE: State = {
team: [
@ -27,7 +35,7 @@ const DEFAULT_STATE: State = {
],
};
export default class CreateFlowTeam extends React.PureComponent<Props, State> {
class CreateFlowTeam extends React.Component<Props, State> {
constructor(props: Props) {
super(props);
this.state = {
@ -36,18 +44,23 @@ export default class CreateFlowTeam extends React.PureComponent<Props, State> {
};
// Don't allow for empty team array
// TODO: Default first user to auth'd user
if (!this.state.team.length) {
this.state = {
...this.state,
team: [...DEFAULT_STATE.team],
};
}
// Auth'd user is always first member of a team
if (props.authUser) {
this.state.team[0] = {
...props.authUser,
};
}
}
render() {
const { team } = this.state;
return (
<div className="TeamForm">
{team.map((user, idx) => (
@ -99,3 +112,9 @@ export default class CreateFlowTeam extends React.PureComponent<Props, State> {
this.props.updateForm({ team });
};
}
const withConnect = connect<StateProps>((state: AppState) => ({
authUser: state.auth.user,
}));
export default withConnect(CreateFlowTeam);

View File

@ -159,13 +159,15 @@ export default class CreateFlowTeamMember extends React.PureComponent<Props, Sta
);
})}
</div>
<button className="TeamMember-info-edit" onClick={this.toggleEditing}>
<Icon type="form" /> Edit
</button>
{index !== 0 && (
<button className="TeamMember-info-remove" onClick={this.removeMember}>
<Icon type="close-circle" theme="filled" />
</button>
<>
<button className="TeamMember-info-edit" onClick={this.toggleEditing}>
<Icon type="form" /> Edit
</button>
<button className="TeamMember-info-remove" onClick={this.removeMember}>
<Icon type="close-circle" theme="filled" />
</button>
</>
)}
</>
)}