Skip to content

Commit b1fbbe2

Browse files
committed
setOrderWrapper introduced
1 parent 96ac024 commit b1fbbe2

File tree

4 files changed

+23
-25
lines changed

4 files changed

+23
-25
lines changed

labs/lab2/src/App.js

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import './App.css';
22
import 'bootstrap/dist/css/bootstrap.css';
33
import 'bootstrap/dist/js/bootstrap.bundle.min';
44
//import inventory from './inventory.mjs';
5-
import { Order } from './salad.mjs'
5+
import { Order, Salad } from './salad.mjs'
66
import { useState } from 'react';
77
import { NavLink, Outlet } from 'react-router-dom';
88
//import ComposeSalad from './ComposeSalad'
@@ -11,7 +11,8 @@ import { NavLink, Outlet } from 'react-router-dom';
1111

1212
function App() {
1313
const [order, setOrder] = useState(new Order());
14-
14+
let jsonOrder = window.localStorage.getItem('order');
15+
setOrder(fetchFromLocalStorage(jsonOrder));
1516
/* function addSaladOrder(saladForm) {
1617
const salad = new Salad();
1718
@@ -31,7 +32,16 @@ function App() {
3132
function removeSaladOrder(e) {
3233
const newOrder = new Order(order.uuidOrder, order.saladList);
3334
newOrder.removeSalad(e.target.value);
34-
setOrder(newOrder);
35+
setOrderWrapper(newOrder);
36+
}
37+
38+
function fetchFromLocalStorage (jsonOrder) {
39+
let sallads = Salad.parse(jsonOrder);
40+
let salladList = {};
41+
sallads.forEach( sallad => {
42+
sallad = new Salad(sallad, undefined, sallad.uuid);
43+
salladList[sallad.uuid] = sallad;
44+
});
3545
}
3646

3747
function Header() {
@@ -75,12 +85,19 @@ function App() {
7585
</nav>);
7686
}
7787

88+
function setOrderWrapper(newOrder) {
89+
let orderToStore = new Order(newOrder.uuidOrder, newOrder.saladList);
90+
setOrder(orderToStore);
91+
window.localStorage.clear(); //funkar då vi bara sparar senaste order
92+
window.localStorage.setItem('order', JSON.stringify(Object.values(orderToStore.saladList)));
93+
}
94+
7895
return (
7996
<div className="container py-4">
8097
<Header />
8198
<Navbar />
8299

83-
<Outlet context={{order, setOrder, removeSaladOrder}}/>
100+
<Outlet context={{order, setOrderWrapper, removeSaladOrder}}/>
84101

85102
{/**<ViewOrder saladOrders={order} removeSaladOrder={removeSaladOrder} />
86103
<ComposeSalad inventory={inventory} addSaladOrder={addSaladOrder} /> **/}

labs/lab2/src/ComposeSalad.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ function ComposeSalad(props) {
99
const [dressing, setDressing] = useState("");
1010
const [extras, setExtra] = useState(new Set());
1111
const order = useOutletContext()['order'];
12-
const setOrder = useOutletContext()['setOrder'];
12+
const setOrder = useOutletContext()['setOrderWrapper'];
1313
const inventory = useLoaderData();
1414
const navigate = useNavigate();
1515

labs/lab2/src/Toaster.js

Lines changed: 0 additions & 19 deletions
This file was deleted.

labs/lab2/src/salad.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ class Salad {
77
uuid;
88

99
constructor(salad, oldID, oldUUID) {
10-
salad && salad instanceof Salad ? this.ingredients = {...salad.ingredients} : this.ingredients = {}; //todo spread ist för this =
10+
salad ? this.ingredients = {...salad.ingredients} : this.ingredients = {}; //todo spread ist för this =
1111
this.id = oldID || `salad_` + Salad.#instanceCounter++;
1212
const uuid = oldUUID || uuidv4();
1313
this.uuid = uuid;

0 commit comments

Comments
 (0)