{"version":3,"sources":["components/Footer.jsx","contexts/StateContextProvider.js","components/Links.jsx","components/Search.jsx","components/Navbar.jsx","components/Loading.jsx","components/Results.jsx","components/Routes.jsx","App.js","index.js"],"names":["Footer","className","StateContext","createContext","StateContextProvider","children","useState","results","setResults","loading","setLoading","searchTerm","setSearchTerm","getResults","url","a","fetch","method","headers","res","json","data","Provider","value","useStateContext","useContext","links","text","Links","map","to","activeClassName","Search","setText","useDebounce","debouncedValue","useEffect","type","placeholder","onChange","e","target","onClick","Navbar","setDarkTheme","darkTheme","Loading","color","height","width","Results","location","useLocation","pathname","index","link","title","href","rel","length","substring","image_results","image","src","alt","entries","id","source","video","additional_links","controls","Routes","exact","path","App","ReactDom","render","document","getElementById"],"mappings":"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","file":"static/js/main.79324267.chunk.js","sourcesContent":["import React from 'react';\n\nexport const Footer = () => (\n
\n © 2021 Goggl, Inc.\n
\n);\n","import React, { createContext, useContext, useState } from 'react';\n\nconst StateContext = createContext();\nconst baseUrl = 'https://google-search3.p.rapidapi.com/api/v1';\n\nexport const StateContextProvider = ({ children }) => {\n const [results, setResults] = useState([]);\n const [loading, setLoading] = useState(false);\n const [searchTerm, setSearchTerm] = useState('');\n\n const getResults = async (url) => {\n setLoading(true);\n\n const res = await fetch(`${baseUrl}${url}`, {\n method: 'GET',\n headers: {\n 'x-rapidapi-host': 'google-search3.p.rapidapi.com',\n 'x-rapidapi-key': 'cc419d39d9mshb3b0ebfa9a400f9p1c1d31jsnaafaccfc949c',\n },\n });\n\n const data = await res.json();\n\n setResults(data);\n setLoading(false);\n };\n\n return (\n \n {children}\n \n );\n};\n\nexport const useStateContext = () => useContext(StateContext);\n","import React from 'react';\nimport { NavLink } from 'react-router-dom';\n\nconst links = [\n { url: '/search', text: '🔎 All' },\n { url: '/news', text: '📰 News' },\n { url: '/images', text: '📸 Images' },\n { url: '/videos', text: '📺 Videos' },\n];\n\nexport const Links = () => (\n
\n {links.map(({ url, text }) => (\n {text}\n ))}\n
\n);\n","import React, { useEffect, useState } from 'react';\nimport { useDebounce } from 'use-debounce';\n\nimport { useStateContext } from '../contexts/StateContextProvider';\nimport { Links } from './Links';\n\nexport const Search = () => {\n const { setSearchTerm } = useStateContext();\n const [text, setText] = useState('Elon Musk');\n const [debouncedValue] = useDebounce(text, 300);\n\n useEffect(() => {\n if (debouncedValue) setSearchTerm(debouncedValue);\n }, [debouncedValue]);\n\n return (\n
\n setText(e.target.value)}\n />\n {text !== '' && (\n \n )}\n \n
\n );\n};\n","import React from 'react';\nimport { Link } from 'react-router-dom';\n\nimport { Search } from './Search';\n\nexport const Navbar = ({ setDarkTheme, darkTheme }) => (\n
\n
\n \n

\n Goggl 🔎\n

\n \n \n
\n \n
\n);\n","import React from 'react';\nimport Loader from 'react-loader-spinner';\n\nexport const Loading = () => (\n
\n \n
\n);\n","import React, { useEffect } from 'react';\nimport { useLocation } from 'react-router-dom';\nimport ReactPlayer from 'react-player';\n\nimport { useStateContext } from '../contexts/StateContextProvider';\nimport { Loading } from './Loading';\n\nexport const Results = () => {\n const { results, loading, getResults, searchTerm } = useStateContext();\n const location = useLocation();\n\n useEffect(() => {\n if (searchTerm !== '') {\n if (location.pathname === '/videos') {\n getResults(`/search/q=${searchTerm} videos`);\n } else {\n getResults(`${location.pathname}/q=${searchTerm}&num=40`);\n }\n }\n }, [searchTerm, location.pathname]);\n\n if (loading) return ;\n\n switch (location.pathname) {\n case '/search':\n return (\n
\n {results?.results?.map(({ link, title }, index) => (\n
\n \n

{link.length > 30 ? link.substring(0, 30) : link}

\n

{title}

\n
\n
\n ))}\n
\n );\n case '/images':\n return (\n
\n {results?.image_results?.map(({ image, link: { href, title } }, index) => (\n \n {title}\n

{title}

\n
\n ))}\n
\n );\n case '/news':\n return (\n
\n {results?.entries?.map(({ id, links, source, title }) => (\n
\n \n

{title}

\n
\n
\n {source?.href}\n
\n
\n ))}\n
\n );\n case '/videos':\n return (\n
\n {results?.results?.map((video, index) => (\n
\n \n
\n ))}\n
\n );\n default:\n return 'Error...';\n }\n};\n","import React from 'react';\nimport { Switch, Route, Redirect } from 'react-router-dom';\n\nimport { Results } from './Results';\n\nexport const Routes = () => (\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n
\n\n);\n","import React, { useState } from 'react';\n\nimport { Footer } from './components/Footer';\nimport { Navbar } from './components/Navbar';\nimport { Routes } from './components/Routes';\n\nconst App = () => {\n const [darkTheme, setDarkTheme] = useState(false);\n\n return (\n
\n
\n \n \n
\n
\n
\n\n );\n};\n\nexport default App;\n","import React from 'react';\nimport ReactDom from 'react-dom';\nimport { BrowserRouter as Router } from 'react-router-dom';\n\nimport App from './App';\nimport { StateContextProvider } from './contexts/StateContextProvider';\nimport './global.css';\n\nReactDom.render(\n \n \n \n \n ,\n document.getElementById('root'),\n);\n\n"],"sourceRoot":""}