{"version":3,"file":"User-DQJAh8f7.js","sources":["../../../app/javascript/entrypoints/User/User.jsx"],"sourcesContent":["import React, { useState, useEffect } from \"react\";\nimport { Helmet } from \"react-helmet\";\nimport {\n collection,\n query,\n where,\n getDocs,\n getDoc,\n doc,\n} from \"firebase/firestore\";\nimport { Box, Typography, CircularProgress, Avatar } from \"@mui/material\";\nimport { colors } from \"../lib/theme\";\nimport { db } from \"../../shared/firebase\";\nimport { useAuth } from \"../../shared/useAuth\";\nimport ContainerBox from \"../../shared/ContainerBox\";\nimport AlbumList from \"../../shared/AlbumList\";\n\nconst reactRootDataset = document.getElementById(\"react-root\").dataset;\n\nconst User = () => {\n const { user: currentUser, loading: userLoading } = useAuth();\n\n const userId = reactRootDataset.userId;\n\n const [user, setUser] = useState(null);\n const [albums, setAlbums] = useState([]);\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState(null);\n const [sharedAlbums, setSharedAlbums] = useState([]);\n\n useEffect(() => {\n const fetchUserAndAlbums = async () => {\n try {\n // Fetch user data\n const userDoc = await getDoc(doc(db, \"users\", userId));\n if (userDoc.exists()) {\n setUser(userDoc.data());\n } else {\n setError(\"User not found\");\n }\n\n // Fetch albums with privacyLevel 2\n const albumsRef = collection(db, \"albums\");\n const q = query(\n albumsRef,\n where(\"userId\", \"==\", userId),\n where(\"privacyLevel\", \"==\", 2)\n );\n const albumsSnapshot = await getDocs(q);\n const albumsList = albumsSnapshot.docs.map((doc) => {\n const albumData = { id: doc.id, ...doc.data() };\n console.log('Album data:', albumData);\n return albumData;\n });\n setAlbums(albumsList);\n\n // Fetch albums shared with the current user\n if (currentUser) {\n const sharedAlbumsRef = collection(db, \"albums\");\n const sharedQuery = query(\n sharedAlbumsRef,\n where(\"sharedWith\", \"array-contains\", currentUser.uid),\n where(\"userId\", \"==\", userId)\n );\n const sharedAlbumsSnapshot = await getDocs(sharedQuery);\n const sharedAlbumsList = sharedAlbumsSnapshot.docs.map((doc) => ({\n id: doc.id,\n ...doc.data(),\n }));\n setSharedAlbums(sharedAlbumsList);\n }\n\n setLoading(false);\n } catch (err) {\n console.error(\"Error fetching data:\", err);\n setError(\"An error occurred while fetching data\");\n setLoading(false);\n }\n };\n\n fetchUserAndAlbums();\n }, [userId, currentUser]);\n\n if (loading) {\n return (\n \n \n \n );\n }\n\n if (error) {\n return {error};\n }\n\n return (\n <>\n \n \n \n {user ? `${user.firstName} ${user.lastName} - ` : \"\"} - Golden Record\n \n \n \n {user && user.profilePhotoURL && (\n \n )}\n \n {user ? `${user.firstName} ${user.lastName}` : \"User\"}\n \n \n {}} currentUser={user} />\n\n {currentUser && currentUser.uid !== userId && (\n <>\n {}} currentUser={user} />\n >\n )}\n \n >\n );\n};\n\nexport default User;\n"],"names":["reactRootDataset","User","currentUser","userLoading","useAuth","userId","user","setUser","useState","albums","setAlbums","loading","setLoading","error","setError","sharedAlbums","setSharedAlbums","useEffect","userDoc","getDoc","doc","db","albumsRef","collection","q","query","where","albumsList","getDocs","albumData","sharedAlbumsRef","sharedQuery","sharedAlbumsList","err","React","Box","CircularProgress","colors","Typography","ContainerBox","Helmet","Avatar","AlbumList"],"mappings":"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"}