{"version":3,"file":"static/js/2912.aa9fbc64.chunk.js","mappings":"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","sources":["sections/auth/login/GuestAuth.js","utils/fetchShowsRevised.js"],"sourcesContent":["import { useEffect, useState } from \"react\";\nimport { useNavigate, useLocation } from \"react-router-dom\";\nimport { API, Auth } from 'aws-amplify';\nimport { PropTypes } from \"prop-types\";\nimport { UserContext } from '../../../UserContext';\nimport { getShowsWithFavorites } from \"../../../utils/fetchShowsRevised\";\n\nGuestAuth.propTypes = {\n children: PropTypes.object\n}\n\nexport default function GuestAuth(props) {\n const navigate = useNavigate();\n const [content, setContent] = useState(null);\n const [user, setUser] = useState(null);\n const [shows, setShows] = useState(JSON.parse(window.localStorage.getItem('memeSRCShows')) || []);\n const [defaultShow, setDefaultShow] = useState();\n const location = useLocation();\n\n useEffect(() => {\n if (location.pathname !== 'login') {\n // console.log(user)\n const userDetails = window.localStorage.getItem('memeSRCUserDetails')\n const userObject = { ...userDetails }\n // console.log(userDetails)\n\n if (user && (user.userDetails !== userObject.userDetails)) {\n window.localStorage.setItem('memeSRCUserDetails', JSON.stringify({ ...user?.signInUserSession?.accessToken?.payload, userDetails: { ...user.userDetails } }))\n }\n\n if (user) {\n // console.log(user)\n const localStorageDefaultShow = window.localStorage.getItem(`memeSRCDefaultIndex`) || '_universal'\n setDefaultShow(localStorageDefaultShow)\n } else {\n setDefaultShow('_universal')\n }\n }\n }, [user])\n\n const handleUpdateDefaultShow = (show) => {\n if (user) {\n window.localStorage.setItem('memeSRCDefaultIndex', show)\n }\n setDefaultShow(show)\n }\n\n const handleUpdateUserDetails = (newUserDetails) => {\n return new Promise((resolve, reject) => {\n const favorites = newUserDetails?.favorites ? JSON.parse(newUserDetails?.favorites) : [];\n getShowsWithFavorites(favorites)\n .then((loadedShows) => {\n if (!shows?.some((show) => show.isFavorite)) {\n setDefaultShow('_universal');\n }\n setUser({\n ...user,\n userDetails: { ...newUserDetails },\n });\n window.localStorage.setItem(\n 'memeSRCUserDetails',\n JSON.stringify({\n ...user,\n userDetails: { ...newUserDetails },\n })\n );\n window.localStorage.setItem('memeSRCShows', JSON.stringify(loadedShows));\n setShows(loadedShows);\n resolve();\n })\n .catch((error) => {\n console.log(error);\n reject(error);\n });\n });\n };\n\n useEffect(() => {\n if (location.pathname !== 'login') {\n const localStorageUser = JSON.parse(window.localStorage.getItem('memeSRCUserDetails'))\n const localStorageShows = JSON.parse(window.localStorage.getItem('memeSRCShows'))\n const localStorageDefaultShow = window.localStorage.getItem('memeSRCDefaultIndex')\n\n // console.log(localStorageUser)\n\n if (localStorageUser) {\n if (localStorageShows) {\n // console.log(localStorageShows?.some(show => show.isFavorite))\n setDefaultShow(localStorageShows?.some(show => show.isFavorite) ? localStorageDefaultShow || '_universal' : '_universal')\n }\n setUser(localStorageUser)\n } else {\n setUser(false)\n setDefaultShow('_universal')\n }\n\n if (localStorageShows) {\n setShows(localStorageShows)\n }\n\n\n\n // Set up the user context\n // console.log(user)\n Auth.currentAuthenticatedUser().then((x) => {\n API.get('publicapi', '/user/get').then(userDetails => {\n getShowsWithFavorites(userDetails?.data?.getUserDetails?.favorites ? JSON.parse(userDetails?.data?.getUserDetails?.favorites) : []).then(loadedShows => {\n if (!shows?.some(show => show.isFavorite)) {\n setDefaultShow('_universal')\n }\n setUser({ ...x, ...x.signInUserSession.accessToken.payload, userDetails: userDetails?.data?.getUserDetails }) // if an authenticated user is found, set it into the context\n \n window.localStorage.setItem('memeSRCUserDetails', JSON.stringify({ ...x.signInUserSession.accessToken.payload, userDetails: userDetails?.data?.getUserDetails }))\n window.localStorage.setItem('memeSRCShows', JSON.stringify(loadedShows))\n setShows(loadedShows)\n // console.log(\"Updating Amplify config to use AMAZON_COGNITO_USER_POOLS\")\n // Amplify.configure({\n // \"aws_appsync_authenticationType\": \"AMAZON_COGNITO_USER_POOLS\",\n // });\n }).catch(error => {\n console.log(error)\n })\n }).catch(err => console.log(err))\n }).catch(() => {\n getShowsWithFavorites().then(loadedShows => {\n if (!shows?.some(show => show.isFavorite)) {\n setDefaultShow('_universal')\n }\n setUser(false) // indicate the context is ready but user is not auth'd\n window.localStorage.removeItem('memeSRCUserInfo')\n window.localStorage.setItem('memeSRCShows', JSON.stringify(loadedShows))\n setShows(loadedShows)\n setDefaultShow('_universal')\n }).catch(error => {\n console.log(error)\n })\n });\n }\n }, [location.pathname])\n\n return (\n \n {props.children}\n \n )\n}","import { API, graphqlOperation, Auth } from 'aws-amplify';\nimport { listFavorites } from '../graphql/queries';\n\nconst listAliasesQuery = /* GraphQL */ `\n query ListAliases(\n $filter: ModelAliasFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listAliases(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n createdAt\n updatedAt\n aliasV2ContentMetadataId\n v2ContentMetadata {\n colorMain\n colorSecondary\n createdAt\n description\n emoji\n frameCount\n title\n updatedAt\n status\n id\n version\n }\n __typename\n }\n nextToken\n __typename\n }\n }\n`;\n\nasync function fetchShows() {\n const aliases = await API.graphql({\n query: listAliasesQuery,\n variables: { filter: {}, limit: 250 },\n authMode: 'API_KEY',\n });\n\n const loadedV2Shows = aliases?.data?.listAliases?.items.filter(obj => obj?.v2ContentMetadata) || [];\n\n const finalShows = loadedV2Shows.map(v2Show => ({\n ...v2Show.v2ContentMetadata,\n id: v2Show.id,\n cid: v2Show.v2ContentMetadata.id\n }));\n\n const sortedMetadata = finalShows.sort((a, b) => {\n const titleA = a.title.toLowerCase().replace(/^the\\s+/, '');\n const titleB = b.title.toLowerCase().replace(/^the\\s+/, '');\n return titleA.localeCompare(titleB);\n });\n\n return sortedMetadata;\n}\n\nasync function fetchFavorites() {\n let nextToken = null;\n let allFavorites = [];\n\n do {\n // Disable ESLint check for await-in-loop\n // eslint-disable-next-line no-await-in-loop\n const result = await API.graphql(graphqlOperation(listFavorites, {\n limit: 10,\n nextToken,\n }));\n\n allFavorites = allFavorites.concat(result.data.listFavorites.items);\n nextToken = result.data.listFavorites.nextToken;\n\n } while (nextToken);\n\n return allFavorites;\n}\n\nasync function getShowsWithFavorites(favorites = []) {\n const shows = await fetchShows();\n \n try {\n await Auth.currentAuthenticatedUser();\n // const favorites = await fetchFavorites();\n // const favoriteShowIds = new Set(favorites.map(favorite => favorite.cid));\n\n const showsWithFavorites = shows.map(show => ({\n ...show,\n isFavorite: favorites.includes(show.id)\n }));\n\n return showsWithFavorites;\n } catch (error) {\n // If there's an error fetching favorites (likely due to not being authenticated), return shows without favorites.\n return shows;\n }\n}\n\nexport { getShowsWithFavorites };"],"names":["GuestAuth","props","useNavigate","content","setContent","useState","user","setUser","shows","setShows","JSON","parse","window","localStorage","getItem","defaultShow","setDefaultShow","location","useLocation","useEffect","pathname","userObject","_user$signInUserSessi","_user$signInUserSessi2","userDetails","setItem","stringify","signInUserSession","accessToken","payload","localStorageDefaultShow","localStorageUser","localStorageShows","some","show","isFavorite","Auth","currentAuthenticatedUser","then","x","API","get","_userDetails$data","_userDetails$data$get","_userDetails$data2","_userDetails$data2$ge","getShowsWithFavorites","data","getUserDetails","favorites","loadedShows","_userDetails$data3","_userDetails$data4","catch","error","console","log","err","removeItem","_jsx","UserContext","Provider","value","handleUpdateDefaultShow","handleUpdateUserDetails","newUserDetails","Promise","resolve","reject","children","listAliasesQuery","async","arguments","length","undefined","_aliases$data","_aliases$data$listAli","aliases","graphql","query","variables","filter","limit","authMode","listAliases","items","obj","v2ContentMetadata","map","v2Show","id","cid","sort","a","b","titleA","title","toLowerCase","replace","titleB","localeCompare","fetchShows","includes"],"sourceRoot":""}