| 1 | (function e (t, n, r) { function s (o, u) { if (!n[o]) { if (!t[o]) { var a = typeof require === 'function' && require; if (!u && a) return a(o, !0); if (i) return i(o, !0); var f = new Error("Cannot find module '" + o + "'"); throw f.code = 'MODULE_NOT_FOUND', f; } var l = n[o] = { exports: {} }; t[o][0].call(l.exports, function (e) { var n = t[o][1][e]; return s(n || e); }, l, l.exports, e, t, n, r); } return n[o].exports; } var i = typeof require === 'function' && require; for (var o = 0; o < r.length; o++)s(r[o]); return s; })({ 1: [function (require, module, exports) { var React = require('react'); var Search = require('./Search'); var Map = require('./Map'); var CurrentLocation = require('./CurrentLocation'); var LocationList = require('./LocationList'); var App = React.createClass({ displayName: 'App', getInitialState: function () { var favorites = []; if (localStorage.favorites) { favorites = JSON.parse(localStorage.favorites); } return { favorites: favorites, currentAddress: 'Paris, France', mapCoordinates: { lat: 48.856614, lng: 2.3522219 } }; }, toggleFavorite: function (address) { if (this.isAddressInFavorites(address)) { this.removeFromFavorites(address); } else { this.addToFavorites(address); } }, addToFavorites: function (address) { var favorites = this.state.favorites; favorites.push({ address: address, timestamp: Date.now() }); this.setState({ favorites: favorites }); localStorage.favorites = JSON.stringify(favorites); }, removeFromFavorites: function (address) { var favorites = this.state.favorites; var index = -1; for (var i = 0; i < favorites.length; i++) { if (favorites[i].address == address) { index = i; break; } } if (index !== -1) { favorites.splice(index, 1); this.setState({ favorites: favorites }); localStorage.favorites = JSON.stringify(favorites); } }, isAddressInFavorites: function (address) { var favorites = this.state.favorites; for (var i = 0; i < favorites.length; i++) { if (favorites[i].address == address) { return true; } } return false; }, searchForAddress: function (address) { var self = this; GMaps.geocode({ address: address, callback: function (results, status) { if (status !== 'OK') return; var latlng = results[0].geometry.location; self.setState({ currentAddress: results[0].formatted_address, mapCoordinates: { lat: latlng.lat(), lng: latlng.lng() } }); setTimeout(function () { console.log('gmapResponded'); }, 1e3); } }); }, componentDidMount: function () { var that = this; setTimeout(function () { that.searchForAddress('San Francisco'); }, 2e3); }, render: function () { return React.createElement('div', null, React.createElement('h1', null, 'Your Google Maps Locations'), React.createElement(Search, { onSearch: this.searchForAddress }), React.createElement(Map, { lat: this.state.mapCoordinates.lat, lng: this.state.mapCoordinates.lng }), React.createElement(CurrentLocation, { address: this.state.currentAddress, favorite: this.isAddressInFavorites(this.state.currentAddress), onFavoriteToggle: this.toggleFavorite }), React.createElement(LocationList, { locations: this.state.favorites, activeLocationAddress: this.state.currentAddress, onClick: this.searchForAddress })); } }); module.exports = App; }, { './CurrentLocation': 2, './LocationList': 4, './Map': 5, './Search': 6, react: 163 }], |
| 2 | 2: [function (require, module, exports) { var React = require('react'); var CurrentLocation = React.createClass({ displayName: 'CurrentLocation', toggleFavorite: function () { this.props.onFavoriteToggle(this.props.address); }, render: function () { var starClassName = 'glyphicon glyphicon-star-empty'; if (this.props.favorite) { starClassName = 'glyphicon glyphicon-star'; } return React.createElement('div', { className: 'col-xs-12 col-md-6 col-md-offset-3 current-location' }, React.createElement('h4', { id: 'save-location' }, this.props.address), React.createElement('span', { className: starClassName, onClick: this.toggleFavorite, 'aria-hidden': 'true' })); } }); module.exports = CurrentLocation; }, { react: 163 }], |
| 3 | 3: [function (require, module, exports) { var React = require('react'); var LocationItem = require('./LocationItem'); var moment = require('moment'); var LocationItem = React.createClass({ displayName: 'LocationItem', handleClick: function () { this.props.onClick(this.props.address); }, render: function () { var cn = 'list-group-item'; if (this.props.active) { cn += ' active-location'; } return React.createElement('a', { className: cn, onClick: this.handleClick }, this.props.address, React.createElement('span', { className: 'createdAt' }, moment(this.props.timestamp).fromNow()), React.createElement('span', { className: 'glyphicon glyphicon-menu-right' })); } }); module.exports = LocationItem; }, { './LocationItem': 3, moment: 8, react: 163 }], |
| 4 | 4: [function (require, module, exports) { var React = require('react'); var LocationItem = require('./LocationItem'); var LocationList = React.createClass({ displayName: 'LocationList', render: function () { var self = this; var locations = this.props.locations.map(function (l) { var active = self.props.activeLocationAddress == l.address; return React.createElement(LocationItem, { address: l.address, timestamp: l.timestamp, active: active, onClick: self.props.onClick }); }); if (!locations.length) { return null; } return React.createElement('div', { className: 'list-group col-xs-12 col-md-6 col-md-offset-3' }, React.createElement('span', { className: 'list-group-item active' }, 'Saved Locations'), locations); } }); module.exports = LocationList; }, { './LocationItem': 3, react: 163 }], |
nothing calls this directly
no test coverage detected