{"version":3,"sources":["features/userSlice.js","components/News.jsx","components/Homepage.jsx","components/Login.jsx","components/Navbar.jsx","components/Landing.jsx","App.js","app/store.js","theme.js","index.js"],"names":["userSlice","createSlice","name","initialState","isSignedin","userData","searchInput","blogData","reducers","setSignedIn","state","action","payload","setUserData","setSearchInput","setBlogData","actions","selectSignedin","user","selectUserData","selectSearchInput","News","useSelector","blog_url","process","dispatch","useDispatch","useState","news","setNews","loading","setLoading","useEffect","axios","get","then","response","data","console","log","catch","error","className","articles","map","target","href","url","src","image","source","publishedAt","title","description","Homepage","userId","useSessionContext","Login","Grid","container","item","xs","sm","height","width","onLogout","a","signOut","window","location","useStyles","makeStyles","theme","root","flexGrow","fontFamily","menuButton","marginRight","spacing","Navbar","inputValue","setInputValue","isSignedIn","classes","AppBar","position","Toolbar","TextField","id","label","variant","value","onChange","e","size","color","Button","onClick","style","Typography","Landing","Box","sx","md","SuperTokens","init","appInfo","appName","apiDomain","websiteDomain","websiteBasePath","recipeList","ThirdPartyEmailPassword","getRedirectionURL","context","undefined","redirectToPath","signInAndUpFeature","disableDefaultImplementation","providers","Github","Google","signUpForm","formFields","placeholder","background","marginTop","secondaryText","fontSize","link","palette","textTitle","textLabel","textInput","textPrimary","textLink","Session","App","getSuperTokensRoutesForReactRouterDom","require","path","exact","configureStore","reducer","userReducer","createMuiTheme","typography","join","ReactDOM","render","StrictMode","ThemeProvider","store","document","getElementById"],"mappings":"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","file":"static/js/main.571c6f11.chunk.js","sourcesContent":["import { createSlice } from \"@reduxjs/toolkit\";\n\nconst userSlice = createSlice({\n name: \"user\",\n initialState: {\n isSignedin: false,\n userData: null,\n searchInput: \"tech\",\n blogData: null,\n },\n reducers: {\n setSignedIn: (state, action) => {\n state.isSignedin = action.payload;\n },\n setUserData: (state, action) => {\n state.userData = action.payload;\n },\n setSearchInput: (state, action) => {\n state.searchInput = action.payload;\n },\n setBlogData: (state, action) => {\n state.blogData = action.payload;\n }\n }\n})\n\nexport const {setSignedIn, setUserData, setSearchInput, setBlogData,} = userSlice.actions;\n\nexport const selectSignedin = (state) => state.user.isSignedin;\nexport const selectUserData = (state) => state.user.userData;\nexport const selectSearchInput = (state) => state.user.searchInput;\nexport const selectBlogData = (state) => state.user.blogData;\n\nexport default userSlice.reducer;\n\n","import React, { useState, useEffect } from 'react'\nimport axios from 'axios'\nimport { useSelector, useDispatch } from 'react-redux'\nimport { selectSearchInput, setBlogData } from '../features/userSlice'\n\nimport { Box, Grid } from '@material-ui/core';\n\nexport default function News() {\n\n const searchInput = useSelector(selectSearchInput)\n const api_key = process.env.REACT_APP_GNEWS_API_KEY\n const blog_url = `https://gnews.io/api/v4/search?q=${searchInput}&token=${api_key}`\n\n const dispatch = useDispatch()\n const [news, setNews] = useState()\n const [loading, setLoading] = useState(true)\n\n useEffect(() => {\n axios\n .get(blog_url)\n .then((response) => {\n dispatch(setBlogData(response.data))\n setNews(response.data)\n console.log(response.data)\n setLoading(false)\n })\n .catch((error) => {\n console.log(error)\n })\n }, [searchInput])\n\n return (\n
\n

NewsDux

\n {loading ?

Loading...

: \"\"}\n
\n {news?.articles?.map(news => (\n \n
\n \n
\n

\n {news.source.name}\n {news.publishedAt}\n

\n

{news.title}

\n

{news.description}

\n
\n
\n
\n ))}\n
\n
\n )\n}\n","import React from 'react'\nimport { signOut } from \"supertokens-auth-react/recipe/thirdpartyemailpassword\";\nimport { useSessionContext } from 'supertokens-auth-react/recipe/session';\nimport Button from '@material-ui/core/Button';\nimport { ToastContainer, toast } from 'react-toastify';\nimport 'react-toastify/dist/ReactToastify.css';\nimport { useDispatch } from 'react-redux';\nimport { useSelector } from 'react-redux';\nimport { selectSignedin, setSignedIn, setUserData } from '../features/userSlice';\nimport News from './News';\n\nasync function onLogout() {\n\n await signOut();\n window.location.href = \"/\";\n}\n\n\n\nexport default function Homepage() {\n\n const isSignedIn = useSelector(selectSignedin)\n\n const dispatch = useDispatch()\n\n const notify = () => toast(\"Wow so easy !\", {\n position: toast.POSITION.BOTTOM_LEFT\n });\n\n const { userId } = useSessionContext();\n\n function login() {\n console.log(userId)\n dispatch(setSignedIn(true))\n dispatch(setUserData(userId))\n }\n\n login()\n\n return (\n
\n
\n
\n
\n )\n}\n","import React from 'react'\nimport { SignInAndUp } from 'supertokens-auth-react/recipe/thirdpartyemailpassword';\nimport Grid from '@material-ui/core/Grid';\n\nexport default function Login() {\n return (\n
\n \n \n \n \n \n \n \n \n
\n )\n}\n","import React, { useState } from 'react'\nimport { makeStyles } from '@material-ui/core/styles';\nimport AppBar from '@material-ui/core/AppBar';\nimport Toolbar from '@material-ui/core/Toolbar';\nimport Typography from '@material-ui/core/Typography';\nimport Button from '@material-ui/core/Button';\nimport IconButton from '@material-ui/core/IconButton';\nimport MenuIcon from '@material-ui/icons/Menu';\nimport { TextField } from '@material-ui/core';\n\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport { selectSignedin, selectUserData, setUserData, setSignedIn, setSearchInput } from '../features/userSlice';\n\nimport { signOut } from \"supertokens-auth-react/recipe/thirdpartyemailpassword\";\n\n\nasync function onLogout() {\n\n await signOut();\n window.location.href = \"/\";\n}\n\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n flexGrow: 1,\n fontFamily: 'Raleway',\n },\n menuButton: {\n marginRight: theme.spacing(2),\n },\n title: {\n flexGrow: 1,\n },\n}));\n\nexport default function Navbar() {\n\n const [inputValue, setInputValue] = useState(\"tech\")\n const isSignedIn = useSelector(selectSignedin)\n const userData = useSelector(selectUserData)\n\n const dispatch = useDispatch()\n\n function handleSearch() {\n dispatch(setSearchInput(inputValue))\n }\n\n const classes = useStyles();\n return (\n
\n \n \n {\n isSignedIn\n ?\n <>\n setInputValue(e.target.value)} size=\"small\" color=\"success\"/>\n\n \n \n :\n <>\n }\n \n NewsDux\n \n {\n isSignedIn\n\n ?\n <>\n \n Hello {userData}\n \n \n \n\n\n :\n\n \n }\n \n \n
\n )\n}\n","import React from 'react'\n\nimport { Box, Grid, Button } from '@material-ui/core';\n\nexport default function Landing() {\n return (\n
\n \n \n \n

Welcome to NewsDux

\n

News by GNews API

\n

Login to get Started

\n \n\n
\n \n \n \n
\n
\n
\n )\n}\n","import './App.css';\nimport Homepage from './components/Homepage'\nimport Login from './components/Login'\nimport Navbar from './components/Navbar'\nimport axios from \"axios\"\nimport { ToastContainer, toast } from 'react-toastify';\nimport 'react-toastify/dist/ReactToastify.css';\n\nimport React from 'react';\nimport { BrowserRouter as Router, Switch, Route, Link} from \"react-router-dom\";\n\nimport SuperTokens, { getSuperTokensRoutesForReactRouterDom } from \"supertokens-auth-react\";\nimport ThirdPartyEmailPassword, {Github, Google, ThirdPartyEmailPasswordAuth} from \"supertokens-auth-react/recipe/thirdpartyemailpassword\";\nimport Session from \"supertokens-auth-react/recipe/session\";\nimport Landing from './components/Landing';\nimport { useSelector } from 'react-redux';\nimport { selectSignedin } from './features/userSlice';\nimport News from './components/News';\n\n\nSuperTokens.init({\n appInfo: {\n appName: \"NewsDux\",\n apiDomain: \"https://newsdux-backend.herokuapp.com/\",\n websiteDomain: \"https://newsdux.pages.dev\",\n websiteBasePath: \"/login\"\n },\n recipeList: [\n ThirdPartyEmailPassword.init({\n getRedirectionURL: async (context) => {\n if (context.action === \"SIGN_IN_AND_UP\") {\n return \"/login\";\n };\n if (context.action === \"SUCCESS\") {\n if (context.redirectToPath !== undefined) {\n return context.redirectToPath;\n }\n return \"/home\";\n }\n },\n signInAndUpFeature: {\n disableDefaultImplementation: true,\n providers: [\n Github.init(),\n Google.init(),\n ],\n signUpForm: {\n formFields: [{\n id: \"name\",\n label: \"Full name\",\n placeholder: \"First name and last name\"\n }]\n },\n style: {\n container: {\n background: \"linear-gradient(135deg, rgba(0,0,0,1) 10%, rgba(255,141,0,1) 100%)\",\n marginTop: \"4rem\",\n },\n secondaryText: {\n fontSize: \"1rem\",\n },\n link: {\n fontSize: \"1rem\",\n }\n }\n },\n palette: {\n background: '#000357',\n error: '#ad2e2e',\n textTitle: \"white\",\n textLabel: \"white\",\n textInput: '#000',\n textPrimary: \"white\",\n textLink: '#ff9b33'\n }\n }),\n Session.init()\n ]\n});\n\nconst fetchData = () => {\n return axios.get(\"https://newsdux-backend.herokuapp.com/\")\n}\n\nfunction App() {\n\n const isSignedin = useSelector(selectSignedin)\n\n const notify = () => toast(\"Wow so easy !\", {\n position: toast.POSITION.BOTTOM_LEFT\n });\n\n return (\n
\n \n \n {/* */}\n \n \n {getSuperTokensRoutesForReactRouterDom(require(\"react-router-dom\"))}\n\n \n \n \n\n \n \n \n\n \n \n \n\n {isSignedin && } \n \n \n \n \n
\n );\n}\n\nexport default App;","import { configureStore } from \"@reduxjs/toolkit\";\nimport userReducer from '../features/userSlice'\n\nexport default configureStore({\n reducer:{\n user: userReducer,\n }\n})","import { createMuiTheme } from '@material-ui/core/styles';\n\nconst theme = createMuiTheme({\n typography: {\n fontFamily: ['\"Raleway\"'].join(',')\n }\n})\n\nexport default theme;","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './App';\nimport { Provider } from 'react-redux'\nimport { ThemeProvider } from '@material-ui/core/styles';\nimport store from './app/store'\nimport theme from './theme'\n\nReactDOM.render(\n \n \n \n \n \n \n ,\n document.getElementById('root')\n);"],"sourceRoot":""}