{"version":3,"file":"static/chunks/9918-6bee5b2bfee91fd5.js","mappings":"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","sources":["webpack://_N_E/./components/Card/PostsCardFeed/PostsCardFeedV2.tsx","webpack://_N_E/./components/Not-Found/Not-Found.tsx","webpack://_N_E/./components/Not-Found/index.ts","webpack://_N_E/./components/Spinner/Spinner.tsx","webpack://_N_E/./components/Spinner/index.ts"],"sourcesContent":["import { Box, Column } from \"../../styled\";\nimport { PollCard } from \"../PostsCardPoll/Components\";\nimport { ReviewPost } from \"../ReviewPost\";\nimport { PostsCardTextV2 } from \"../PostsCardText/PostsCardTextV2\";\nimport { SkeltonLoadingCard } from \"@/components/SkeltonLoadingCard\";\nimport { MentionType, PostStatus } from \"@/gql/graphql\";\nimport { OrgReviewCard } from \"../OrgReviewCard\";\nimport { SchoolReviewCard } from \"../SchoolReviewCard\";\nimport { useCallback, useEffect, useRef, useState } from \"react\";\nimport { useUserV2 } from \"@/hooks/useUserV2\";\nimport { Spinner } from \"@/components/Spinner\";\nimport { ReviewPostV2 } from \"../ReviewPostV2\";\n\nconst PostComponents = {\n TEXT: PostsCardTextV2,\n POLL: PollCard,\n RANKING_V2: ReviewPostV2,\n RANKING: ReviewPost,\n ORGANIZATION_REVIEW: OrgReviewCard,\n SCHOOL_REVIEW: SchoolReviewCard,\n};\n\ntype Post = {\n title: string;\n content: {\n text: string;\n };\n school: {\n logo: string;\n alias: string;\n };\n hashtags: Array<{\n startIndex: number;\n id: string;\n endIndex: number;\n }>;\n mentions: Array<{\n startIndex: number;\n id: string;\n endIndex: number;\n mentionType: MentionType;\n mentionedId: string;\n }>;\n type: string;\n nickname: string;\n upvoteCount: number;\n downvoteCount: number;\n replyCount: number;\n bookmarkCount: number;\n viewCount: number;\n id: string;\n createdAt: Date;\n authorId: string;\n status: PostStatus;\n};\n\ntype PostsCardFeedProps = {\n data: Post[];\n isDeletedFeed?: boolean;\n loading?: boolean;\n loadMore: () => void;\n notFoundPlaceHolder?: React.ReactNode;\n};\n\nexport const PostsCardFeedV2: React.FC = ({\n data,\n loading,\n isDeletedFeed,\n loadMore,\n notFoundPlaceHolder,\n}) => {\n const { user, error, loading: userLoading } = useUserV2();\n const [isVisible, setIsVisible] = useState(false);\n const containerRef = useRef(null);\n\n useEffect(() => {\n const observer = new IntersectionObserver(\n (entries) => {\n const [entry] = entries;\n if (entry.isIntersecting && !loading) {\n setIsVisible(true);\n }\n },\n {\n root: null,\n rootMargin: \"0px\",\n threshold: 0.1,\n }\n );\n\n if (containerRef.current) {\n observer.observe(containerRef.current);\n }\n\n return () => {\n if (containerRef.current) {\n observer.unobserve(containerRef.current);\n }\n };\n }, [loading]);\n\n useEffect(() => {\n if (isVisible && !loading) {\n loadMore();\n setIsVisible(false);\n }\n }, [isVisible, loading, loadMore]);\n\n const filteredData = data.filter((post) => {\n if (!user?.flaggedPosts) return true;\n return !user.flaggedPosts.some(\n (flaggedPost) => flaggedPost.postId === post.id\n );\n });\n\n const renderPost = useCallback(\n (post: Post, index: number) => {\n const Component =\n PostComponents[post.type as keyof typeof PostComponents];\n if (!Component) return null;\n\n const postProps = {\n cardComments: post.content,\n schoolLogo: post.school.logo,\n tags: post.mentions,\n postBy: post.nickname,\n universityName: post.school.alias,\n comments: post.replyCount,\n views: 2,\n upVotes: post.upvoteCount,\n downVotes: post.downvoteCount,\n sharedPosts: 2,\n viewCount: post.viewCount,\n savedPosts: post.bookmarkCount,\n username: post.nickname,\n id: post.id,\n type: post.type,\n hashtags: post.hashtags,\n title: post.title,\n createdAt: post.createdAt,\n authorId: post.authorId,\n status: post.status,\n isDeletedFeed: isDeletedFeed,\n };\n\n return (\n \n \n {/*@ts-ignore */}\n \n \n \n );\n },\n [isDeletedFeed]\n );\n\n if (userLoading) {\n return (\n \n \n \n \n \n );\n }\n\n if (!loading && data.length === 0) {\n return notFoundPlaceHolder ? notFoundPlaceHolder : null;\n }\n\n return filteredData ? (\n \n \n {filteredData.map(renderPost)}\n\n \n\n {loading && }\n \n \n ) : null;\n};\n","\"use client\";\nimport { CenterBox, Text } from \"@/components/styled\";\n\nimport NotFoundAnimation from \"@/public/assets/lottie-animations/search-not-found.json\";\nimport { useLottiePlayer } from \"@/hooks/useLottiePlayer\";\n\nexport const NotFound: React.FC = () => {\n const DynamicLottiePlayer = useLottiePlayer();\n return (\n \n \n \n No Results Found\n \n \n \n \n );\n};\n","export * from \"./Not-Found\";\n","import React, { FC } from \"react\";\nimport styled, { keyframes } from \"styled-components\";\nimport { Box, BoxProps } from \"../styled\";\n\nconst spin = keyframes`\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n`;\n\ninterface SpinnerBaseProps extends BoxProps {\n stroke?: string;\n}\n\nconst SpinnerBase = styled(Box)`\n display: inline-block;\n position: relative;\n width: inherit;\n height: inherit;\n border-radius: 100px;\n overflow: hidden;\n\n & div {\n box-sizing: border-box;\n display: block;\n position: absolute;\n width: inherit;\n height: inherit;\n border-color: white transparent transparent transparent;\n border-radius: 100px;\n border-style: solid;\n border-width: ${({ stroke }) => stroke};\n animation: ${spin} 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;\n\n &:nth-child(1) {\n animation-delay: -0.45s;\n }\n\n &:nth-child(2) {\n animation-delay: -0.3s;\n }\n\n &:nth-child(3) {\n animation-delay: -0.15s;\n }\n }\n`;\n\ninterface SpinnerProps extends SpinnerBaseProps {}\n\nexport const Spinner: FC = (props) => (\n \n
\n
\n
\n
\n \n);\n","export * from \"./Spinner\";\n"],"names":["PostComponents","TEXT","PostsCardTextV2","POLL","PollCard","RANKING_V2","ReviewPostV2","RANKING","ReviewPost","ORGANIZATION_REVIEW","OrgReviewCard","SCHOOL_REVIEW","SchoolReviewCard","PostsCardFeedV2","data","loading","isDeletedFeed","loadMore","notFoundPlaceHolder","param","user","error","userLoading","useUserV2","isVisible","setIsVisible","useState","containerRef","useRef","useEffect","observer","IntersectionObserver","entry","entries","isIntersecting","root","rootMargin","threshold","current","observe","unobserve","filteredData","filter","flaggedPosts","some","flaggedPost","postId","post","id","renderPost","useCallback","index","Component","type","postProps","cardComments","content","schoolLogo","school","logo","tags","mentions","postBy","nickname","universityName","alias","comments","replyCount","views","upVotes","upvoteCount","downVotes","downvoteCount","sharedPosts","viewCount","savedPosts","bookmarkCount","username","hashtags","title","createdAt","authorId","status","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","jsx","Column","Box","flex","alignItems","justifyContent","height","width","color","Spinner","length","jsxs","map","ref","style","SkeltonLoadingCard","cards","NotFound","DynamicLottiePlayer","useLottiePlayer","jsx_runtime","CenterBox","mt","Text","size","autoplay","loop","backgroundRepeat","src","NotFoundAnimation","spin","keyframes","SpinnerBase","styled","stroke","props","div"],"sourceRoot":""}