Skip to content
This repository was archived by the owner on Sep 20, 2025. It is now read-only.

Commit ea36afa

Browse files
committed
Hook up get user address request to frontend
1 parent 098fd73 commit ea36afa

File tree

5 files changed

+110
-11
lines changed

5 files changed

+110
-11
lines changed

frontend/src/components/pages/deliveryAddresses/EditDeliveryAddressComponent.jsx

Lines changed: 26 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import React, { useState, useEffect, } from "react"
22
import { useDispatch, useSelector, } from "react-redux"
33
import { Helmet, } from "react-helmet"
4-
import { useNavigate } from "react-router"
5-
import { newUserAddress } from "../../../redux/actions/createUserAddressesActions"
4+
import { useNavigate, useParams, } from "react-router"
65
import Error from "../../layouts/Error"
6+
import { getUserAddress } from "../../../redux/actions/userAddressActions"
77

88
import "./EditDeliveryAddressComponent.scss"
99

@@ -26,22 +26,37 @@ export default function NewDeliveryAddressComponent() {
2626

2727
const dispatch = useDispatch()
2828
const state = useSelector(state => ({
29-
createUserAddress: state.createUserAddress,
29+
userAddress: state.userAddress,
3030
}))
3131

3232
const [error, setError] = useState("")
3333
const navigate = useNavigate()
34+
const { userAddressId } = useParams()
3435

3536
useEffect(() => {
36-
if (false === state.createUserAddress.loading) {
37-
if (null !== state.createUserAddress.error) {
38-
setError(state.createUserAddress.error)
37+
dispatch(getUserAddress(userAddressId))
38+
}, [])
39+
40+
useEffect(() => {
41+
if (false === state.userAddress.loading) {
42+
if (null !== state.userAddress.error) {
43+
setError(state.userAddress.error)
3944
}
40-
if (null !== state.createUserAddress.data) {
41-
navigate("/user/addresses")
45+
if (null !== state.userAddress.data) {
46+
setAddressLine1(state.userAddress.data.addressLine1)
47+
if (state.userAddress.data.addressLine2) {
48+
setAddressLine2(state.userAddress.data.addressLine2)
49+
}
50+
setZipCode(state.userAddress.data.zipCode)
51+
setCity(state.userAddress.data.city)
52+
setState(state.userAddress.data.state)
53+
if (state.userAddress.data.telephoneAreaCode) {
54+
setTelephoneAreaCode(state.userAddress.data.telephoneAreaCode)
55+
}
56+
setTelephone(state.userAddress.data.telephone)
4257
}
4358
}
44-
}, [state.createUserAddress])
59+
}, [state.userAddress])
4560

4661
const handleAddressLine1Change = e => {
4762
setAddressLine1(e.target.value)
@@ -73,7 +88,7 @@ export default function NewDeliveryAddressComponent() {
7388

7489
const handleFormSubmit = e => {
7590
e.preventDefault()
76-
dispatch(newUserAddress({
91+
dispatch(editUserAddress({
7792
addressLine1,
7893
addressLine2,
7994
zipCode,
@@ -84,7 +99,7 @@ export default function NewDeliveryAddressComponent() {
8499
}))
85100
}
86101

87-
if (state.createUserAddress.loading) {
102+
if (state.userAddress.loading) {
88103
return (
89104
<div className="container product-container text-center">
90105
<Helmet>
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
import HttpService from "../../services/HttpService"
2+
import { userAddress, } from "../types"
3+
4+
export const getUserAddress = userAddressId => {
5+
return async dispatch => {
6+
const http = new HttpService()
7+
8+
dispatch({ type: userAddress.GET_USER_ADDRESS_PENDING, })
9+
10+
let tokenId = "user-token"
11+
if (null === localStorage.getItem(tokenId)) {
12+
tokenId = ""
13+
}
14+
const path = "/user-addresses/"+userAddressId
15+
await http.getData(path, tokenId)
16+
.then(res => {
17+
dispatch({
18+
type: userAddress.GET_USER_ADDRESS_SUCCESS,
19+
payload: res.data.data,
20+
})
21+
}).catch(error => {
22+
let message
23+
if ("ERR_NETWORK" === error.code) {
24+
message = "Server unavailable."
25+
} else if (
26+
error.response &&
27+
error.response.data &&
28+
error.response.data.error
29+
) {
30+
message = error.response.data.error
31+
} else {
32+
message = "Something went wrong. Please come back later."
33+
}
34+
dispatch({
35+
type: userAddress.GET_USER_ADDRESS_ERROR,
36+
payload: message,
37+
})
38+
})
39+
}
40+
}

frontend/src/redux/reducers/index.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import userAddressesReducer from "./userAddressesReducer"
2727
import createCheckoutReducer from "./createCheckoutReducer"
2828
import createUserAddressReducer from "./createUserAddressReducer"
2929
import deleteUserAddressReducer from "./deleteUserAddressReducer"
30+
import userAddressReducer from "./userAddressReducer"
3031

3132
export default combineReducers({
3233
auth: authReducer,
@@ -57,4 +58,5 @@ export default combineReducers({
5758
createCheckout: createCheckoutReducer,
5859
createUserAddress: createUserAddressReducer,
5960
deleteUserAddress: deleteUserAddressReducer,
61+
userAddress: userAddressReducer,
6062
})
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import { userAddress, } from "../types"
2+
3+
const initState = {
4+
data: null,
5+
error: null,
6+
loading: true,
7+
}
8+
9+
export default function userAddressReducer (state = initState, action) {
10+
switch (action.type) {
11+
12+
case userAddress.GET_USER_ADDRESS_ERROR:
13+
return {
14+
...state,
15+
error: action.payload,
16+
loading: false,
17+
}
18+
19+
case userAddress.GET_USER_ADDRESS_PENDING:
20+
return {
21+
...state,
22+
loading: true,
23+
}
24+
25+
case userAddress.GET_USER_ADDRESS_SUCCESS:
26+
return {
27+
...state,
28+
data: action.payload,
29+
loading: false,
30+
error: null,
31+
}
32+
33+
default:
34+
return state
35+
}
36+
}

frontend/src/redux/types.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,4 +180,10 @@ export const deleteUserAddress = {
180180
DELETE_USER_ADDRESS_SUCCESS: "DELETE_USER_ADDRESS_SUCCESS",
181181
DELETE_USER_ADDRESS_ERROR: "DELETE_USER_ADDRESS_ERROR",
182182
DELETE_USER_ADDRESS_PENDING: "DELETE_USER_ADDRESS_PENDING",
183+
}
184+
185+
export const userAddress = {
186+
GET_USER_ADDRESS_SUCCESS: "GET_USER_ADDRESS_SUCCESS",
187+
GET_USER_ADDRESS_ERROR: "GET_USER_ADDRESS_ERROR",
188+
GET_USER_ADDRESS_PENDING: "GET_USER_ADDRESS_PENDING",
183189
}

0 commit comments

Comments
 (0)