diff options
Diffstat (limited to 'public/bundle.js')
| -rw-r--r-- | public/bundle.js | 635 |
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); /***/ }) /******/ ]); |
