Skip to content
This repository was archived by the owner on Jul 16, 2020. It is now read-only.

Commit 7d19b7a

Browse files
author
ricokahler
committed
dispatch select degree event
1 parent 85e7d1f commit 7d19b7a

File tree

2 files changed

+31
-4
lines changed

2 files changed

+31
-4
lines changed

src/client/routes/welcome/index.ts

+19-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,25 @@ const Container = Model.store.connect({
1818
degrees: getMasteredDegreesConsideringAdmin(state.masteredDegrees, isAdmin),
1919
};
2020
},
21-
mapDispatchToProps: () => ({}),
21+
mapDispatchToProps: dispatch => ({
22+
onSelectedDegree: (degreeId: string) => {
23+
dispatch(state => {
24+
const user = state.user;
25+
if (!user) return state;
26+
return {
27+
...state,
28+
user: {
29+
...user,
30+
chosenDegree: true,
31+
degree: {
32+
...user.degree,
33+
masteredDegreeId: degreeId,
34+
},
35+
},
36+
};
37+
});
38+
},
39+
}),
2240
})(Welcome);
2341

2442
export { Container as Welcome };

src/client/routes/welcome/welcome.tsx

+12-3
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ const Times = styled(Fa)`
116116

117117
interface WelcomeProps {
118118
degrees: Model.MasteredDegree.Model[];
119+
onSelectedDegree: (degreeId: string) => void;
119120
}
120121

121122
interface WelcomeState {
@@ -182,6 +183,12 @@ export class Welcome extends React.PureComponent<WelcomeProps, WelcomeState> {
182183
this.setState({ selectedDegreeId: undefined });
183184
};
184185

186+
handleLetsBegin = () => {
187+
const { selectedDegreeId } = this.state;
188+
if (!selectedDegreeId) return;
189+
this.props.onSelectedDegree(selectedDegreeId);
190+
};
191+
185192
renderSuggestion = (degree: Model.MasteredDegree.Model, selected: boolean) => {
186193
return <Suggestion selected={selected}>{degree.name}</Suggestion>;
187194
};
@@ -234,9 +241,11 @@ export class Welcome extends React.PureComponent<WelcomeProps, WelcomeState> {
234241
/>
235242
)}
236243

237-
<PrimaryButton>
238-
Let's begin <Arrow icon="chevronRight" />
239-
</PrimaryButton>
244+
{!!this.selectedDegreeName && (
245+
<PrimaryButton onClick={this.handleLetsBegin}>
246+
Let's begin <Arrow icon="chevronRight" />
247+
</PrimaryButton>
248+
)}
240249
<NotPart onClick={this.notPartInfoModal.open}>
241250
Not part of the College of Engineering and Computer Science?
242251
</NotPart>

0 commit comments

Comments
 (0)