Skip to content

Commit 65b489e

Browse files
fix(firstMile): remember the thumbs up feedback for the session (#4499)
1 parent cc9c346 commit 65b489e

File tree

5 files changed

+38
-12
lines changed

5 files changed

+38
-12
lines changed

src/homepageExperience/components/FeedbackBar.tsx

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,40 +15,36 @@ import 'src/homepageExperience/components/HomepageExperience.scss'
1515

1616
type OwnProps = {
1717
wizardEventName: string
18-
}
19-
type State = {
2018
selectedFeedback: number
19+
onFeedbackSelection: (feedbackValue: number) => void
2120
}
2221

2322
enum feedbackValue {
2423
THUMBS_DOWN,
2524
THUMBS_UP,
2625
}
2726

28-
export default class FeedbackBar extends React.Component<OwnProps, State> {
27+
export default class FeedbackBar extends React.Component<OwnProps> {
2928
constructor(props) {
3029
super(props)
31-
this.state = {
32-
selectedFeedback: null,
33-
}
3430
}
3531

3632
// for now, we're only registering the first feedback user selects.
3733
private handleThumbsUpClick = () => {
38-
if (this.state.selectedFeedback === null) {
34+
if (this.props.selectedFeedback === null) {
3935
event(`firstMile.${this.props.wizardEventName}.thumbsUp.clicked`)
40-
this.setState({selectedFeedback: feedbackValue.THUMBS_UP})
36+
this.props.onFeedbackSelection(feedbackValue.THUMBS_UP)
4137
}
4238
}
4339
private handleThumbsDownClick = () => {
44-
if (this.state.selectedFeedback === null) {
40+
if (this.props.selectedFeedback === null) {
4541
event(`firstMile.${this.props.wizardEventName}.thumbsDown.clicked`)
46-
this.setState({selectedFeedback: feedbackValue.THUMBS_DOWN})
42+
this.props.onFeedbackSelection(feedbackValue.THUMBS_DOWN)
4743
}
4844
}
4945

5046
render() {
51-
const {selectedFeedback} = this.state
47+
const {selectedFeedback} = this.props
5248
return (
5349
<FlexBox
5450
margin={ComponentSize.Large}

src/homepageExperience/components/steps/Finish.tsx

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ type OwnProps = {
2121
wizardEventName: string
2222
markStepAsCompleted: () => void
2323
finishStepCompleted: boolean
24+
finalFeedback: number
25+
setFinalFeedback: (feedbackValue: number) => void
2426
}
2527

2628
const fireConfetti = () => {
@@ -82,7 +84,11 @@ export const Finish = (props: OwnProps) => {
8284
<>
8385
<h1>Congrats!</h1>
8486
<p>You completed setting up, writing, and querying data.</p>
85-
<FeedbackBar wizardEventName={props.wizardEventName} />
87+
<FeedbackBar
88+
wizardEventName={props.wizardEventName}
89+
selectedFeedback={props.finalFeedback}
90+
onFeedbackSelection={props.setFinalFeedback}
91+
/>
8692
<p style={{marginTop: '80px'}}>
8793
Curious to learn more? Try these next steps!
8894
</p>

src/homepageExperience/containers/GoWizard.tsx

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ interface State {
3232
selectedBucket: string
3333
finishStepCompleted: boolean
3434
tokenValue: string
35+
finalFeedback: number
3536
}
3637

3738
export class GoWizard extends PureComponent<null, State> {
@@ -40,6 +41,7 @@ export class GoWizard extends PureComponent<null, State> {
4041
selectedBucket: 'my-bucket',
4142
finishStepCompleted: false,
4243
tokenValue: null,
44+
finalFeedback: null,
4345
}
4446

4547
private handleSelectBucket = (bucketName: string) => {
@@ -54,6 +56,10 @@ export class GoWizard extends PureComponent<null, State> {
5456
this.setState({tokenValue})
5557
}
5658

59+
private setFinalFeedback = (feedbackValue: number) => {
60+
this.setState({finalFeedback: feedbackValue})
61+
}
62+
5763
handleNextClick = () => {
5864
this.setState(
5965
{
@@ -116,6 +122,8 @@ export class GoWizard extends PureComponent<null, State> {
116122
wizardEventName="goWizard"
117123
markStepAsCompleted={this.handleMarkStepAsCompleted}
118124
finishStepCompleted={this.state.finishStepCompleted}
125+
finalFeedback={this.state.finalFeedback}
126+
setFinalFeedback={this.setFinalFeedback}
119127
/>
120128
)
121129
}

src/homepageExperience/containers/NodejsWizard.tsx

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ interface State {
3232
selectedBucket: string
3333
finishStepCompleted: boolean
3434
tokenValue: string
35+
finalFeedback: number
3536
}
3637

3738
export class NodejsWizard extends PureComponent<null, State> {
@@ -40,6 +41,7 @@ export class NodejsWizard extends PureComponent<null, State> {
4041
selectedBucket: 'my-bucket',
4142
finishStepCompleted: false,
4243
tokenValue: null,
44+
finalFeedback: null,
4345
}
4446

4547
private handleSelectBucket = (bucketName: string) => {
@@ -54,6 +56,10 @@ export class NodejsWizard extends PureComponent<null, State> {
5456
this.setState({tokenValue})
5557
}
5658

59+
private setFinalFeedback = (feedbackValue: number) => {
60+
this.setState({finalFeedback: feedbackValue})
61+
}
62+
5763
handleNextClick = () => {
5864
this.setState(
5965
{
@@ -116,6 +122,8 @@ export class NodejsWizard extends PureComponent<null, State> {
116122
wizardEventName="nodejsWizard"
117123
markStepAsCompleted={this.handleMarkStepAsCompleted}
118124
finishStepCompleted={this.state.finishStepCompleted}
125+
finalFeedback={this.state.finalFeedback}
126+
setFinalFeedback={this.setFinalFeedback}
119127
/>
120128
)
121129
}

src/homepageExperience/containers/PythonWizard.tsx

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ interface State {
3232
selectedBucket: string
3333
finishStepCompleted: boolean
3434
tokenValue: string
35+
finalFeedback: number
3536
}
3637

3738
export class PythonWizard extends PureComponent<null, State> {
@@ -40,6 +41,7 @@ export class PythonWizard extends PureComponent<null, State> {
4041
selectedBucket: 'my-bucket',
4142
finishStepCompleted: false,
4243
tokenValue: null,
44+
finalFeedback: null,
4345
}
4446

4547
private handleSelectBucket = (bucketName: string) => {
@@ -54,6 +56,10 @@ export class PythonWizard extends PureComponent<null, State> {
5456
this.setState({tokenValue})
5557
}
5658

59+
private setFinalFeedback = (feedbackValue: number) => {
60+
this.setState({finalFeedback: feedbackValue})
61+
}
62+
5763
handleNextClick = () => {
5864
this.setState(
5965
{
@@ -116,6 +122,8 @@ export class PythonWizard extends PureComponent<null, State> {
116122
wizardEventName="pythonWizard"
117123
markStepAsCompleted={this.handleMarkStepAsCompleted}
118124
finishStepCompleted={this.state.finishStepCompleted}
125+
finalFeedback={this.state.finalFeedback}
126+
setFinalFeedback={this.setFinalFeedback}
119127
/>
120128
)
121129
}

0 commit comments

Comments
 (0)