{"version":3,"sources":["components/Services/api.js","components/Provider/Provider.js","components/Services/Services.js","components/Form/Form.js","components/Pagination/Pagination.js","components/Result/Result.js","App.js","reportWebVitals.js","index.js"],"names":["module","exports","initialState","term","total","active","results","response","searching","query","config","actions","reducer","state","action","type","_objectSpread","value","SET_QUERY","SearchContext","createContext","Provider","_ref","children","dispatch","useReducer","setTerm","setResults","setResponse","setTotal","setActive","setQuery","setSearching","search","from","async","simple_query_string","res","axios","get","concat","api","then","catch","error","console","log","SearchAPI","status","data","hits","reset","_jsx","SearchForm","useContext","searchTerm","createRef","searchParamsChange","keyword","URLSearchParams","window","location","handleReset","React","useEffect","addEventListener","document","removeEventListener","event","q","className","Form","onSubmit","preventDefault","updateQueryString","params","partial","delete","set","toString","history","pushState","pathname","_jsxs","Row","Col","md","lg","Control","onChange","target","placeholder","ref","Button","variant","FontAwesomeIcon","icon","pulse","SeedPagination","pageSize","size","scrollTo","handleClick","itemClicked","text","parseInt","Pagination","renderPageNumbers","current","items","pages","Math","ceil","number","push","Item","onClick","createMarkup","markup","undefined","Array","isArray","substring","highlight","fragment_size","__html","Result","length","map","index","href","_source","url","title","hasOwnProperty","dangerouslySetInnerHTML","body","Pages","library","add","faSearch","faSpinner","App","FormComponent","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","render","StrictMode","getElementById"],"mappings":"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","file":"static/js/main.0da95be4.chunk.js","sourcesContent":["const api = \"https://emfuom5ojj.execute-api.us-east-1.amazonaws.com/prod/search\"\r\nmodule.exports = api;","import React, { createContext, useReducer } from \"react\";\r\nimport { SearchAPI } from '../Services/Services';\r\nimport config from '../../config.json';\r\n\r\nlet initialState = {\r\n term: '',\r\n total: 0,\r\n active: 1,\r\n results: {},\r\n response: {},\r\n searching: false,\r\n query: config.query\r\n};\r\n\r\nconst actions = {\r\n SET_TERM: \"SET_TERM\",\r\n SET_RESULTS: \"SET_RESULTS\",\r\n SET_RESPONSE: \"SET_RESPONSE\",\r\n SET_TOTAL: \"SET_TOTAL\",\r\n SET_ACTIVE: \"SET_ACTIVE\",\r\n SET_QUERY: \"SET_QUERY\",\r\n SET_SEARCHING: \"SET_SEARCHING\",\r\n SEARCH: \"SEARCH\",\r\n RESET: \"RESET\"\r\n};\r\n\r\nfunction reducer(state, action) {\r\n switch (action.type) {\r\n case actions.SET_TERM:\r\n return { ...state, term: action.value };\r\n case actions.SET_RESULTS:\r\n return { ...state, results: action.value };\r\n case actions.SET_RESPONSE:\r\n return { ...state, response: action.value }; \r\n case actions.SET_TOTAL:\r\n return { ...state, total: action.value };\r\n case actions.SET_ACTIVE:\r\n return { ...state, active: action.value };\r\n case action.SET_QUERY:\r\n return { ...state, query: action.value };\r\n case actions.SET_SEARCHING:\r\n return { ...state, searching: action.value }; \r\n case actions.RESET:\r\n return { ...state, ...initialState };\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nconst SearchContext = createContext();\r\n\r\nconst Provider = ({children}) => {\r\n const [state, dispatch] = useReducer(reducer, initialState);\r\n\r\n const value = {\r\n term: state.term,\r\n total: state.total,\r\n active: state.active,\r\n results: state.results,\r\n response: state.response,\r\n searching: state.searching,\r\n query: state.query,\r\n setTerm: value => {\r\n dispatch({ type: actions.SET_TERM, value });\r\n },\r\n setResults: value => {\r\n dispatch({ type:actions.SET_RESULTS, value });\r\n },\r\n setResponse: value => {\r\n dispatch({ type:actions.SET_RESPONSE, value });\r\n },\r\n setTotal: value => {\r\n dispatch({ type:actions.SET_TOTAL, value });\r\n },\r\n setActive: value => {\r\n dispatch({ type:actions.SET_ACTIVE, value });\r\n },\r\n setQuery: value => {\r\n dispatch({ type:actions.SET_QUERY, value });\r\n },\r\n setSearching: value => {\r\n dispatch({ type:actions.SET_SEARCHING, value });\r\n },\r\n search: value => {\r\n if (value === 0) {\r\n // Reset active page to first item\r\n dispatch({ type:actions.SET_ACTIVE, value: 1 });\r\n }\r\n\r\n state.query.from = value;\r\n dispatch({ type:actions.SET_SEARCHING, value: true });\r\n SearchAPI(state.query).then(res => {\r\n if (res && res.status === 200) {\r\n let total = res.data.hits.total.value;\r\n let results = res.data.hits.hits;\r\n let response = res.data;\r\n dispatch({ type:actions.SET_TOTAL, value: total });\r\n dispatch({ type:actions.SET_RESULTS, value: results });\r\n dispatch({ type:actions.SET_RESPONSE, value: response });\r\n }\r\n dispatch({ type:actions.SET_SEARCHING, value: false });\r\n }, (error) => {\r\n console.log(error);\r\n dispatch({ type:actions.SET_SEARCHING, value: false });\r\n });\r\n },\r\n reset: () => {\r\n dispatch({ type: actions.RESET });\r\n }\r\n }\r\n\r\n return (\r\n
{ config.query.from + 1 } to { results.length + config.query.from } of { total } results found
\r\nNo results found
\r\n }\r\n