summaryrefslogtreecommitdiff
path: root/public/bundle.js
diff options
context:
space:
mode:
Diffstat (limited to 'public/bundle.js')
-rw-r--r--public/bundle.js635
1 files changed, 540 insertions, 95 deletions
diff --git a/public/bundle.js b/public/bundle.js
index 6ad2977..560da90 100644
--- a/public/bundle.js
+++ b/public/bundle.js
@@ -11939,30 +11939,14 @@ var _LoggedOutView = __webpack_require__(94);
var _LoggedOutView2 = _interopRequireDefault(_LoggedOutView);
-var _CalorieView = __webpack_require__(232);
+var _MealView = __webpack_require__(234);
-var _CalorieView2 = _interopRequireDefault(_CalorieView);
+var _MealView2 = _interopRequireDefault(_MealView);
-var _client = __webpack_require__(127);
+var _client = __webpack_require__(233);
var _client2 = _interopRequireDefault(_client);
-var _feathersHooks = __webpack_require__(119);
-
-var _feathersHooks2 = _interopRequireDefault(_feathersHooks);
-
-var _client3 = __webpack_require__(120);
-
-var _client4 = _interopRequireDefault(_client3);
-
-var _client5 = __webpack_require__(231);
-
-var _client6 = _interopRequireDefault(_client5);
-
-var _superagent = __webpack_require__(224);
-
-var _superagent2 = _interopRequireDefault(_superagent);
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
@@ -11971,10 +11955,6 @@ function _possibleConstructorReturn(self, call) { if (!self) { throw new Referen
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var rest = (0, _client4.default)(window.location.origin);
-
-var client = (0, _client2.default)().configure((0, _feathersHooks2.default)()).configure((0, _client6.default)({ storage: localStorage })).configure(rest.superagent(_superagent2.default));
-
var App = function (_React$Component) {
_inherits(App, _React$Component);
@@ -11984,13 +11964,16 @@ var App = function (_React$Component) {
var _this = _possibleConstructorReturn(this, (App.__proto__ || Object.getPrototypeOf(App)).call(this));
_this.state = {
- ready: true,
+ ready: false,
loggedIn: false,
user: {}
};
- client.authenticate().then(function (user) {
- console.log(user);
- _this.setState({ ready: true, loggedIn: true, user: user });
+ _client2.default.authenticate().then(function (user) {
+ _this.setState({
+ ready: true,
+ loggedIn: true,
+ user: user.data
+ });
}).catch(function (error) {
_this.setState({ ready: true });
console.error(error);
@@ -11999,19 +11982,27 @@ var App = function (_React$Component) {
}
_createClass(App, [{
+ key: 'logOut',
+ value: function logOut() {
+ this.setState({
+ user: null,
+ loggedIn: false
+ });
+ }
+ }, {
key: 'render',
value: function render() {
if (this.state.ready) {
if (this.state.loggedIn) {
- return _react2.default.createElement(_CalorieView2.default, { client: client });
+ return _react2.default.createElement(_MealView2.default, { user: this.state.user });
} else {
- return _react2.default.createElement(_LoggedOutView2.default, { client: client });
+ return _react2.default.createElement(_LoggedOutView2.default, null);
}
} else {
return _react2.default.createElement(
'div',
null,
- 'LOADING...'
+ 'Loading...'
);
}
}
@@ -12053,6 +12044,10 @@ var _ModalDialog = __webpack_require__(95);
var _ModalDialog2 = _interopRequireDefault(_ModalDialog);
+var _client = __webpack_require__(233);
+
+var _client2 = _interopRequireDefault(_client);
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
@@ -12105,11 +12100,9 @@ var LoggedOutView = function (_React$Component) {
onLoginClick: this.showLogin,
onSignupClick: this.showSignup }),
_react2.default.createElement(LoginForm, {
- client: this.props.client,
visible: loginVisible,
onClose: this.closeModal }),
_react2.default.createElement(SignupForm, {
- client: this.props.client,
visible: signupVisible,
onClose: this.closeModal })
);
@@ -12191,15 +12184,13 @@ var LoginForm = function (_React$Component3) {
var _this4 = this;
event.preventDefault();
- this.props.client.authenticate({
+ _client2.default.authenticate({
type: 'local',
email: this.state.email,
password: this.state.password
}).then(function (res) {
console.log('Authenticated!', res);
- // this.props.client.set('user', res.data)
- // something in this library is hardcoded accessToken
- // return this.props.client.passport.setJWT(res.token)
+ window.location.reload();
}).catch(function (error) {
console.error('Error authenticating!', error);
_this4.setState({
@@ -12278,21 +12269,18 @@ var SignupForm = function (_React$Component4) {
var _this6 = this;
event.preventDefault();
- var usersService = this.props.client.service('users');
+ var usersService = _client2.default.service('users');
usersService.create(this.state).then(function (result) {
- return _this6.props.client.authenticate({
+ return _client2.default.authenticate({
strategy: 'local',
email: _this6.state.email,
password: _this6.state.password
});
}).then(function (res) {
- _this6.props.client.set('user', res.data);
- _this6.props.client.set('token', res.accessToken);
- return client.passport.verifyJWT(res.accessToken);
- }).then(function (payload) {
- console.log(payload);
+ console.log('Authenticated!', res);
+ window.location.reload();
}).catch(function (error) {
- console.error(error);
+ console.error('Error authenticating!', error);
_this6.setState({
error: error.toString()
});
@@ -29500,6 +29488,14 @@ var _App2 = _interopRequireDefault(_App);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+var is_iphone = navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPod/i);
+var is_ipad = navigator.userAgent.match(/iPad/i);
+var is_android = navigator.userAgent.match(/Android/i);
+var is_mobile = is_iphone || is_ipad || is_android;
+var is_desktop = !is_mobile;
+
+document.body.classList.add(is_desktop ? 'desktop' : 'mobile');
+
_reactDom2.default.render(_react2.default.createElement(_App2.default, null), document.getElementById('container'));
/***/ }),
@@ -29510,7 +29506,41 @@ module.exports = __webpack_require__(113);
/***/ }),
-/* 232 */
+/* 232 */,
+/* 233 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var _client = __webpack_require__(127);
+
+var _client2 = _interopRequireDefault(_client);
+
+var _feathersHooks = __webpack_require__(119);
+
+var _feathersHooks2 = _interopRequireDefault(_feathersHooks);
+
+var _client3 = __webpack_require__(120);
+
+var _client4 = _interopRequireDefault(_client3);
+
+var _client5 = __webpack_require__(231);
+
+var _client6 = _interopRequireDefault(_client5);
+
+var _superagent = __webpack_require__(224);
+
+var _superagent2 = _interopRequireDefault(_superagent);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+var rest = (0, _client4.default)(window.location.origin);
+var client = (0, _client2.default)().configure((0, _feathersHooks2.default)()).configure((0, _client6.default)({ storage: localStorage })).configure(rest.superagent(_superagent2.default));
+module.exports = client;
+
+/***/ }),
+/* 234 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -29530,83 +29560,498 @@ var _ModalDialog = __webpack_require__(95);
var _ModalDialog2 = _interopRequireDefault(_ModalDialog);
+var _client = __webpack_require__(233);
+
+var _client2 = _interopRequireDefault(_client);
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var LoggedOutView = function (_React$Component) {
- _inherits(LoggedOutView, _React$Component);
+var MealView = function (_React$Component) {
+ _inherits(MealView, _React$Component);
- function LoggedOutView() {
- _classCallCheck(this, LoggedOutView);
+ function MealView(props) {
+ _classCallCheck(this, MealView);
- var _this = _possibleConstructorReturn(this, (LoggedOutView.__proto__ || Object.getPrototypeOf(LoggedOutView)).call(this));
+ var _this = _possibleConstructorReturn(this, (MealView.__proto__ || Object.getPrototypeOf(MealView)).call(this));
- _this.state = { modal: null };
- // this.showLogin = this.showLogin.bind(this)
- // this.showSignup = this.showSignup.bind(this)
- // this.closeModal = this.closeModal.bind(this)
+ _this.state = {
+ user: Object.assign({}, props.user),
+ meals: []
+ };
+ _this.updateUser = _this.updateUser.bind(_this);
return _this;
}
- // showLogin() {
- // this.setState({ modal: 'login' })
- // }
- // showSignup() {
- // this.setState({ modal: 'signup' })
- // }
- // closeModal() {
- // this.setState({ modal: '' })
- // }
+ _createClass(MealView, [{
+ key: 'updateUser',
+ value: function updateUser(user) {
+ this.setState({
+ user: user
+ });
+ }
+ }, {
+ key: 'render',
+ value: function render() {
+ var user = this.state.user;
+ var meals = this.state.meals;
+ return _react2.default.createElement(
+ 'div',
+ null,
+ _react2.default.createElement(Menu, { user: user, currentUser: this.props.user, updateUser: this.updateUser }),
+ _react2.default.createElement(MealList, { user: user, currentUser: this.props.user }),
+ _react2.default.createElement(
+ 'div',
+ { className: 'users' },
+ _react2.default.createElement(UserList, null)
+ )
+ );
+ }
+ }]);
+
+ return MealView;
+}(_react2.default.Component);
+
+exports.default = MealView;
+
+var Menu = function (_React$Component2) {
+ _inherits(Menu, _React$Component2);
+
+ function Menu() {
+ _classCallCheck(this, Menu);
+
+ var _this2 = _possibleConstructorReturn(this, (Menu.__proto__ || Object.getPrototypeOf(Menu)).call(this));
+
+ _this2.setGoal = _this2.setGoal.bind(_this2);
+ _this2.logout = _this2.logout.bind(_this2);
+ return _this2;
+ }
+
+ _createClass(Menu, [{
+ key: 'setGoal',
+ value: function setGoal() {
+ var _this3 = this;
- _createClass(LoggedOutView, [{
+ var goal = Math.abs(parseInt(prompt('Please enter your calorie goal', this.props.user.goal)));
+ if (goal) {
+ _client2.default.service('users').patch(this.props.user.id, {
+ goal: goal,
+ token: _client2.default.get('token')
+ }).then(function (user) {
+ _this3.props.updateUser(user);
+ });
+ }
+ }
+ }, {
+ key: 'logout',
+ value: function logout() {
+ _client2.default.logout().then(function () {
+ window.location.reload();
+ });
+ }
+ }, {
key: 'render',
value: function render() {
- // const loginVisible = this.state.modal == 'login'
- // const signupVisible = this.state.modal == 'signup'
+ var user = this.props.user;
+ var items = [];
+ items.push(_react2.default.createElement(
+ 'li',
+ { key: 'hello' },
+ 'Hello ',
+ user.email
+ ));
+ items.push(_react2.default.createElement(
+ 'li',
+ { key: 'goal' },
+ _react2.default.createElement(
+ 'a',
+ { href: '#', onClick: this.setGoal },
+ 'Goal'
+ ),
+ ': ',
+ user.goal
+ ));
+ items.push(_react2.default.createElement(
+ 'li',
+ { key: 'logout' },
+ _react2.default.createElement(
+ 'a',
+ { href: '#', onClick: this.logout },
+ 'Logout'
+ )
+ ));
+
return _react2.default.createElement(
'div',
null,
- 'LOGGED IN'
- )
- // <Welcome
- // onLoginClick={this.showLogin}
- // onSignupClick={this.showSignup} />
- // <LoginForm
- // client={this.props.client}
- // visible={loginVisible}
- // onClose={this.closeModal} />
- // <SignupForm
- // client={this.props.client}
- // visible={signupVisible}
- // onClose={this.closeModal} />
- ;
+ _react2.default.createElement(
+ 'ul',
+ { className: 'menu' },
+ items
+ ),
+ _react2.default.createElement(ProfileModal, { user: user, visible: false, onClose: function onClose() {} })
+ );
}
}]);
- return LoggedOutView;
+ return Menu;
}(_react2.default.Component);
-// export default class UserForm extends React.Component {
-// render() {
-// return (
-// )
-// }
-// }
-//
-// export default class MealForm extends React.Component {
-// render() {
-// return (
-// )
-// }
-// }
+var ProfileModal = function (_React$Component3) {
+ _inherits(ProfileModal, _React$Component3);
+ function ProfileModal() {
+ _classCallCheck(this, ProfileModal);
-exports.default = LoggedOutView;
+ return _possibleConstructorReturn(this, (ProfileModal.__proto__ || Object.getPrototypeOf(ProfileModal)).apply(this, arguments));
+ }
+
+ _createClass(ProfileModal, [{
+ key: 'render',
+ value: function render() {
+ return _react2.default.createElement(_ModalDialog2.default, { visible: this.props.visible, onClose: this.props.onClose });
+ }
+ }]);
+
+ return ProfileModal;
+}(_react2.default.Component);
+
+var MealList = function (_React$Component4) {
+ _inherits(MealList, _React$Component4);
+
+ function MealList(props) {
+ _classCallCheck(this, MealList);
+
+ var _this5 = _possibleConstructorReturn(this, (MealList.__proto__ || Object.getPrototypeOf(MealList)).call(this));
+
+ _this5.state = {
+ total: 0,
+ limit: 0,
+ skip: 0,
+ data: []
+ };
+
+ _this5.handleCreate = _this5.handleCreate.bind(_this5);
+ _this5.handleUpdate = _this5.handleUpdate.bind(_this5);
+ _this5.pickMeal = _this5.pickMeal.bind(_this5);
+
+ _client2.default.service('meals').find({
+ query: {
+ userid: props.user.id,
+ '$sort': { 'date': '-1' },
+ token: _client2.default.get('token')
+ }
+ }).then(function (data) {
+ console.log(data);
+ _this5.setState(data);
+ }).catch(function (error) {
+ console.error(error);
+ });
+ return _this5;
+ }
+
+ _createClass(MealList, [{
+ key: 'handleCreate',
+ value: function handleCreate(meal) {
+ var meals = this.state.data.slice();
+ meals.unshift(meal);
+ this.setState({
+ data: meals.sort(sortByDate)
+ });
+ }
+ }, {
+ key: 'handleUpdate',
+ value: function handleUpdate(meal) {
+ var meals = this.state.data.map(function (data, i) {
+ return data.id == meal.id ? meal : data;
+ }).sort(sortByDate);
+ this.setState({
+ data: meals
+ });
+ }
+ }, {
+ key: 'pickMeal',
+ value: function pickMeal(meal) {
+ this.mealForm.pick(meal);
+ }
+ }, {
+ key: 'render',
+ value: function render() {
+ var _this6 = this;
+
+ console.log(this.state.data);
+ var items = this.state.data.map(function (meal, i) {
+ return _react2.default.createElement(MealItem, { key: meal.id,
+ meal: meal,
+ onClick: _this6.pickMeal });
+ });
+ return _react2.default.createElement(
+ 'div',
+ null,
+ _react2.default.createElement(MealForm, { user: this.props.user,
+ ref: function ref(mealForm) {
+ _this6.mealForm = mealForm;
+ },
+ onCreate: function onCreate(meal) {
+ _this6.handleCreate(meal);
+ },
+ onUpdate: function onUpdate(meal) {
+ _this6.handleUpdate(meal);
+ }
+ }),
+ _react2.default.createElement(
+ 'div',
+ null,
+ items
+ )
+ );
+ }
+ }]);
+
+ return MealList;
+}(_react2.default.Component);
+
+var MealItem = function (_React$Component5) {
+ _inherits(MealItem, _React$Component5);
+
+ function MealItem() {
+ _classCallCheck(this, MealItem);
+
+ return _possibleConstructorReturn(this, (MealItem.__proto__ || Object.getPrototypeOf(MealItem)).apply(this, arguments));
+ }
+
+ _createClass(MealItem, [{
+ key: 'render',
+ value: function render() {
+ var _this8 = this;
+
+ var meal = this.props.meal;
+ var date = parseDate(meal.date);
+ var time = parseTime(meal.time);
+ return _react2.default.createElement(
+ 'div',
+ { className: 'meal', onClick: function onClick() {
+ return _this8.props.onClick(meal);
+ } },
+ _react2.default.createElement(
+ 'div',
+ { className: 'name' },
+ meal.name
+ ),
+ _react2.default.createElement(
+ 'div',
+ { className: 'calories' },
+ meal.calories,
+ ' cal'
+ ),
+ _react2.default.createElement(
+ 'div',
+ { className: 'date' },
+ date
+ ),
+ _react2.default.createElement(
+ 'div',
+ { className: 'time' },
+ time
+ )
+ );
+ }
+ }]);
+
+ return MealItem;
+}(_react2.default.Component);
+
+var MealForm = function (_React$Component6) {
+ _inherits(MealForm, _React$Component6);
+
+ function MealForm(props) {
+ _classCallCheck(this, MealForm);
+
+ var _this9 = _possibleConstructorReturn(this, (MealForm.__proto__ || Object.getPrototypeOf(MealForm)).call(this));
+
+ _this9.state = {
+ id: '',
+ userid: props.user.id,
+ name: '',
+ calories: '',
+ date: new Date(),
+ time: new Date()
+ };
+ _this9.updateState = _this9.updateState.bind(_this9);
+ _this9.handleSubmit = _this9.handleSubmit.bind(_this9);
+ return _this9;
+ }
+
+ _createClass(MealForm, [{
+ key: 'reset',
+ value: function reset() {
+ this.setState({
+ id: '',
+ name: '',
+ calories: '',
+ date: new Date(),
+ time: new Date()
+ });
+ }
+ }, {
+ key: 'pick',
+ value: function pick(meal) {
+ console.log(meal);
+ this.setState(meal);
+ }
+ }, {
+ key: 'updateState',
+ value: function updateState(event) {
+ var _setState;
+
+ var name = event.target.name;
+ var value = event.target.value;
+ if (name === 'date') {
+ value = new Date(value).toString();
+ } else if (name === 'time') {
+ value = new Date('1970-01-01T' + value).toString();
+ } else if (name === 'calories') {
+ value = parseInt(value);
+ }
+ this.setState((_setState = {}, _defineProperty(_setState, name, value), _defineProperty(_setState, 'error', null), _setState));
+ }
+ }, {
+ key: 'handleSubmit',
+ value: function handleSubmit(event) {
+ event.preventDefault();
+
+ var id = this.state.id;
+
+ if (!id) {
+ this.create();
+ } else {
+ this.update();
+ }
+ }
+ }, {
+ key: 'create',
+ value: function create() {
+ var _this10 = this;
+
+ var mealsService = _client2.default.service('meals');
+ var params = { query: { token: _client2.default.get('token') } };
+
+ mealsService.create(this.state, params).then(function (result) {
+ console.log(result);
+ _this10.props.onCreate(result);
+ _this10.reset();
+ }).catch(function (error) {
+ console.error(error);
+ _this10.setState({
+ error: error.toString()
+ });
+ });
+ }
+ }, {
+ key: 'update',
+ value: function update() {
+ var _this11 = this;
+
+ var mealsService = _client2.default.service('meals');
+ var params = { query: { token: _client2.default.get('token') } };
+
+ mealsService.update(this.state.id, this.state, params).then(function (result) {
+ console.log(result);
+ _this11.props.onUpdate(result);
+ _this11.reset();
+ }).catch(function (error) {
+ console.error(error);
+ _this11.setState({
+ error: error.toString()
+ });
+ });
+ }
+ }, {
+ key: 'render',
+ value: function render() {
+ var _this12 = this;
+
+ var id = this.state.id;
+ var action = id ? 'update' : 'create';
+
+ var date = parseDate(this.state.date);
+ var time = parseTime(this.state.time);
+ return _react2.default.createElement(
+ 'form',
+ { onSubmit: this.handleSubmit, className: action },
+ _react2.default.createElement('input', { type: 'hidden', name: 'id', value: this.state.id, readOnly: true }),
+ _react2.default.createElement('input', { type: 'hidden', name: 'userid', value: this.state.userid, readOnly: true }),
+ _react2.default.createElement('input', { type: 'text', name: 'name', placeholder: 'Name', value: this.state.name, required: true, onChange: this.updateState }),
+ _react2.default.createElement('input', { type: 'number', name: 'calories', placeholder: 'Calories', value: this.state.calories, required: true, onChange: this.updateState, min: '0', max: '10000' }),
+ _react2.default.createElement('input', { type: 'date', name: 'date', placeholder: 'Date', value: date, required: true, onChange: this.updateState }),
+ _react2.default.createElement('input', { type: 'time', name: 'time', placeholder: 'Time', value: time, required: true, onChange: this.updateState, step: '60' }),
+ _react2.default.createElement('input', { type: 'submit', value: capitalize(action) }),
+ _react2.default.createElement(
+ 'span',
+ { className: 'clear', onClick: function onClick() {
+ return _this12.reset();
+ } },
+ 'clear'
+ ),
+ _react2.default.createElement(
+ 'div',
+ { className: 'error' },
+ this.state.error
+ )
+ );
+ }
+ }]);
+
+ return MealForm;
+}(_react2.default.Component);
+
+function sortByDate(a, b) {
+ return new Date(b.date) - new Date(a.date);
+}
+
+function parseDate(d) {
+ return new Date(d).toISOString().substr(0, 10);
+}
+
+function parseTime(d) {
+ return new Date(d).toISOString().substr(11, 5);
+}
+
+function capitalize(s) {
+ s = s || '';
+ return (s[0] || '').toUpperCase() + s.substr(1);
+}
+
+var UserList = function (_React$Component7) {
+ _inherits(UserList, _React$Component7);
+
+ function UserList() {
+ _classCallCheck(this, UserList);
+
+ return _possibleConstructorReturn(this, (UserList.__proto__ || Object.getPrototypeOf(UserList)).apply(this, arguments));
+ }
+
+ _createClass(UserList, [{
+ key: 'render',
+ value: function render() {
+ var items = [];
+ return _react2.default.createElement(
+ 'div',
+ null,
+ items
+ );
+ }
+ }]);
+
+ return UserList;
+}(_react2.default.Component);
/***/ })
/******/ ]);