Skip to content

Commit 2ca52f2

Browse files
Add redux form to shipping address form
1 parent 729accf commit 2ca52f2

File tree

10 files changed

+306
-101
lines changed

10 files changed

+306
-101
lines changed

client/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"dependencies": {
66
"@material-ui/core": "latest",
77
"@material-ui/icons": "latest",
8-
"@material-ui/lab": "^4.0.0-alpha.55",
8+
"@material-ui/lab": "^4.0.0-alpha.56",
99
"axios": "^0.19.2",
1010
"fontsource-roboto": "^2.1.3",
1111
"js-base64": "^2.5.2",
@@ -23,6 +23,7 @@
2323
"react-scripts": "latest",
2424
"redux": "^4.0.5",
2525
"redux-form": "^8.3.6",
26+
"redux-form-material-ui": "^5.0.0-beta.3",
2627
"redux-thunk": "^2.3.0",
2728
"semantic-ui-css": "^2.4.1",
2829
"styled-components": "^5.1.1",

client/src/actions/index.js

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import {
88
LOAD_FILTER_PRODUCTS,
99
LOAD_FILTER_ATTRIBUTES,
1010
INTERNAL_SERVER_ERROR_CODE,
11-
BAD_REQUEST_ERROR_CODE, SAVE_QUERY_STATE, SAVE_QUERY_STATUS,
11+
BAD_REQUEST_ERROR_CODE, SAVE_QUERY_STATE, SAVE_QUERY_STATUS, SHIPPING_ADDRESS_CONFIRMED,
1212
} from './types';
1313
import authApi from "../api/authServiceApi";
1414
import history from "../history";
@@ -25,6 +25,14 @@ export const setTokenFromCookie = tokenId => {
2525
}
2626
}
2727

28+
export const setShippingAddress = payload => {
29+
log.info(`[ACTION]: setShippingAddress payload = ${JSON.stringify(payload)}`)
30+
return {
31+
type: SHIPPING_ADDRESS_CONFIRMED,
32+
payload: payload
33+
}
34+
}
35+
2836
export const signIn = formValues => async (dispatch) => {
2937
log.info(`[ACTION]: signIn API is invoked formValues = ${formValues}`)
3038

client/src/actions/types.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ export const SAVE_QUERY_STATUS = "SAVE_QUERY_STATUS";
2424
export const ADD_SELECTED_CATEGORY = "ADD_SELECTED_CATEGORY";
2525
export const REMOVE_SELECTED_CATEGORY = "REMOVE_SELECTED_CATEGORY";
2626
export const SAVE_SORT_LIST = "SAVE_SORT_LIST";
27+
export const SHIPPING_ADDRESS_CONFIRMED = "SHIPPING_ADDRESS_CONFIRMED";
2728

2829
// js cookie IDs
2930
export const HANDLE_TOKEN_ID = "HANDLE_TOKEN_ID";

client/src/components/routes/checkout/checkout.js

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import {withStyles} from '@material-ui/core/styles';
88
import MuiAccordion from '@material-ui/core/Accordion';
99
import MuiAccordionSummary from '@material-ui/core/AccordionSummary';
1010
import MuiAccordionDetails from '@material-ui/core/AccordionDetails';
11+
import {useSelector} from "react-redux";
1112

1213
const checkoutBgColor = "#80808033"
1314

@@ -53,9 +54,12 @@ const AccordionDetails = withStyles((theme) => ({
5354
},
5455
}))(MuiAccordionDetails);
5556

57+
const shippingAddressPanel = 'shipAddrPanel'
58+
const shippingOptionPanel = 'shipOptPanel'
5659

5760
function Checkout() {
58-
const [expanded, setExpanded] = React.useState('panel1');
61+
const shippingAddress = useSelector(state => state.shippingAddressReducer)
62+
const [expanded, setExpanded] = React.useState(shippingAddressPanel);
5963

6064
const handleChange = (panel) => (event, newExpanded) => {
6165
setExpanded(newExpanded ? panel : false);
@@ -81,16 +85,19 @@ function Checkout() {
8185

8286
<Grid item xs={12} sm={11} md={7}>
8387

84-
<Accordion square expanded={expanded === 'panel1'} onChange={handleChange('panel1')}>
85-
<AccordionSummary aria-controls="panel1d-content" id="panel1d-header">
88+
<Accordion square expanded={expanded === shippingAddressPanel}
89+
onChange={handleChange(shippingAddressPanel)}>
90+
<AccordionSummary aria-controls={`${shippingAddressPanel}-content`}
91+
id={`${shippingAddressPanel}-header`}>
8692
{renderTitle("Shipping Address")}
8793
</AccordionSummary>
8894
<AccordionDetails>
8995
<ShippingAddress/>
9096
</AccordionDetails>
9197
</Accordion>
9298

93-
<Accordion square expanded={expanded === 'panel2'} onChange={handleChange('panel2')}>
99+
<Accordion square expanded={expanded === shippingOptionPanel}
100+
onChange={handleChange(shippingOptionPanel)}>
94101
<AccordionSummary aria-controls="panel2d-content" id="panel2d-header">
95102
{renderTitle("Shipping Options")}
96103
</AccordionSummary>

client/src/components/routes/checkout/continueButton.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@ import React from 'react';
22
import log from 'loglevel';
33
import {Button, Grid, Hidden} from "@material-ui/core";
44

5-
function ContinueButton() {
5+
function ContinueButton(props) {
66

77
const renderContinueDesktopBtn = () => {
88
return (
99
<Grid item container justify="flex-end" style={{padding: "30px 40px 0 0"}}>
1010
<Button variant="contained" size="large" style={{
1111
backgroundColor: "#e01a2b",
1212
width: "27%", height: 50, fontSize: "1rem", fontWeight: "bolder", color: "White"
13-
}}>
13+
}} type={props.type} disabled={props.action}>
1414
CONTINUE
1515
</Button>
1616
</Grid>
@@ -23,7 +23,7 @@ function ContinueButton() {
2323
<Button variant="contained" size="large" style={{
2424
backgroundColor: "#e01a2b",
2525
width: "87%", height: 50, fontSize: "1rem", fontWeight: "bolder", color: "White"
26-
}}>
26+
}} type={props.type} disabled={props.action}>
2727
CONTINUE
2828
</Button>
2929
</Grid>

0 commit comments

Comments
 (0)