Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
W
warehouse-management
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Ascend
warehouse-management
Commits
fb6e492d
Commit
fb6e492d
authored
May 04, 2021
by
Darrick Yong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add create/edit actions
parent
07cb5fe4
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
91 additions
and
17 deletions
+91
-17
order_actions.js
frontend/src/actions/order_actions.js
+21
-4
OrderIndex.jsx
frontend/src/components/order/OrderIndex.jsx
+11
-2
orders_reducer.js
frontend/src/reducers/entities/orders_reducer.js
+17
-4
orders_api_util.jsx
frontend/src/util/orders_api_util.jsx
+42
-7
No files found.
frontend/src/actions/order_actions.js
View file @
fb6e492d
...
...
@@ -9,10 +9,15 @@ const receiveOrders = (payload) => ({
payload
,
})
// const receiveOrder = (order) => ({
// type: RECEIVE_ORDER,
// order,
// })
const
receiveOrder
=
(
order
)
=>
({
type
:
RECEIVE_ORDER
,
order
,
})
const
updateOrder
=
(
order
)
=>
({
type
:
UPDATE_ORDER
,
order
,
})
export
const
fetchOrders
=
()
=>
(
dispatch
)
=>
{
OrderAPIUtil
.
getOrders
()
...
...
@@ -20,3 +25,15 @@ export const fetchOrders = () => (dispatch) => {
dispatch
(
receiveOrders
(
res
))
});
}
export
const
createOrder
=
(
order
)
=>
(
dispatch
)
=>
OrderAPIUtil
.
createOrder
(
order
)
.
then
(
res
=>
{
dispatch
(
receiveOrder
(
res
))
});
export
const
editOrder
=
(
order
)
=>
(
dispatch
)
=>
OrderAPIUtil
.
editOrder
(
order
)
.
then
(
res
=>
{
dispatch
(
updateOrder
(
res
))
});
\ No newline at end of file
frontend/src/components/order/OrderIndex.jsx
View file @
fb6e492d
import
React
,
{
useState
,
useEffect
}
from
'react'
;
import
OrderIndexItem
from
'./OrderIndexItem'
;
import
{
connect
}
from
"react-redux"
;
import
{
fetchOrders
}
from
'../../actions/order_actions'
;
import
{
createOrder
,
fetchOrders
,
editOrder
}
from
'../../actions/order_actions'
;
const
OrderIndex
=
({
orders
,
fetchOrders
})
=>
{
const
OrderIndex
=
({
orders
,
fetchOrders
,
createOrder
,
editOrder
,
})
=>
{
const
[
fetchAttempted
,
setFetchAttempted
]
=
useState
(
false
);
useEffect
(()
=>
{
...
...
@@ -16,6 +21,8 @@ const OrderIndex = ({ orders, fetchOrders }) => {
return
(
<
div
>
<
h1
>
Order Index
</
h1
>
<
button
onClick=
{
createOrder
}
>
Create New Order
</
button
>
<
button
onClick=
{
editOrder
}
>
Update Order
</
button
>
{
orders
.
allIds
.
map
(
orderId
=>
{
const
order
=
orders
.
byId
[
orderId
];
return
<
OrderIndexItem
key=
{
order
.
id
}
order=
{
order
}
/>
...
...
@@ -31,6 +38,8 @@ const mapStateToProps = (state) => ({
const
mapDispatchToProps
=
dispatch
=>
({
fetchOrders
:
()
=>
dispatch
(
fetchOrders
()),
createOrder
:
order
=>
dispatch
(
createOrder
(
order
)),
editOrder
:
order
=>
dispatch
(
editOrder
(
order
)),
})
export
default
connect
(
mapStateToProps
,
mapDispatchToProps
)(
OrderIndex
)
frontend/src/reducers/entities/orders_reducer.js
View file @
fb6e492d
import
{
RECEIVE_ORDERS
}
from
"../../actions/order_actions"
;
import
{
RECEIVE_ORDER
,
RECEIVE_ORDERS
,
UPDATE_ORDER
,
}
from
"../../actions/order_actions"
;
const
initialState
=
{
byId
:
{},
allIds
:
[],
}
}
;
const
OrdersReducer
=
(
oldState
=
initialState
,
action
)
=>
{
Object
.
freeze
(
oldState
);
const
newState
=
{
...
oldState
};
const
order
=
action
.
order
||
null
;
switch
(
action
.
type
)
{
case
RECEIVE_ORDERS
:
return
action
.
payload
;
case
RECEIVE_ORDER
:
newState
.
byId
[
order
.
id
]
=
order
;
newState
.
allIds
.
unshift
(
order
.
id
);
return
newState
;
case
UPDATE_ORDER
:
newState
.
byId
[
order
.
id
]
=
order
;
return
newState
;
default
:
return
oldState
;
}
}
}
;
export
default
OrdersReducer
;
\ No newline at end of file
export
default
OrdersReducer
;
frontend/src/util/orders_api_util.jsx
View file @
fb6e492d
// import axios from 'axios';
const
sample
Res
=
{
const
sample
GetAll
=
{
allIds
:
[
"1"
,
"2"
,
"3"
],
byId
:
{
1
:
{
"1"
:
{
id
:
"1"
,
orderId
:
"o1"
,
status
:
"unfulfilled"
,
},
2
:
{
"2"
:
{
id
:
"2"
,
orderId
:
"o2"
,
status
:
"unfulfilled"
,
},
3
:
{
"3"
:
{
id
:
"3"
,
orderId
:
"o3"
,
status
:
"unfulfilled"
,
...
...
@@ -21,14 +21,49 @@ const sampleRes = {
},
};
const
promise
=
new
Promise
(
(
resolve
,
reject
)
=>
{
resolve
(
sampleRes
)
const
sampleNew
=
{
id
:
"4"
,
orderId
:
"o4"
,
status
:
"unfulfilled"
,
};
const
sampleUpdateFul
=
{
id
:
"3"
,
orderId
:
"o3"
,
status
:
"fulfilled"
,
};
const
sampleUpdateCan
=
{
id
:
"2"
,
orderId
:
"o2"
,
status
:
"cancelled"
,
};
const
getAllPromise
=
new
Promise
(
(
resolve
,
reject
)
=>
{
resolve
(
sampleGetAll
)
})
const
createNewPromise
=
new
Promise
(
(
resolve
,
reject
)
=>
{
resolve
(
sampleNew
)
})
const
updateFulfillPromise
=
new
Promise
(
(
resolve
,
reject
)
=>
{
resolve
(
sampleUpdateFul
)
})
const
updateCancelPromise
=
new
Promise
(
(
resolve
,
reject
)
=>
{
resolve
(
sampleUpdateCan
)
})
export
const
getOrders
=
()
=>
{
return
p
romise
;
return
getAllP
romise
;
};
export
const
createOrder
=
(
order
)
=>
{
return
createNewPromise
;
}
export
const
editOrder
=
(
order
)
=>
{
return
updateFulfillPromise
;
}
// export const getOrders =() => {
// return axios.get("http://localhost:8080/api/orders");
// }
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment