{"version":3,"sources":["images/weather-logo.png","images/loading-indicator.gif","reducers/initialState.js","reducers/index.js","actions/types.js","store/store.js","store/configureStore.js","components/LocationSearchForm.js","components/WeatherDisplayPanel.js","components/index.js","selectors/index.js","containers/index.js","actions/index.js","serviceWorker/serviceWorker.js","index.js"],"names":["module","exports","initialState","fromJS","weatherApp","isWeatherDataLoading","hasWeatherDataLoadingError","data","reducer","state","get","action","type","setIn","payload","store","createStore","compose","applyMiddleware","thunk","apiMiddleware","devToolsEnhancer","configureStore","LocationSearchForm","fetchWeatherData","searchInput","useRef","clearIcon","useState","address","setAddress","handleSubmit","input","geocodeByAddress","then","results","getLatLng","latLng","catch","error","console","clearInput","current","focus","className","highlightFirstSuggestion","value","onChange","onSelect","e","getInputProps","suggestions","getSuggestionItemProps","Fragment","placeholder","ref","length","map","suggestion","active","description","onKeyDown","keyCode","onClick","WeatherDisplayPanel","weatherData","src","loading","alt","name","weather","main","parseInt","temp","icon","logo","defaultProps","WeatherApp","getWeatherData","getIn","toJS","connect","dispatch","location","createAction","endpoint","lat","lng","method","types","Boolean","window","hostname","match","ReactDOM","render","document","getElementById","navigator","serviceWorker","ready","registration","unregister","message"],"mappings":"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","file":"static/js/main.0ce5e5ce.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/weather-logo.f6792e41.png\";","module.exports = __webpack_public_path__ + \"static/media/loading-indicator.9f0bb82a.gif\";","import { fromJS } from 'immutable';\n\nconst initialState = fromJS({\n weatherApp: {\n isWeatherDataLoading: false,\n hasWeatherDataLoadingError: false,\n data: null\n }\n});\n\nexport default initialState;\n","import { fromJS } from 'immutable';\nimport initialState from './initialState';\nimport * as types from '../actions/types';\n\nconst reducer = (state = initialState.get('weatherApp'), action) => {\n switch (action.type) {\n case types.FETCH_WEATHER_DATA:\n return state\n .setIn(['weatherApp', 'hasWeatherDataLoadingError'], false)\n .setIn(['weatherApp', 'isWeatherDataLoading'], true);\n case types.FETCH_WEATHER_DATA_SUCCESS:\n return state\n .setIn(['weatherApp', 'isWeatherDataLoading'], false)\n .setIn(['weatherApp', 'data'], fromJS(action.payload));\n case types.FETCH_WEATHER_DATA_ERROR:\n return state\n .setIn(['weatherApp', 'isWeatherDataLoading'], false)\n .setIn(['weatherApp', 'hasWeatherDataLoadingError'], true);\n default:\n return state;\n }\n}\n\nexport default reducer\n","export const FETCH_WEATHER_DATA = 'FETCH_WEATHER_DATA';\nexport const FETCH_WEATHER_DATA_SUCCESS = 'FETCH_WEATHER_DATA_SUCCESS';\nexport const FETCH_WEATHER_DATA_ERROR = 'FETCH_WEATHER_DATA_ERROR';\n","import configureStore from './configureStore';\nimport initialState from '../reducers/initialState';\n\nconst store = configureStore(initialState);\n\nexport default store;\n","import { createStore, applyMiddleware, compose } from 'redux';\nimport { devToolsEnhancer } from 'redux-devtools-extension';\nimport { apiMiddleware } from 'redux-api-middleware';\nimport thunk from 'redux-thunk';\nimport reducer from '../reducers';\n\nconst configureStore = (state) => {\n return createStore(\n reducer,\n state,\n compose(\n applyMiddleware(thunk, apiMiddleware),\n devToolsEnhancer()\n )\n );\n};\n\nexport default configureStore;\n","import React, { useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport PlacesAutocomplete, {\n geocodeByAddress,\n getLatLng,\n} from 'react-places-autocomplete';\nimport { FaSearch, FaTimes } from 'react-icons/fa';\n\nimport '../styles/LocationSearchForm.css';\n\nconst LocationSearchForm = ({ fetchWeatherData }) => {\n let searchInput = useRef(null);\n let clearIcon = useRef(null);\n const [address, setAddress] = useState('');\n\n const handleChange = input => {\n setAddress(input);\n };\n\n const handleSelect = (input, e) => {\n if (e) {\n setAddress(input);\n clearIcon.current.focus()\n handleSubmit(input);\n }\n };\n\n const handleSubmit = (input) => {\n geocodeByAddress(input)\n .then(results => getLatLng(results[0]))\n .then(latLng => fetchWeatherData(latLng))\n .catch(error => console.error('Error', error));\n };\n\n const handleKeyPress = (e) => {\n if (e.keyCode === 13) {\n clearInput();\n }\n };\n\n const handleClick = () => {\n clearInput();\n };\n\n const clearInput = () => {\n setAddress('');\n searchInput.current.focus();\n };\n\n return (\n