{"version":3,"sources":["webpack:///./app/javascript/src/utils/fetchHelper.js","webpack:///./app/javascript/src/userComponents/leftBox.jsx","webpack:///./app/javascript/src/userComponents/rightBox.jsx","webpack:///./app/javascript/src/utils/formatDate.js","webpack:///./app/javascript/src/loginSignupGuestsComponent/login.jsx","webpack:///./app/javascript/src/loginSignupGuestsComponent/signup.jsx","webpack:///./app/javascript/src/guestLayoutHome.jsx"],"names":["jsonHeader","options","Object","assign","Accept","getAuthenticityToken","name","header","document","querySelector","content","authenticityHeader","safeCredentials","credentials","mode","headers","safeCredentialsFormData","handleErrors","response","ok","Error","statusText","json","LeftBox","props","logout","e","preventDefault","fetch","method","then","data","success","setState","authenticated","redirect_url","URLSearchParams","window","location","search","get","error","this","username","email","className","href","icon","faTwitter","faHome","faHashtag","faBell","faEnvelope","faBookmark","faRectangleList","faUser","faCircle","faEllipsis","transform","faCircleSolid","onSubmit","type","variant","size","React","Component","RightBox","showSearchResultMethod","inputFocus","state","showSearchResult","classList","remove","add","trendsForYouStats","id","topic","hashtag","numberOfTweets","relevantUser","faSearch","placeholder","onFocus","onBlur","map","tweet","key","user","FormatDate","date","isRelative","newDate","Date","getMonth","getDate","getFullYear","toLocaleTimeString","now","Math","round","Login","handleChange","target","value","loginSubmit","body","JSON","stringify","password","console","log","Form","Group","Control","onChange","Button","Signup","signup","Navbar","Welcome","LoginSignUp","Footer","rel","faGithub","faLinkedin","faInstagram","Layout"],"mappings":"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","file":"js/home~userFeedsPage-80705a9c009bb1b3834f.chunk.js","sourcesContent":["// fetchHelper.js\n\n/**\n * For use with window.fetch\n */\n export function jsonHeader(options = {}) {\n return Object.assign(options, {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n });\n }\n \n // Additional helper methods\n \n export function getMetaContent(name) {\n const header = document.querySelector(`meta[name=\"${name}\"]`);\n return header && header.content;\n }\n \n export function getAuthenticityToken() {\n return getMetaContent('csrf-token');\n }\n \n export function authenticityHeader(options = {}) {\n return Object.assign(options, {\n 'X-CSRF-Token': getAuthenticityToken(),\n 'X-Requested-With': 'XMLHttpRequest',\n });\n }\n \n /**\n * Lets fetch include credentials in the request. This includes cookies and other possibly sensitive data.\n * Note: Never use for requests across (untrusted) domains.\n */\n export function safeCredentials(options = {}) {\n return Object.assign(options, {\n credentials: 'include',\n mode: 'same-origin',\n headers: Object.assign((options.headers || {}), authenticityHeader(), jsonHeader()),\n });\n }\n \n // Use this function instead if you are using formData as body when uploading images\n export function safeCredentialsFormData(options = {}) {\n return Object.assign(options, {\n credentials: 'include',\n mode: 'same-origin',\n headers: Object.assign((options.headers || {}), authenticityHeader()),\n });\n }\n \n export function handleErrors(response) {\n if (!response.ok) {\n throw Error(response.statusText);\n }\n return response.json();\n }","import React from \"react\";\nimport { safeCredentials, handleErrors } from \"@utils/fetchHelper\";\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faHome, faHashtag, faEllipsis, faCircle as faCircleSolid } from '@fortawesome/free-solid-svg-icons';\nimport { faBell, faEnvelope, faBookmark, faRectangleList, faUser, faCircle } from '@fortawesome/free-regular-svg-icons';\nimport { faTwitter } from '@fortawesome/free-brands-svg-icons';\n\nclass LeftBox extends React.Component {\n constructor(props) {\n super(props);\n }\n\n logout = e => {\n e.preventDefault();\n\n fetch('api/sessions', safeCredentials({\n method: 'DELETE',\n }))\n .then(handleErrors)\n .then(data => {\n if(data.success) {\n this.setState({\n authenticated: false,\n })\n const params = new URLSearchParams(window.location.search);\n const redirect_url = params.get('redirect_url') || '/';\n window.location = redirect_url;\n }\n })\n .catch(error => {\n this.setState({\n error: 'You could not sign out.',\n })\n })\n }\n\n render() {\n const {username, email} = this.props;\n\n return(\n
\n \n\n
\n
\n
\n \n \n \n \n
\n
\n
@{username}
\n
\n
\n \n
\n \n
\n
\n
\n )\n }\n\n}\n\nexport default LeftBox;","import React from \"react\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport {faSearch, faCircle} from \"@fortawesome/free-solid-svg-icons\"; \nimport {faUser} from '@fortawesome/free-regular-svg-icons';\n\nclass RightBox extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n showSearchResult: false,\n }\n };\n\n showSearchResultMethod = () => {\n\n const inputFocus = document.querySelector('.right-box-above .input-group');\n \n if(!this.state.showSearchResult) {\n inputFocus.classList.add('focus') \n } else {\n inputFocus.classList.remove('focus')\n }\n this.setState({\n showSearchResult: !this.state.showSearchResult\n })\n };\n\n trendsForYouStats = [\n {\n id: 1,\n topic: \"Coding\",\n hashtag: \"fullStackWebDevelopment\",\n numberOfTweets: \"12.7K\",\n },\n {\n id: 2,\n topic: \"Frontend\",\n hashtag: \"React\",\n numberOfTweets: \"11.6K\",\n },\n {\n id: 3,\n topic: \"Backend\",\n hashtag: \"RubyOnRails\",\n numberOfTweets: \"10.5K\",\n },\n {\n id: 4,\n topic: \"Blockchain\",\n hashtag: \"Web3Development\",\n numberOfTweets: \"9.4K\",\n },\n ];\n\n relevantUser = [\n {\n id: 1,\n name: 'Vitalik.eth',\n username: 'VitalikButerin'\n },\n {\n id: 2,\n name: 'Edward Snowden',\n username: 'Snowden'\n }\n\n ];\n\n render() {\n return(\n
\n
\n
\n \n \n \n \n\n \n\n
\n
\n\n {this.state.showSearchResult ? (

Search for any trending topic today

) : (
)\n }\n\n
\n
\n

Trends for you

\n
\n
\n {this.trendsForYouStats.map(tweet => {\n return(\n
\n \n
\n {tweet.topic}\n • Trending\n
\n \n
\n
#{tweet.hashtag}
\n
\n\n
\n {tweet.numberOfTweets} Tweets\n
\n
\n )\n })}\n
\n
\n\n
\n \n
\n

Who to follow

\n
\n\n
\n {this.relevantUser.map(user => {\n return (\n\n
\n \n
\n \n \n \n \n
\n\n
\n
{user.name}
\n
@{user.username}
\n
\n\n
\n \n
\n
\n )\n })}\n
\n
\n
\n )\n }\n}\n\nexport default RightBox;","function FormatDate(date, isRelative) {\n let months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']\n let newDate = new Date(date)\n newDate = months[newDate.getMonth()] + ' ' + newDate.getDate() + ', ' + newDate.getFullYear() + ' ' + newDate.toLocaleTimeString()\n if(isRelative) {\n newDate = Date.now() - new Date(date)\n newDate = newDate / 1000\n if(newDate < 60 ) {\n newDate = Math.round(newDate) + ' seconds ago'\n } else if(newDate < 3600 ) {\n newDate = Math.round(newDate / 60) + ' minutes ago'\n } else if(newDate < 86400) {\n newDate = Math.round(newDate / 3600) + ' hours ago'\n } else {\n newDate = Math.round(newDate / 86400) + ' days ago'\n }\n // newDate = newDate / 1000 / 60 / 60 / 24\n return newDate\n }\n return newDate\n}\n\nexport default FormatDate","import React from 'react';\nimport { safeCredentials, handleErrors } from '@utils/fetchHelper';\nimport Button from 'react-bootstrap/Button';\nimport Form from 'react-bootstrap/Form';\n\n\nclass Login extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n username: '',\n email: '',\n password: '',\n authenticated: false,\n success: '',\n error: '',\n }\n }\n\n handleChange = e => {\n this.setState({\n [e.target.name]: e.target.value,\n })\n }\n\n loginSubmit = e => {\n e.preventDefault();\n\n fetch('/api/sessions', safeCredentials({\n method: 'POST',\n body: JSON.stringify({\n user: {\n username: this.state.username,\n password: this.state.password,\n }\n })\n }))\n .then(handleErrors)\n .then(data => {\n console.log(\"data:\", data);\n if(data.success) {\n this.setState({\n username: '',\n password: '',\n authenticated: true,\n success: 'Log in Successful!',\n })\n const params = new URLSearchParams(window.location.search);\n const redirect_url = params.get('redirect_url') || '/';\n window.location = redirect_url;\n }\n })\n .catch(error => {\n this.setState({\n error: 'Sorry log in unsuccessful, please try again.'\n })\n })\n }\n\n render() {\n const { username, error, password, success} = this.state;\n\n return(\n
\n
Sign in to Twitter
\n
\n \n \n \n\n \n \n \n \n
\n \n \n {success &&

{success}

}\n {error &&

{error}

}\n \n
\n
\n
\n )\n }\n}\n\nexport default Login","import React from 'react';\nimport { safeCredentials, handleErrors } from '@utils/fetchHelper';\nimport Button from 'react-bootstrap/Button';\nimport Form from 'react-bootstrap/Form';\n\nclass Signup extends React.Component {\n \n constructor(props) {\n super(props)\n\n this.state = {\n email: '',\n password: '',\n username: '',\n success: '',\n error: '',\n }\n }\n\n handleChange = e => {\n this.setState({\n [e.target.name]: e.target.value,\n })\n }\n\n signup = e => {\n e.preventDefault();\n\n fetch('/api/users', safeCredentials({\n method: 'POST',\n body: JSON.stringify({\n user: {\n username: this.state.username,\n email: this.state.email,\n password: this.state.password,\n }\n })\n }))\n .then(handleErrors)\n .then(data => {\n console.log(\"data:\", data);\n this.setState({\n email: '',\n password: '',\n username: '',\n success: 'Sign up success!. You are now allowed to Log in.'\n })\n })\n .catch(error => {\n this.setState({\n error: \"Sorry you failed to sign up. Try again if you please.\"\n })\n })\n }\n \n render() {\n \n const { username, email, password, success, error } = this.state;\n\n return(\n
\n
Join Twitter today
\n
\n \n \n \n \n \n \n \n \n \n
\n \n
\n {success &&

{success}

}\n {error &&

{error}

}\n
\n
\n )\n }\n}\n\nexport default Signup","import React from \"react\";\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faTwitter, faLinkedin, faInstagram, faGithub } from '@fortawesome/free-brands-svg-icons';\nimport Login from \"./loginSignupGuestsComponent/login\";\nimport Signup from \"./loginSignupGuestsComponent/signup\";\n\n\nconst Layout = props => {\n return(\n <>\n \n\n
\n
\n\n
\n\n
\n\n
\n \n \n
\n
\n
\n\n
\n\n
\n
\n \n )\n}\n\nconst Navbar = props => {\n return(\n \n )\n}\n\nconst Welcome = props => {\n return (\n
\n
\n

Welcome to Twitter.

\n

Connect with your friends — and other fascinating people.

\n\n

Get in-the-moment updates on the things that interest you. And watch events unfold, in real time, from every angle.

\n
\n
\n )\n}\n\nconst LoginSignUp = props => {\n return(\n
\n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n )\n}\n\nconst Footer = () => {\n return (\n
\n
\n
\n
Full-Stack Twitter Clone by
\n
\n © \n Francis Artemio Landia \n \n\n

2022

\n\n
\n \n \n \n \n\n \n \n \n\n \n \n \n \n
\n \n \n
\n \n
\n );\n};\n\nexport default Layout;"],"sourceRoot":""}