Skip to content

Commit 9d68f76

Browse files
author
Andreas Cedervall
committed
observers implemented
1 parent f67ab20 commit 9d68f76

2 files changed

Lines changed: 15 additions & 1 deletion

File tree

src/Dishes/Dishes.js

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,11 @@ class Dishes extends Component {
1414
status: "LOADING",
1515
dishes: null,
1616
dishType: "All",
17-
query: ""
17+
query: "",
18+
guests: modelInstance.getNumberOfGuests()
1819
};
20+
21+
modelInstance.addObserver(this);
1922
}
2023

2124
// this methods is called by React lifecycle when the
@@ -41,6 +44,13 @@ class Dishes extends Component {
4144
});
4245
}
4346

47+
update(details) {
48+
console.log('updating from observer: ', details)
49+
this.setState({
50+
guests: modelInstance.getNumberOfGuests()
51+
})
52+
}
53+
4454
render() {
4555
let dishesList = null;
4656
const dishTypes = [
@@ -137,7 +147,9 @@ class Dishes extends Component {
137147
};
138148

139149
return (
150+
140151
<div className="Dishes">
152+
<p>Guests {this.state.guests}</p>
141153
<div>
142154
<div id="dishSearchViewWrapper">
143155
<div id="sideBarView"></div>

src/data/DinnerModel.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ class DinnerModel {
4343
this.updateObservers("input-num-guests");
4444
this.updateObservers("value-num-guests");
4545
document.cookie = 'guests=' + num + ';';
46+
this.updateObservers('guests');
4647

4748
}
4849

@@ -197,6 +198,7 @@ class DinnerModel {
197198
}
198199
updateObservers(detailsToUpdateWith) {
199200
// instead define update function in each observer that doesnt re-render entire view
201+
console.log('observer cointains: ', this._observers)
200202
this._observers.forEach(obs => obs.update(detailsToUpdateWith));
201203
}
202204
}

0 commit comments

Comments
 (0)