{"version":3,"file":"author.releated.DVpK3hik.js","sources":["../../../src/components/core/author/author.releated.posts.tsx"],"sourcesContent":["import { AspectRatio } from '@/components/ui/atoms/aspect-ratio'\nimport { Button } from '@/components/ui/atoms/button'\nimport EmptyList from '@/components/ui/atoms/empty-list'\nimport { toast } from '@/components/ui/molecules/use-toast'\nimport type { IArticle } from '@/types/article'\nimport type { IAuthor } from '@/types/author'\nimport type { ICursor } from '@/types/cursor'\nimport { ChevronDown, Loader2 } from 'lucide-react'\nimport { useCallback, useState } from 'react'\n\nexport default function AuthorReleatedPosts({\n nodes: ssr_posts,\n cursor: ssr_cursor,\n author,\n limit,\n search,\n pathname,\n}: {\n nodes: Array\n cursor: ICursor\n author: IAuthor\n limit: number\n search?: string\n pathname: string\n}) {\n const [ssrPosts, setSsrPosts] = useState(ssr_posts)\n const [ssrCursor, setSsrCursor] = useState(ssr_cursor)\n\n const [posts, setPosts] = useState>(ssrPosts.slice(0, limit))\n const [cursor, setCursor] = useState({\n ...ssrCursor,\n hasNextPage: ssrPosts.length > limit,\n })\n\n const [loading, setLoading] = useState(false)\n\n const getMore = async () => {\n const request = await fetch('/api/proxy/posts', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(\n { cursor: ssrCursor.endCursor, id: author.databaseId },\n null,\n 2,\n ),\n })\n\n if (request.status !== 200)\n toast({\n variant: 'destructive',\n title: 'Algo não saiu como esperado.',\n description: 'Houve um problema com a sua requisição.',\n })\n else {\n const json = await request.json()\n setSsrCursor(json.cursor)\n setSsrPosts((prev) => [...prev, ...json.nodes])\n setCursor({\n ...json.cursor,\n hasNextPage: posts.length + json.nodes.length > limit,\n })\n }\n }\n\n const handleClick = useCallback(async () => {\n setLoading(true)\n\n const hasNextPage = posts.length + limit < ssrPosts.length\n\n setPosts((prev) => [\n ...prev,\n ...ssrPosts.slice(prev.length, prev.length + limit),\n ])\n setCursor((prev) => ({\n ...prev,\n hasNextPage,\n hasPreviousPage: false,\n }))\n\n if (!hasNextPage && ssrCursor.hasNextPage) {\n await getMore()\n }\n\n setLoading(false)\n }, [setPosts, setCursor, setLoading, cursor])\n\n return (\n <>\n
\n

\n {search\n ? `Publicações relacionadas a: \"${search}\"`\n : `Últimas publicações de ${author.name}`}\n

\n
\n\n {posts.length === 0 && }\n
\n {posts.map((item) => (\n \n \n \n \n \n \n \n
\n
\n {item.tags && item.tags?.length > 0 && (\n

\n {item?.tags[0].name}\n

\n )}\n

\n \n \n {item.title}\n \n

\n \n
\n
\n \n
\n \n {item?.author?.name}\n \n \n
\n
\n \n ))}\n \n {(cursor.hasNextPage || ssrCursor.hasNextPage) && (\n \n {!loading ? (\n \n ) : (\n \n )}\n Ver mais publicações\n \n )}\n \n )\n}\n"],"names":["AuthorReleatedPosts","ssr_posts","ssr_cursor","author","limit","search","pathname","ssrPosts","setSsrPosts","useState","ssrCursor","setSsrCursor","posts","setPosts","cursor","setCursor","loading","setLoading","getMore","request","toast","json","prev","handleClick","useCallback","hasNextPage","jsxs","Fragment","jsx","EmptyList","item","AspectRatio","Button","Loader2","ChevronDown"],"mappings":"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"}