Skip to content

Commit 1f1070f

Browse files
committed
Merge pull request #14 from nirrek/fix-change-forms-to-dialog
Changed static forms to Dialog boxes
2 parents 1048a0e + 8992a6f commit 1f1070f

4 files changed

Lines changed: 121 additions & 95 deletions

File tree

scripts/components/PaymentForm.jsx

Lines changed: 58 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -6,31 +6,36 @@ var mui = require('material-ui');
66
var DatePicker = mui.DatePicker;
77
var TextField = mui.TextField;
88
var RaisedButton = mui.RaisedButton;
9-
var Paper = mui.Paper;
9+
var Dialog = mui.Dialog;
10+
var Label = require('./Label.jsx');
1011

1112
var PaymentForm = React.createClass({
1213
getInitialState() {
1314
return {
1415
fullName: '', // user entered full name on credit card
1516
cardNumber: '', // user entered credit card number
16-
expiryDate: '', // user entered expiry date
17+
expMonth: '',
18+
expYear: '',
1719
ccv: '', // user entered ccv number
1820
amount: '', // user entered amount
1921
}
2022
},
23+
2124
propTypes: {
2225
paymentAdded: React.PropTypes.func,
2326
},
2427

28+
onButtonClick() {
29+
this.refs.dialog.show();
30+
},
31+
2532
// Capture the input field state after each keypress.
2633
onChange(field, event) {
2734
this.setState({ [field]: event.target.value });
2835
},
2936

3037
// Handle the form submission event when the user adds new repair request.
3138
onSubmit(event) {
32-
event.preventDefault();
33-
event.stopPropagation();
3439

3540
// API call to add payment
3641
Api.addPayment({
@@ -49,53 +54,73 @@ var PaymentForm = React.createClass({
4954
this.setState({
5055
fullName: '',
5156
cardNumber: '',
52-
expiryDate: '',
5357
ccv: '',
54-
amount: ''
58+
amount: '',
59+
expMonth: '',
60+
expYear: ''
5561

5662
});
57-
// Refetch repair requests via props
5863
this.props.paymentAdded();
64+
this.refs.dialog.dismiss();
5965
}
6066
});
6167
},
6268

6369
render() {
64-
var { fullName, cardNumber, expiryDate, ccv, amount } = this.state;
70+
var { fullName, cardNumber, expMonth, expYear, ccv, amount } = this.state;
6571
var errorMessage;
72+
var standardActions = [
73+
{ text: 'Cancel' },
74+
{ text: 'Make Payment', onTouchTap: this.onSubmit, ref: 'submit' }
75+
];
6676
return (
6777
<div style={style.formContainer}>
68-
<h2 style={style.heading}>Make a Payment </h2>
69-
<Paper zDepth={1}>
70-
<form style={style.form} onSubmit={this.onSubmit}>
78+
<RaisedButton label="Make a new Payment"
79+
primary={true}
80+
onClick={this.onButtonClick} />
81+
<Dialog
82+
title="Make a Payment"
83+
actions={standardActions}
84+
actionFocus="submit"
85+
modal={this.state.modal}
86+
ref="dialog">
87+
<div style={style.form}>
7188
<div style={style.error}> { errorMessage } </div>
72-
<TextField
89+
<TextField
7390
value={fullName}
7491
onChange={this.onChange.bind(this, 'fullName')}
7592
floatingLabelText="Full Name on Credit Card" />
76-
<TextField
93+
<TextField
7794
value={cardNumber}
7895
onChange={this.onChange.bind(this, 'cardNumber')}
7996
floatingLabelText="Card Number" />
80-
<DatePicker
81-
name="expiryDate"
82-
onChange={this._handleChange}
83-
floatingLabelText="Expiry Date"/>
97+
<div>
98+
<Label>Expiry Date</Label>
99+
<TextField
100+
style={style.date}
101+
value={expMonth}
102+
onChange={this.onChange.bind(this, 'expMonth')}
103+
floatingLabelText="mm"
104+
maxLength="2" />
105+
<span style={style.separator}>/</span>
106+
<TextField
107+
style={style.date}
108+
value={expYear}
109+
onChange={this.onChange.bind(this, 'expYear')}
110+
floatingLabelText="yy"
111+
maxLength="2" />
112+
</div>
84113
<TextField
114+
style={style.ccv}
85115
value={ccv}
86116
onChange={this.onChange.bind(this, 'ccv')}
87117
floatingLabelText="CCV" />
88118
<TextField
89119
value={amount}
90120
onChange={this.onChange.bind(this, 'amount')}
91121
floatingLabelText="Amount" />
92-
<RaisedButton
93-
type="submit"
94-
label="Pay"
95-
primary={true}
96-
style={style.button} />
97-
</form>
98-
</Paper>
122+
</div>
123+
</Dialog>
99124
</div>
100125
);
101126
}
@@ -112,10 +137,18 @@ var style = {
112137
},
113138
form: {
114139
display: 'flex',
115-
padding: '2em',
116140
flexDirection: 'column',
117141
maxWidth: '20em',
118142
},
143+
date: {
144+
width: '2em',
145+
},
146+
separator: {
147+
margin: '0 .5em',
148+
},
149+
ccv: {
150+
width: '3em',
151+
}
119152
};
120153

121154
module.exports = MuiContextified(PaymentForm);

scripts/components/Payments.jsx

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ var Payments = React.createClass({
1313
getInitialState() {
1414
return {
1515
payments: [], // list of recent payments
16-
isFormDisplayed: false,
1716
};
1817
},
1918

@@ -32,22 +31,18 @@ var Payments = React.createClass({
3231
})
3332
},
3433

35-
onButtonClick() {
36-
this.setState({ isFormDisplayed: true });
37-
},
38-
3934
componentWillMount() {
4035
this.getPayments()
4136
},
4237

4338
render() {
4439

45-
var { payments, isFormDisplayed } = this.state;
40+
var { payments } = this.state;
4641

4742
var rows = payments.map(payment => {
4843
return (
4944
// TODO
50-
<tr key={payment.id}>
45+
<tr key={payment.id}>
5146
<td>{moment(payment.date).format('Do MMM YYYY')}</td>
5247
<td>{payment.property}</td>
5348
<td>{payment.amount}</td>
@@ -68,12 +63,7 @@ var Payments = React.createClass({
6863
</table>
6964

7065
<div style={style.formContainer}>
71-
{ isFormDisplayed ? (
72-
<PaymentForm paymentAdded={this.getPayments}/>
73-
) : (
74-
<RaisedButton label="Make a new Payment" primary={true}
75-
onClick={this.onButtonClick} />
76-
)}
66+
<PaymentForm paymentAdded={this.getPayments}/>
7767
</div>
7868
</div>
7969
);

scripts/components/RepairRequest.jsx

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ var RepairRequest = React.createClass({
1313
getInitialState() {
1414
return {
1515
repairRequests: [], // list of repair requests
16-
isFormDisplayed: false,
1716
};
1817
},
1918

@@ -31,17 +30,12 @@ var RepairRequest = React.createClass({
3130
}
3231
});
3332
},
34-
35-
onButtonClick() {
36-
this.setState({ isFormDisplayed: true });
37-
},
38-
3933
componentWillMount() {
4034
this.getRepairRequests()
4135
},
4236

4337
render() {
44-
var { repairRequests, isFormDisplayed } = this.state;
38+
var { repairRequests } = this.state;
4539

4640
var rows = repairRequests.map(request => {
4741
return (
@@ -70,13 +64,7 @@ var RepairRequest = React.createClass({
7064
{rows}
7165
</table>
7266
<div style={style.formContainer}>
73-
{ isFormDisplayed ? (
74-
<RepairRequestForm repairRequestAdded={this.getRepairRequests}/>
75-
) : (
76-
<RaisedButton label="Lodge a New Repair Request"
77-
primary={true}
78-
onClick={this.onButtonClick} />
79-
)}
67+
<RepairRequestForm repairRequestAdded={this.getRepairRequests} />
8068
</div>
8169
</div>
8270
);

0 commit comments

Comments
 (0)