diff options
| author | Jules Laplace <jules@okfoc.us> | 2017-03-20 03:51:23 +0100 |
|---|---|---|
| committer | Jules Laplace <jules@okfoc.us> | 2017-03-20 03:51:23 +0100 |
| commit | 50eaaa9dfaa2d4aa1230e7a6b371a60c1df8a1ab (patch) | |
| tree | bc4363ce1055df679116e89dec5beae14e7582b7 /public/bundle.js | |
| parent | d9d81925299aa787cbdb815cb4b06e17a412b40c (diff) | |
group by date
Diffstat (limited to 'public/bundle.js')
| -rw-r--r-- | public/bundle.js | 73 |
1 files changed, 54 insertions, 19 deletions
diff --git a/public/bundle.js b/public/bundle.js index df3cd70..096d653 100644 --- a/public/bundle.js +++ b/public/bundle.js @@ -12585,7 +12585,6 @@ var MealFilter = function (_React$Component) { state = state || this.state; var start = state.startDate; var end = state.endDate; - console.log(start.toDate(), end.toDate()); _client2.default.service('meals').find({ query: { @@ -12595,7 +12594,6 @@ var MealFilter = function (_React$Component) { token: _client2.default.get('token') } }).then(function (data) { - console.log(data); _this2.setState({ meals: data.data }); _this2.filter(data.data); }).catch(function (error) { @@ -12604,10 +12602,11 @@ var MealFilter = function (_React$Component) { } }, { key: 'filter', - value: function filter(meals) { + value: function filter(meals, state) { meals = meals || this.state.meals; - var start = this.state.startTime; - var end = this.state.endTime; + state = state || this.state; + var start = state.startTime; + var end = state.endTime; var filteredMeals = this.state.meals.filter(function (meal) { var hours = new Date(meal.date).getHours(); return start <= hours && hours <= end; @@ -12622,11 +12621,7 @@ var MealFilter = function (_React$Component) { start.minutes(0); start.seconds(0); - var end = range.endDate; - if (start.isSame(end)) { - end = start.clone(); - } - + var end = start.isSame(range.endDate) ? start.clone() : range.endDate; end.hours(23); end.minutes(59); end.seconds(59); @@ -12644,7 +12639,7 @@ var MealFilter = function (_React$Component) { key: 'pickTimeRange', value: function pickTimeRange(event, start, end) { this.setState({ startTime: start, endTime: end }); - this.filter(); + this.filter(this.state.meals, { startTime: start, endTime: end }); } }, { key: 'render', @@ -12788,6 +12783,7 @@ var MealList = function (_React$Component) { _this.handleUpdate = _this.handleUpdate.bind(_this); _this.handleDelete = _this.handleDelete.bind(_this); _this.pickMeal = _this.pickMeal.bind(_this); + _this.loadMeals = _this.loadMeals.bind(_this); return _this; } @@ -12826,16 +12822,47 @@ var MealList = function (_React$Component) { this.mealForm.pick(meal); } }, { + key: 'loadMeals', + value: function loadMeals(meals) { + console.log(meals); + this.setState({ data: meals }); + } + }, { key: 'render', value: function render() { var _this2 = this; - var items = this.state.data.map(function (meal) { - return _react2.default.createElement(MealItem, { key: meal.id, - meal: meal, - onClick: _this2.pickMeal, - onDelete: _this2.handleDelete }); + var groups = groupByDate(this.state.data); + var items = Object.keys(groups).sort().reverse().map(function (date) { + var group = groups[date]; + var mealitems = group.meals.map(function (meal) { + return _react2.default.createElement(MealItem, { + key: meal.id, + meal: meal, + onClick: _this2.pickMeal, + onDelete: _this2.handleDelete }); + }); + console.log(_this2.props.user.goal, group.calories); + var isOverLimit = group.calories > _this2.props.user.goal ? 'isOverLimit' : 'isUnderLimit'; + return _react2.default.createElement( + 'div', + { key: group.date, className: 'group' }, + _react2.default.createElement( + 'span', + { className: 'groupDate' }, + group.date + ), + _react2.default.createElement( + 'span', + { className: 'calories ' + isOverLimit }, + group.calories, + ' cal.' + ), + _react2.default.createElement('br', null), + mealitems + ); }); + console.log(items); if (!items.length) { items.push(_react2.default.createElement( 'div', @@ -12861,9 +12888,7 @@ var MealList = function (_React$Component) { ref: function ref(mealFilter) { _this2.mealFilter = mealFilter; }, - onChange: function onChange(meals) { - _this2.setState({ data: meals }); - } + onChange: this.loadMeals }), _react2.default.createElement( 'div', @@ -13093,6 +13118,16 @@ var MealForm = function (_React$Component3) { return MealForm; }(_react2.default.Component); +function groupByDate(a) { + return a.reduce(function (rv, x) { + var date = parseDate(x.date); + var ab = rv[date] = rv[date] || { date: date, calories: 0, meals: [] }; + ab.meals.push(x); + ab.calories += x.calories; + return rv; + }, {}); +} + function sortByDate(a, b) { return new Date(b.date) - new Date(a.date); } |
