{"version":3,"sources":["components/ReadBookStyle.jsx","assets/logo.png","components/Navbar.jsx","utils/data.js","components/Sidebar.jsx","client.js","components/Pin.jsx","components/MasonryLayout.jsx","components/Spinner.jsx","components/Feed.jsx","components/PinDetail.jsx","components/UserProfile.jsx","components/CreatePin.jsx","components/Search.jsx","assets/logowhite.png","assets/image2.jpg","components/Login.jsx","container/Pins.jsx","container/Home.jsx","App.js","index.js","components/ReadBook.jsx"],"names":["Container","styled","div","ReaderContainer","props","fullscreen","Bar","header","breakpoint","ButtonWrapper","LogoWrapper","a","Logo","img","Button","button","GenericButton","CloseIcon","i","FontSizeButton","Navbar","searchTerm","setSearchTerm","user","navigate","useNavigate","className","fontSize","type","onChange","e","target","value","placeholder","onFocus","to","_id","src","image","alt","categories","name","feedQuery","searchQuery","userQuery","userId","isNotActiveStyle","isActiveStyle","Sidebar","closeToggle","handleCloseSidebar","onClick","logo","isActive","slice","length","map","category","userName","client","sanityClient","projectId","process","dataset","apiVersion","useCdn","token","builder","imageUrlBuilder","urlFor","source","Pin","pin","useState","postHovered","setPostHovered","savingPost","setSavingPost","postedBy","localStorage","getItem","JSON","parse","clear","alreadySaved","save","filter","item","googleId","slicedName","onMouseEnter","onMouseLeave","width","url","style","height","stopPropagation","id","patch","setIfMissing","insert","_key","uuidv4","_type","_ref","commit","then","window","location","reload","savePin","delete","breakpointColumnsObj","default","MasonryLayout","pins","breakpointCols","Spinner","message","color","Feed","setPins","loading","setLoading","useParams","categoryId","useEffect","query","fetch","data","ideaName","PinDetail","pinId","pinDetail","setPinDetail","comment","setComment","addingComment","setAddingComment","fetchPinDetails","pinDetailQuery","query1","res","maxWidth","borderRadius","title","about","href","file","asset","comments","activeBtnStyles","notActiveBtnStyles","UserProfile","setUser","text","setText","activeBtn","setActiveBtn","User","createdPinsQuery","userCreatedPinsQuery","savedPinsQuery","userSavedPinsQuery","clientId","render","renderProps","disabled","onLogoutSuccess","cookiePolicy","textContent","CreatePin","setTitle","setAbout","destination","setDestination","fields","setFields","setCategory","imageAsset","setImageAsset","wrongImageType","setWrongImageType","fileAsset","setFileAsset","wrongFileType","setWrongFileType","imageLoading","setImageLoading","selectedFile","files","assets","upload","contentType","filename","document","catch","vlaue","originalFilename","doc","create","setTimeout","Search","toLowerCase","Login","responseGoogle","response","profileObj","imageUrl","setItem","stringify","createIfNotExists","replace","Image","onSuccess","onFailure","appId","callback","picture","disableMobileRedirect","Pins","path","element","Home","toggleSidebar","setToggleSidebar","scrollRef","useRef","userInfo","current","scrollTo","ref","App","ReadBook","ReactDOM","getElementById","storage","global","GlobalStyle","createGlobalStyle","toggleFullscreen","state","setState","prevState","createEvent","initUIEvent","onLocationChanged","onToggleFontSize","nextState","largeText","rendition","themes","getRendition","handleChangeFile","event","results","URL","this","as","pathname","locationChanged","Component"],"mappings":"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","file":"static/js/main.6340b054.chunk.js","sourcesContent":["import styled from 'styled-components';\nimport breakpoint from 'styled-components-breakpoint';\n\nexport const Container = styled.div`\n position: relative;\n width: 100%;\n height: 100%;\n min-height: 100vh;\n background: linear-gradient(to bottom, #f2f2f2 0%, #333 100%);\n overflow: hidden;\n`;\n\nexport const ReaderContainer = styled.div`\n font-size: 16px;\n position: absolute;\n top: ${(props) => (props.fullscreen ? 0 : 135)}px;\n left: ${(props) => (props.fullscreen ? 0 : 1)}rem;\n right: ${(props) => (props.fullscreen ? 0 : 1)}rem;\n bottom: ${(props) => (props.fullscreen ? 0 : 1)}rem;\n transition: all 0.6s ease;\n ${(props) => !props.fullscreen && '0 0 5px rgba(0,0,0,.3);'};\n`;\n\nexport const Bar = styled.header`\n position: absolute;\n top: 10px;\n left: 20px;\n right: 20px;\n ${breakpoint('tablet')`\n display: flex;\n align-items: flex-end;\n `};\n`;\n\nexport const ButtonWrapper = styled.div`\n ${breakpoint('mobile')`\n display: flex;\n justify-content: center;\n align-items: baseline;\n padding-top: 0.5rem;\n `};\n`;\n\nexport const LogoWrapper = styled.a`\n ${breakpoint('tablet')`\n margin-right: auto;\n `};\n`;\n\nexport const Logo = styled.img`\n width: 250px;\n height: auto;\n display: block;\n margin: 0 auto 0px;\n ${breakpoint('tablet')`\n width: 330px;\n height: 104px;\n display: inline-block;\n margin-left: 2px;\n `};\n`;\n\nconst Button = styled.button`\n font-family: inherit;\n font-size: inherit;\n border: none;\n outline: none;\n cursor: pointer;\n user-select: none;\n appearance: none;\n background: none;\n`;\n\nexport const GenericButton = styled(Button)`\n color: #808080;\n font-size: 12px;\n display: inline-block;\n margin-left: 1rem;\n ${breakpoint('tablet')`\n font-size: 16px;\n \n `};\n`;\n\nexport const CloseIcon = styled.i`\n vertical-align: middle;\n display: inline-block;\n width: 2rem;\n height: 2rem;\n background: #666;\n margin-left: 5px;\n border-radius: 50%;\n position: relative;\n transform: rotate(45deg);\n &:before,\n &:after {\n content: '';\n position: absolute;\n top: 50%;\n left: 50%;\n width: 60%;\n height: 2px;\n background: #fff;\n margin-left: -30%;\n margin-top: -1px;\n border-radius: 1px;\n }\n &:after {\n transform: rotate(-90deg);\n }\n`;\n\nexport const FontSizeButton = styled(Button)`\n position: fixed;\n bottom: 1.5rem;\n right: 1.5rem;\n z-index: 10;\n background: #eee;\n border-radius: 2px;\n padding: 0.5rem;\n`;\n","export default __webpack_public_path__ + \"static/media/logo.8c75016e.png\";","import React from 'react';\nimport { Link, useNavigate } from 'react-router-dom';\nimport { IoMdAdd, IoMdSearch } from 'react-icons/io';\n\nconst Navbar = ({ searchTerm, setSearchTerm, user }) => {\n const navigate = useNavigate();\n\n if (user) {\n return (\n
\n
\n \n setSearchTerm(e.target.value)}\n placeholder=\"Search\"\n value={searchTerm}\n onFocus={() => navigate('/search')}\n className=\"p-2 w-full bg-white outline-none\"\n />\n
\n
\n \n \"user-pic\"\n \n \n \n \n
\n
\n );\n }\n\n return null;\n};\n\nexport default Navbar;\n","export const categories = [\n {\n name: 'Javascript',\n image: 'https://upload.wikimedia.org/wikipedia/commons/thumb/9/99/Unofficial_JavaScript_logo_2.svg/480px-Unofficial_JavaScript_logo_2.svg.png',\n },\n {\n name: 'python',\n image: 'https://upload.wikimedia.org/wikipedia/commons/thumb/c/c3/Python-logo-notext.svg/1200px-Python-logo-notext.svg.png',\n },\n {\n name: 'web development',\n image: 'https://images.pexels.com/photos/2004161/pexels-photo-2004161.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500',\n },\n {\n name: 'hacking',\n image: 'https://images.pexels.com/photos/1089438/pexels-photo-1089438.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500',\n },\n {\n name: 'c++',\n image: 'https://upload.wikimedia.org/wikipedia/commons/thumb/1/18/ISO_C%2B%2B_Logo.svg/1200px-ISO_C%2B%2B_Logo.svg.png',\n },\n {\n name: 'web3 development',\n image: 'https://i.njkhanh.com/img/has-anyone-seen-web3-a-complete-roadmap-and-free-resources-to-become-web3-developer.png?v=1641696580',\n },\n {\n name: 'cyber security',\n image: 'https://static.kent.ac.uk/nexus/ems/1413.jpg',\n },\n {\n name: 'Artificial intelligent',\n image: 'https://businesspost.ng/wp-content/uploads/2020/09/Artificial-Intelligence.jpg',\n },\n {\n name: 'Robotics',\n image: 'https://www.iotworldtoday.com/files/2020/05/GettyImages-1184804468-789x432.jpg',\n }, {\n name: 'data science',\n image: 'https://www.simplilearn.com/ice9/free_resources_article_thumb/Data-Science-vs.-Big-Data-vs.jpg',\n },\n {\n name: 'java',\n image: 'https://upload.wikimedia.org/wikipedia/en/3/30/Java_programming_language_logo.svg',\n }, {\n name: 'app development',\n image: 'https://www.designveloper.com/wp-content/uploads/2020/06/1_JUSbO0xkXPf2jtYLMSAZ8w.jpeg',\n },\n {\n name: 'others',\n image: 'https://i.pinimg.com/236x/2e/63/c8/2e63c82dfd49aca8dccf9de3f57e8588.jpg',\n },\n];\n\nexport const feedQuery = `*[_type == \"pin\"] | order(_createdAt desc) {\n image{\n asset->{\n url\n }\n },\n file{\n asset->{\n url\n }\n },\n _id,\n destination,\n postedBy->{\n _id,\n userName,\n image\n },\n save[]{\n _key,\n postedBy->{\n _id,\n userName,\n image\n },\n },\n } `;\n\nexport const pinDetailQuery = (pinId) => {\n const query = `*[_type == \"pin\" && _id == '${pinId}']{\n image{\n asset->{\n url\n }\n },\n file{\n asset->{\n url\n }\n }, \n _id,\n title, \n about,\n category,\n destination,\n postedBy->{\n _id,\n userName,\n image\n },\n save[]{\n postedBy->{\n _id,\n userName,\n image\n },\n },\n comments[]{\n comment,\n _key,\n postedBy->{\n _id,\n userName,\n image\n },\n }\n }`;\n return query;\n};\n\nexport const pinDetailMorePinQuery = (pin) => {\n const query = `*[_type == \"pin\" && category == '${pin.category}' && _id != '${pin._id}' ]{\n image{\n asset->{\n url\n }\n },\n _id,\n destination,\n postedBy->{\n _id,\n userName,\n image\n },\n save[]{\n _key,\n postedBy->{\n _id,\n userName,\n image\n },\n },\n }`;\n return query;\n};\n\nexport const searchQuery = (searchTerm) => {\n const query = `*[_type == \"pin\" && title match '${searchTerm}*' || category match '${searchTerm}*' || about match '${searchTerm}*']{\n image{\n asset->{\n url\n }\n },\n _id,\n destination,\n postedBy->{\n _id,\n userName,\n image\n },\n save[]{\n _key,\n postedBy->{\n _id,\n userName,\n image\n },\n },\n }`;\n return query;\n};\n\nexport const userQuery = (userId) => {\n const query = `*[_type == \"user\" && _id == '${userId}']`;\n return query;\n};\n\nexport const userCreatedPinsQuery = (userId) => {\n const query = `*[ _type == 'pin' && userId == '${userId}'] | order(_createdAt desc){\n image{\n asset->{\n url\n }\n },\n _id,\n destination,\n postedBy->{\n _id,\n userName,\n image\n },\n save[]{\n postedBy->{\n _id,\n userName,\n image\n },\n },\n }`;\n return query;\n};\n\nexport const userSavedPinsQuery = (userId) => {\n const query = `*[_type == 'pin' && '${userId}' in save[].userId ] | order(_createdAt desc) {\n image{\n asset->{\n url\n }\n },\n _id,\n destination,\n postedBy->{\n _id,\n userName,\n image\n },\n save[]{\n postedBy->{\n _id,\n userName,\n image\n },\n },\n }`;\n return query;\n};\n","import React from 'react';\nimport { NavLink, Link } from 'react-router-dom';\nimport { RiHomeFill } from 'react-icons/ri';\nimport { IoIosArrowForward } from 'react-icons/io';\nimport logo from '../assets/logo.png';\nimport { categories } from '../utils/data';\n\nconst isNotActiveStyle = 'flex items-center px-5 gap-3 text-gray-500 hover:text-black transition-all duration-200 ease-in-out capitalize';\nconst isActiveStyle = 'flex items-center px-5 gap-3 font-extrabold border-r-2 border-black transition-all duration-200 ease-in-out capitalize';\n\nconst Sidebar = ({ closeToggle, user }) => {\n const handleCloseSidebar = () => {\n if (closeToggle) closeToggle(false);\n };\n\n return (\n
\n
\n \n \"logo\"\n \n
\n\n (isActive ? isActiveStyle : isNotActiveStyle)}\n onClick={handleCloseSidebar}\n >\n \n Home\n \n

Discover cateogries

\n {categories.slice(0, categories.length - 1).map((category) => (\n (isActive ? isActiveStyle : isNotActiveStyle)}\n onClick={handleCloseSidebar}\n key={category.name}\n >\n \n {category.name}\n \n ))}\n
\n
\n {user && (\n \n \"user-profile\"\n

{user.userName}

\n \n \n )}\n
\n );\n};\n\nexport default Sidebar;\n","import sanityClient from '@sanity/client';\nimport imageUrlBuilder from '@sanity/image-url';\n\nexport const client = sanityClient({\n projectId: process.env.REACT_APP_SANITY_PROJECT_ID,\n dataset: 'production',\n apiVersion: '2021-11-16',\n useCdn: true,\n token: process.env.REACT_APP_SANITY_TOKEN,\n});\n\nconst builder = imageUrlBuilder(client);\n\nexport const urlFor = (source) => builder.image(source);\n","import React, { useState } from 'react';\nimport { Link, useNavigate } from 'react-router-dom';\nimport { v4 as uuidv4 } from 'uuid';\nimport { AiTwotoneDelete } from 'react-icons/ai';\n\nimport { client, urlFor } from '../client';\n\nconst Pin = ({ pin }) => {\n const [postHovered, setPostHovered] = useState(false);\n const [savingPost, setSavingPost] = useState(false);\n\n const navigate = useNavigate();\n\n const { postedBy, image, _id } = pin;\n\n const user = localStorage.getItem('user') !== 'undefined' ? JSON.parse(localStorage.getItem('user')) : localStorage.clear();\n\n const deletePin = (id) => {\n client\n .delete(id)\n .then(() => {\n window.location.reload();\n });\n };\n\n let alreadySaved = pin?.save?.filter((item) => item?.postedBy?._id === user?.googleId);\n\n alreadySaved = alreadySaved?.length > 0 ? alreadySaved : [];\n\n const savePin = (id) => {\n if (alreadySaved?.length === 0) {\n setSavingPost(true);\n\n client\n .patch(id)\n .setIfMissing({ save: [] })\n .insert('after', 'save[-1]', [{\n _key: uuidv4(),\n userId: user?.googleId,\n postedBy: {\n _type: 'postedBy',\n _ref: user?.googleId,\n },\n }])\n .commit()\n .then(() => {\n window.location.reload();\n setSavingPost(false);\n });\n }\n };\n\n const slicedName = `${postedBy?.userName.slice(0, 30)}...`;\n\n return (\n
\n setPostHovered(true)}\n onMouseLeave={() => setPostHovered(false)}\n onClick={() => navigate(`/pin-detail/${_id}`)}\n className=\" relative cursor-zoom-in w-auto hover:shadow-lg rounded-lg overflow-hidden transition-all duration-500 ease-in-out\"\n >\n \"user-post\"\n {postHovered && (\n \n
\n {alreadySaved?.length !== 0 ? (\n \n ) : (\n {\n e.stopPropagation();\n savePin(_id);\n }}\n type=\"button\"\n className=\"bg-red-500 opacity-70 hover:opacity-100 text-white font-bold px-5 py-1 text-base rounded-3xl hover:shadow-md outline-none\"\n >\n {pin?.save?.length} {savingPost ? 'Saving' : 'Save'}\n \n )}\n
\n
\n {postedBy?._id === user?.googleId && (\n {\n e.stopPropagation();\n deletePin(_id);\n }}\n className=\"bg-white p-2 rounded-full w-8 h-8 flex items-center justify-center text-dark opacity-75 hover:opacity-100 outline-none\"\n >\n \n \n )}\n
\n
\n )}\n \n \n \n

{postedBy?.userName.length > '30' ? slicedName : postedBy?.userName}

\n \n \n );\n};\n\nexport default Pin;\n","import React from 'react';\nimport Masonry from 'react-masonry-css';\nimport Pin from './Pin';\n\nconst breakpointColumnsObj = {\n default: 4,\n 3000: 6,\n 2000: 5,\n 1200: 3,\n 1000: 2,\n 500: 2,\n};\n\nconst MasonryLayout = ({ pins }) => (\n \n {pins?.map((pin) => )}\n \n);\n\nexport default MasonryLayout;\n","import React from 'react';\nimport Loader from 'react-loader-spinner';\n\nfunction Spinner({ message }) {\n return (\n
\n \n\n

{message}

\n
\n );\n}\n\nexport default Spinner;\n","import React, { useState, useEffect } from 'react';\nimport { useParams, Link } from 'react-router-dom';\nimport { client } from '../client';\nimport { feedQuery, searchQuery } from '../utils/data';\nimport MasonryLayout from './MasonryLayout';\nimport Spinner from './Spinner';\n\nconst Feed = ({ user }) => {\n const [pins, setPins] = useState();\n const [loading, setLoading] = useState(false);\n const { categoryId, userId } = useParams();\n\n useEffect(() => {\n if (categoryId) {\n setLoading(true);\n const query = searchQuery(categoryId);\n client.fetch(query).then((data) => {\n setPins(data);\n setLoading(false);\n });\n } else {\n setLoading(true);\n\n client.fetch(feedQuery).then((data) => {\n setPins(data);\n setLoading(false);\n });\n }\n }, [categoryId]);\n const ideaName = categoryId || 'new';\n if (loading) {\n return (\n \n );\n }\n\n return (\n
\n {!categoryId && !userId ? (\n
\n
\n
Grow your career as a developer
\n
Learn programming and web development the easy way! Get unlimited access to all of our Ebooks.
\n
\n
\n \n Get started\n \n
\n
\n
\n
\n ) : null}\n {pins && (\n \n )}\n
\n );\n};\n\nexport default Feed;\n","import React, { useEffect, useState } from 'react';\nimport { AiOutlineRead, AiFillLike } from 'react-icons/ai';\nimport { Link, useParams } from 'react-router-dom';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport { client, urlFor } from '../client';\nimport MasonryLayout from './MasonryLayout';\nimport { pinDetailMorePinQuery, pinDetailQuery } from '../utils/data';\nimport Spinner from './Spinner';\n\nconst PinDetail = ({ user }) => {\n const { pinId } = useParams();\n const [pins, setPins] = useState();\n const [pinDetail, setPinDetail] = useState();\n const [comment, setComment] = useState('');\n const [addingComment, setAddingComment] = useState(false);\n const [savingPost, setSavingPost] = useState(false);\n\n const fetchPinDetails = () => {\n const query = pinDetailQuery(pinId);\n\n if (query) {\n client.fetch(`${query}`).then((data) => {\n setPinDetail(data[0]);\n if (data[0]) {\n const query1 = pinDetailMorePinQuery(data[0]);\n client.fetch(query1).then((res) => {\n setPins(res);\n });\n }\n });\n }\n };\n\n useEffect(() => {\n fetchPinDetails();\n }, [pinId]);\n\n let alreadySaved = pinDetail?.save?.filter((item) => item?.postedBy?._id === user?.googleId);\n\n alreadySaved = alreadySaved?.length > 0 ? alreadySaved : [];\n\n const savePin = (id) => {\n if (alreadySaved?.length === 0) {\n setSavingPost(true);\n\n client\n .patch(id)\n .setIfMissing({ save: [] })\n .insert('after', 'save[-1]', [{\n _key: uuidv4(),\n userId: user?.googleId,\n postedBy: {\n _type: 'postedBy',\n _ref: user?.googleId,\n },\n }])\n .commit()\n .then(() => {\n window.location.reload();\n setSavingPost(false);\n });\n }\n };\n\n const addComment = () => {\n if (comment) {\n setAddingComment(true);\n\n client\n .patch(pinId)\n .setIfMissing({ comments: [] })\n .insert('after', 'comments[-1]', [{ comment, _key: uuidv4(), postedBy: { _type: 'postedBy', _ref: user._id } }])\n .commit()\n .then(() => {\n fetchPinDetails();\n setComment('');\n setAddingComment(false);\n });\n }\n };\n\n if (!pinDetail) {\n return (\n \n );\n }\n\n return (\n <>\n {pinDetail && (\n
\n
\n \n
\n
\n
\n

\n {pinDetail.title}\n

\n

{pinDetail.about}

\n
\n
\n \n Read\n \n {alreadySaved?.length !== 0\n ? (\n
\n
\n {pinDetail?.save?.length} \n
\n \n Liked\n \n
\n )\n : (\n
\n
\n {pinDetail?.save?.length ? pinDetail?.save?.length : '0'} \n
\n {\n e.stopPropagation();\n savePin(pinDetail?._id);\n }}\n type=\"button\"\n className=\"bg-red-500 rounded-lg pl-3 pr-3 pt-2 pb-2 text-xl flex items-center justify-center text-white opacity-100 hover:opacity-100\"\n >\n {savingPost ? 'updating..' : 'Like'}\n \n
\n )}\n
\n \n \"user-profile\"\n

{pinDetail?.postedBy.userName}

\n \n

Comments

\n
\n {pinDetail?.comments?.map((item) => (\n
\n \n
\n

{item.postedBy?.userName}

\n

{item.comment}

\n
\n
\n ))}\n
\n
\n \n \"user-profile\"\n \n setComment(e.target.value)}\n />\n \n {addingComment ? 'Posting...' : 'Post'}\n \n
\n
\n
\n )}\n {pins?.length > 0 && (\n

\n More like this\n

\n )}\n {pins ? (\n \n ) : (\n \n )}\n \n );\n};\n\nexport default PinDetail;\n","import React, { useEffect, useState } from 'react';\nimport { AiOutlineLogout } from 'react-icons/ai';\nimport { useParams, useNavigate, Link } from 'react-router-dom';\nimport { GoogleLogout } from 'react-google-login';\n\nimport { userCreatedPinsQuery, userQuery, userSavedPinsQuery } from '../utils/data';\nimport { client } from '../client';\nimport MasonryLayout from './MasonryLayout';\nimport Spinner from './Spinner';\n\nconst activeBtnStyles = 'bg-red-500 text-white font-bold p-2 rounded-full w-20 outline-none';\nconst notActiveBtnStyles = 'bg-primary mr-4 text-black font-bold p-2 rounded-full w-20 outline-none';\n\nconst UserProfile = () => {\n const [user, setUser] = useState();\n const [pins, setPins] = useState();\n const [text, setText] = useState('Created');\n const [activeBtn, setActiveBtn] = useState('created');\n const navigate = useNavigate();\n const { userId } = useParams();\n\n const User = localStorage.getItem('user') !== 'undefined' ? JSON.parse(localStorage.getItem('user')) : localStorage.clear();\n\n useEffect(() => {\n const query = userQuery(userId);\n client.fetch(query).then((data) => {\n setUser(data[0]);\n });\n }, [userId]);\n\n useEffect(() => {\n if (text === 'Created') {\n const createdPinsQuery = userCreatedPinsQuery(userId);\n\n client.fetch(createdPinsQuery).then((data) => {\n setPins(data);\n });\n } else {\n const savedPinsQuery = userSavedPinsQuery(userId);\n\n client.fetch(savedPinsQuery).then((data) => {\n setPins(data);\n });\n }\n }, [text, userId]);\n\n const logout = () => {\n localStorage.clear();\n\n navigate('/login');\n };\n\n if (!user) return ;\n\n return (\n
\n
\n
\n
\n \n \n
\n

\n {user.userName}\n

\n
\n {userId === User._id && (\n (\n \n \n \n )}\n onLogoutSuccess={logout}\n cookiePolicy=\"single_host_origin\"\n />\n )}\n
\n
\n
\n {\n setText(e.target.textContent);\n setActiveBtn('created');\n }}\n className={`${activeBtn === 'created' ? activeBtnStyles : notActiveBtnStyles}`}\n >\n Created\n \n {\n setText(e.target.textContent);\n setActiveBtn('saved');\n }}\n className={`${activeBtn === 'saved' ? activeBtnStyles : notActiveBtnStyles}`}\n >\n Saved\n \n
\n\n
\n \n
\n\n {pins?.length === 0 && (\n
\n
\n No Ebook Found!\n
\n
\n
\n \n Create\n \n
\n
\n \n Explore\n \n
\n
\n
\n )}\n
\n\n
\n );\n};\n\nexport default UserProfile;\n","import React, { useState } from 'react';\nimport { AiOutlineCloudUpload } from 'react-icons/ai';\nimport { useNavigate } from 'react-router-dom';\nimport { MdDelete } from 'react-icons/md';\n\nimport { categories } from '../utils/data';\nimport { client } from '../client';\nimport Spinner from './Spinner';\n\nconst CreatePin = ({ user }) => {\n const [title, setTitle] = useState('');\n const [about, setAbout] = useState('');\n const [loading, setLoading] = useState(false);\n const [destination, setDestination] = useState();\n const [fields, setFields] = useState();\n const [category, setCategory] = useState();\n const [imageAsset, setImageAsset] = useState();\n const [wrongImageType, setWrongImageType] = useState(false);\n const [fileAsset, setFileAsset] = useState();\n const [wrongFileType, setWrongFileType] = useState(false);\n const [imageLoading, setImageLoading] = useState(false);\n\n const navigate = useNavigate();\n\n const uploadImage = (e) => {\n const selectedFile = e.target.files[0];\n // uploading asset to sanity\n if (selectedFile.type === 'image/png' || selectedFile.type === 'image/svg' || selectedFile.type === 'image/jpeg' || selectedFile.type === 'image/gif' || selectedFile.type === 'image/tiff') {\n setWrongImageType(false);\n setImageLoading(true);\n client.assets\n .upload('image', selectedFile, { contentType: selectedFile.type, filename: selectedFile.name })\n .then((document) => {\n setImageAsset(document);\n setImageLoading(false);\n })\n .catch(() => {\n });\n } else {\n setLoading(false);\n setWrongImageType(true);\n }\n };\n const uploadFile = (e) => {\n const selectedFile = e.target.files[0];\n // uploading asset to sanity\n if (selectedFile.type === 'application/epub+zip') {\n setWrongFileType(false);\n setLoading(true);\n client.assets\n .upload('file', selectedFile, { contentType: selectedFile.type, filename: selectedFile.name })\n .then((document) => {\n setFileAsset(document);\n setLoading(false);\n })\n .catch(() => {\n });\n } else {\n setLoading(false);\n setWrongFileType(true);\n }\n };\n\n const savePin = () => {\n if (title && about && destination && imageAsset?._id && category && fileAsset._id) {\n const doc = {\n _type: 'pin',\n title,\n about,\n destination,\n image: {\n _type: 'image',\n asset: {\n _type: 'reference',\n _ref: imageAsset?._id,\n },\n },\n file: {\n _type: 'file',\n asset: {\n _type: 'reference',\n _ref: fileAsset?._id,\n },\n },\n userId: user._id,\n postedBy: {\n _type: 'postedBy',\n _ref: user._id,\n },\n category,\n };\n client.create(doc).then(() => {\n navigate('/');\n });\n } else {\n setFields(true);\n setTimeout(\n () => {\n setFields(false);\n },\n 10000,\n );\n }\n };\n return (\n
\n {fields && (\n

Please add all fields.

\n )}\n
\n
\n
\n {imageLoading && (\n \n )}\n {\n wrongImageType && (\n

It's wrong image file type.

\n )\n }\n {!imageAsset ? (\n // eslint-disable-next-line jsx-a11y/label-has-associated-control\n \n ) : (\n
\n \n setImageAsset(null)}\n >\n \n \n
\n )}\n
\n
\n
\n setTitle(e.target.value)}\n placeholder=\"Add your title\"\n className=\"outline-none text-2xl sm:text-3xl font-bold border-b-2 border-gray-200 p-2\"\n />\n {user && (\n
\n \n

{user.userName}

\n
\n )}\n setAbout(e.target.value)}\n placeholder=\"Tell everyone what your Ebook is about\"\n className=\"outline-none text-base sm:text-lg border-b-2 border-gray-200 p-2\"\n />\n setDestination(e.target.value)}\n placeholder=\"Add a destination link\"\n className=\"outline-none text-base sm:text-lg border-b-2 border-gray-200 p-2\"\n />\n\n
\n
\n

Choose Ebook Category

\n {\n setCategory(e.target.value);\n }}\n className=\"outline-none w-4/5 text-base border-b-2 border-gray-200 p-2 rounded-md cursor-pointer\"\n >\n \n {categories.map((item) => (\n \n ))}\n \n
\n
\n
\n
\n {loading && (\n \n )}\n {wrongFileType && (\n

It's wrong file type.

\n )}\n {!fileAsset ? (\n // eslint-disable-next-line jsx-a11y/label-has-associated-control\n \n ) : (\n
\n

{fileAsset?.originalFilename}

\n setFileAsset(null)}\n >\n \n \n
\n )}\n
\n
\n
\n
\n \n Save Ebook\n \n
\n
\n
\n
\n
\n );\n};\n\nexport default CreatePin;\n","import React, { useEffect, useState } from 'react';\n\nimport MasonryLayout from './MasonryLayout';\nimport { client } from '../client';\nimport { feedQuery, searchQuery } from '../utils/data';\nimport Spinner from './Spinner';\n\nconst Search = ({ searchTerm }) => {\n const [pins, setPins] = useState();\n const [loading, setLoading] = useState(false);\n\n useEffect(() => {\n if (searchTerm !== '') {\n setLoading(true);\n const query = searchQuery(searchTerm.toLowerCase());\n client.fetch(query).then((data) => {\n setPins(data);\n setLoading(false);\n });\n } else {\n client.fetch(feedQuery).then((data) => {\n setPins(data);\n setLoading(false);\n });\n }\n }, [searchTerm]);\n\n return (\n
\n\n {loading && }\n {pins?.length !== 0 && }\n {pins?.length === 0 && searchTerm !== '' && !loading && (\n
No Ebook Found!
\n )}\n
\n );\n};\n\nexport default Search;\n","export default __webpack_public_path__ + \"static/media/logowhite.82730ab8.png\";","export default __webpack_public_path__ + \"static/media/image2.3eaf9e8f.jpg\";","import React from 'react';\nimport GoogleLogin from 'react-google-login';\nimport { useNavigate } from 'react-router-dom';\nimport { FcGoogle } from 'react-icons/fc';\nimport { GrFacebookOption } from 'react-icons/gr';\nimport FacebookLogin from 'react-facebook-login/dist/facebook-login-render-props';\nimport logo from '../assets/logowhite.png';\nimport Image from '../assets/image2.jpg';\n\nimport { client } from '../client';\n\nconst Login = () => {\n const navigate = useNavigate();\n const responseFacebook = (response) => {\n const { name, id } = response;\n const doc = {\n _id: id,\n _type: 'user',\n userName: name,\n image: response.picture.data.url,\n };\n localStorage.setItem('user', JSON.stringify(doc));\n client.createIfNotExists(doc).then(() => {\n navigate('/', { replace: true });\n });\n };\n\n const responseGoogle = (response) => {\n const { name, googleId, imageUrl } = response.profileObj;\n const doc = {\n _id: googleId,\n _type: 'user',\n userName: name,\n image: imageUrl,\n };\n localStorage.setItem('user', JSON.stringify(doc));\n client.createIfNotExists(doc).then(() => {\n navigate('/', { replace: true });\n });\n };\n\n return (\n
\n
\n \n\n
\n
\n \n
\n\n
\n (\n \n Sign in with google\n \n )}\n onSuccess={responseGoogle}\n onFailure={responseGoogle}\n cookiePolicy=\"single_host_origin\"\n />\n
\n
\n (\n \n Sign in with facebook\n \n )}\n />\n
\n
\n
\n
\n );\n};\n\nexport default Login;\n","import React, { useState } from 'react';\nimport { Routes, Route } from 'react-router-dom';\n\nimport { Navbar, Feed, PinDetail, CreatePin, Search } from '../components';\n\nconst Pins = ({ user }) => {\n const [searchTerm, setSearchTerm] = useState('');\n\n return (\n
\n
\n \n
\n
\n \n } />\n } />\n } />\n } />\n } />\n } />\n \n
\n
\n );\n};\n\nexport default Pins;\n","import React, { useState, useRef, useEffect } from 'react';\nimport { MdMenu } from 'react-icons/md';\nimport { AiFillCloseCircle } from 'react-icons/ai';\nimport { Link, Route, Routes } from 'react-router-dom';\n\nimport { Sidebar, UserProfile } from '../components';\nimport { userQuery } from '../utils/data';\nimport { client } from '../client';\nimport Pins from './Pins';\nimport logo from '../assets/logo.png';\n\nconst Home = () => {\n const [toggleSidebar, setToggleSidebar] = useState(false);\n const [user, setUser] = useState();\n const scrollRef = useRef(null);\n\n const userInfo = localStorage.getItem('user') !== 'undefined' ? JSON.parse(localStorage.getItem('user')) : localStorage.clear();\n\n useEffect(() => {\n const query = userQuery(userInfo?._id);\n\n client.fetch(query).then((data) => {\n setUser(data[0]);\n });\n }, []);\n\n useEffect(() => {\n scrollRef.current.scrollTo(0, 0);\n });\n\n return (\n
\n
\n \n
\n
\n
\n setToggleSidebar(true)} />\n \n \"logo\"\n \n \n \"user-pic\"\n \n
\n {toggleSidebar && (\n
\n
\n setToggleSidebar(false)} />\n
\n \n
\n )}\n
\n
\n \n } />\n } />\n \n
\n
\n );\n};\n\nexport default Home;\n","import React, { useEffect } from 'react';\nimport { Routes, Route, useNavigate } from 'react-router-dom';\n\nimport { Login, ReadBook } from './components';\nimport Home from './container/Home';\n\nconst App = () => {\n const navigate = useNavigate();\n\n useEffect(() => {\n const User = localStorage.getItem('user') !== 'undefined' ? JSON.parse(localStorage.getItem('user')) : localStorage.clear();\n\n if (!User) navigate('/login');\n }, []);\n\n return (\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 './index.css';\n\nReactDOM.render(\n \n \n ,\n document.getElementById('root'),\n);\n\n","import React, { Component } from 'react';\nimport { createGlobalStyle } from 'styled-components';\nimport FileReaderInput from 'react-file-reader-input';\nimport { ReactReader } from 'react-reader';\nimport logo from '../assets/logo.png';\n\nimport {\n Container,\n ReaderContainer,\n Bar,\n LogoWrapper,\n Logo,\n GenericButton,\n CloseIcon,\n FontSizeButton,\n ButtonWrapper,\n} from './ReadBookStyle';\n\nconst storage = global.localStorage || null;\n\nconst GlobalStyle = createGlobalStyle`\n * {\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n margin: 0;\n padding: 0;\n color: inherit;\n font-size: inherit;\n font-weight: 300;\n line-height: 1.4;\n word-break: break-word;\n }\n html {\n font-size: 62.5%;\n }\n body {\n margin: 0;\n padding: 0;\n min-height: 100vh;\n font-size: 1.8rem;\n background: #333;\n position: absolute;\n height: 100%;\n width: 100%;\n color: #fff;\n }\n`;\n\nclass ReadBook extends Component {\n constructor(props) {\n super(props);\n this.state = {\n fullscreen: false,\n location:\n storage && storage.getItem('epub-location')\n ? storage.getItem('epub-location')\n : 2,\n largeText: false,\n };\n this.rendition = null;\n this.url = new URL(window.location.href);\n }\n\n toggleFullscreen = () => {\n const { fullscreen } = this.state;\n this.setState(\n (prevState) => ({\n ...prevState,\n fullscreen: !fullscreen,\n }),\n () => {\n setTimeout(() => {\n const evt = document.createEvent('UIEvents');\n evt.initUIEvent('resize', true, false, global, 0);\n }, 1000);\n },\n );\n }\n\n onLocationChanged = (location) => {\n this.setState(\n {\n location,\n },\n () => {\n if (storage) {\n storage.setItem('epub-location', location);\n }\n },\n );\n }\n\n onToggleFontSize = () => {\n const { largeText } = this.state;\n const nextState = !largeText;\n this.setState(\n (prevState) => ({\n ...prevState,\n largeText: nextState,\n }),\n () => {\n this.rendition.themes.fontSize(nextState ? '100%' : '100%');\n },\n );\n }\n\n getRendition = (rendition) => {\n // Set inital font-size, and add a pointer to rendition for later updates\n const { largeText } = this.state;\n this.rendition = rendition;\n rendition.themes.fontSize(largeText ? '140%' : '100%');\n }\n\n handleChangeFile = (event, results) => {\n if (results.length > 0) {\n const [file] = results[0];\n if (file.type !== 'application/epub+zip') {\n return 'Unsupported type';\n }\n this.setState({\n location: null,\n });\n }\n return null;\n };\n\n render() {\n const { fullscreen, location } = this.state;\n return (\n \n \n \n \n \n \n \n \n read in full screen?\n \n \n Use full browser window\n \n \n \n \n \n \n \n Toggle font-size\n \n \n \n );\n }\n}\n\nexport default ReadBook;\n"],"sourceRoot":""}