@dcl/landing-site 0.5.1-24686484792.commit-e56f2bf → 0.5.1-24696786650.commit-39f76cb

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (187) hide show
  1. package/assets/{AnimatedBackground-BbbuCmrW.js → AnimatedBackground-ChAxvzpE.js} +2 -2
  2. package/assets/{AnimatedBackground-BbbuCmrW.js.map → AnimatedBackground-ChAxvzpE.js.map} +1 -1
  3. package/assets/{AnimatedSection-CcAt5h6R.js → AnimatedSection-BTD2Dz_H.js} +1 -1
  4. package/assets/{AnimatedSection-CcAt5h6R.js.map → AnimatedSection-BTD2Dz_H.js.map} +1 -1
  5. package/assets/{ArrowBackIosNew-lqzUFZQL.js → ArrowBackIosNew-Dy0wgUVY.js} +1 -1
  6. package/assets/{ArrowBackIosNew-lqzUFZQL.js.map → ArrowBackIosNew-Dy0wgUVY.js.map} +1 -1
  7. package/assets/{AuthorPage-4inFQH2X.js → AuthorPage-Byuf4cVh.js} +1 -1
  8. package/assets/{AuthorPage-4inFQH2X.js.map → AuthorPage-Byuf4cVh.js.map} +1 -1
  9. package/assets/{Badges-DPcq_7dC.js → Badges-MRoIfo36.js} +1 -1
  10. package/assets/{Badges-DPcq_7dC.js.map → Badges-MRoIfo36.js.map} +1 -1
  11. package/assets/{BlogLayout-Bl9FID_L.js → BlogLayout-zeqeF6P_.js} +1 -1
  12. package/assets/{BlogLayout-Bl9FID_L.js.map → BlogLayout-zeqeF6P_.js.map} +1 -1
  13. package/assets/{BlogPage-4c8ZFzdw.js → BlogPage-D9JUOgNf.js} +1 -1
  14. package/assets/{BlogPage-4c8ZFzdw.js.map → BlogPage-D9JUOgNf.js.map} +1 -1
  15. package/assets/{CTAButton-D8_9d6Wu.js → CTAButton-dUbnAFrF.js} +1 -1
  16. package/assets/{CTAButton-D8_9d6Wu.js.map → CTAButton-dUbnAFrF.js.map} +1 -1
  17. package/assets/{CardContent-BQ0iSa2p.js → CardContent-C2Yp8bGg.js} +1 -1
  18. package/assets/{CardContent-BQ0iSa2p.js.map → CardContent-C2Yp8bGg.js.map} +1 -1
  19. package/assets/{CardMedia-B6PneSTk.js → CardMedia-B8io6l5d.js} +1 -1
  20. package/assets/{CardMedia-B6PneSTk.js.map → CardMedia-B8io6l5d.js.map} +1 -1
  21. package/assets/{Carousel-DJd7E-wq.js → Carousel-8PM_J7Qk.js} +1 -1
  22. package/assets/{Carousel-DJd7E-wq.js.map → Carousel-8PM_J7Qk.js.map} +1 -1
  23. package/assets/{CategoryPage-DNQI3nXz.js → CategoryPage-BgijBlf0.js} +1 -1
  24. package/assets/{CategoryPage-DNQI3nXz.js.map → CategoryPage-BgijBlf0.js.map} +1 -1
  25. package/assets/{CircleAndArrow-DIeWRbH9.js → CircleAndArrow-DeiiAyu0.js} +1 -1
  26. package/assets/{CircleAndArrow-DIeWRbH9.js.map → CircleAndArrow-DeiiAyu0.js.map} +1 -1
  27. package/assets/{CircularProgress-AsNM1BvH.js → CircularProgress-COCfVUkZ.js} +1 -1
  28. package/assets/{CircularProgress-AsNM1BvH.js.map → CircularProgress-COCfVUkZ.js.map} +1 -1
  29. package/assets/{ContentCopy-CDhBZqHF.js → ContentCopy-D1MZhJvE.js} +1 -1
  30. package/assets/{ContentCopy-CDhBZqHF.js.map → ContentCopy-D1MZhJvE.js.map} +1 -1
  31. package/assets/{CreateEventPage-NcQUT47j.js → CreateEventPage-hChmRJMr.js} +1 -1
  32. package/assets/CreateEventPage-hChmRJMr.js.map +1 -0
  33. package/assets/{CreatorHubDownload-y9x_B8ll.js → CreatorHubDownload-DYMGdevm.js} +1 -1
  34. package/assets/{CreatorHubDownload-y9x_B8ll.js.map → CreatorHubDownload-DYMGdevm.js.map} +1 -1
  35. package/assets/{CreatorHubDownloadSuccess-BP7MSbSp.js → CreatorHubDownloadSuccess-B_jSl9tg.js} +1 -1
  36. package/assets/{CreatorHubDownloadSuccess-BP7MSbSp.js.map → CreatorHubDownloadSuccess-B_jSl9tg.js.map} +1 -1
  37. package/assets/{DappsShell-HNAsXcn5.js → DappsShell-BicDTonr.js} +1 -1
  38. package/assets/{DappsShell-HNAsXcn5.js.map → DappsShell-BicDTonr.js.map} +1 -1
  39. package/assets/{DownloadSuccessLayout-COBp7A1N.js → DownloadSuccessLayout-CqT-1vfy.js} +1 -1
  40. package/assets/{DownloadSuccessLayout-COBp7A1N.js.map → DownloadSuccessLayout-CqT-1vfy.js.map} +1 -1
  41. package/assets/{Grow-eKASrvPe.js → Grow-BrqQ3k5X.js} +1 -1
  42. package/assets/{Grow-eKASrvPe.js.map → Grow-BrqQ3k5X.js.map} +1 -1
  43. package/assets/HomePage-BZg04XAY.js +3 -0
  44. package/assets/HomePage-BZg04XAY.js.map +1 -0
  45. package/assets/{InviteFaqs-BkOvxqyN.js → InviteFaqs-CsVkWLzg.js} +1 -1
  46. package/assets/{InviteFaqs-BkOvxqyN.js.map → InviteFaqs-CsVkWLzg.js.map} +1 -1
  47. package/assets/{InvitePage-D5lELZNP.js → InvitePage-BDekb47F.js} +2 -2
  48. package/assets/{InvitePage-D5lELZNP.js.map → InvitePage-BDekb47F.js.map} +1 -1
  49. package/assets/{JumpInIcon-bPOWl5ae.js → JumpInIcon-TFxEXFSr.js} +1 -1
  50. package/assets/{JumpInIcon-bPOWl5ae.js.map → JumpInIcon-TFxEXFSr.js.map} +1 -1
  51. package/assets/{LegalPageLayout-DeH35WpT.js → LegalPageLayout-DpJoq1IM.js} +1 -1
  52. package/assets/{LegalPageLayout-DeH35WpT.js.map → LegalPageLayout-DpJoq1IM.js.map} +1 -1
  53. package/assets/{Link-C3GGl2C6.js → Link-Knt-Kosk.js} +1 -1
  54. package/assets/{Link-C3GGl2C6.js.map → Link-Knt-Kosk.js.map} +1 -1
  55. package/assets/{MenuItem-B0piwgTa.js → MenuItem-ibmHV6zy.js} +1 -1
  56. package/assets/{MenuItem-B0piwgTa.js.map → MenuItem-ibmHV6zy.js.map} +1 -1
  57. package/assets/{Paper-BfSYUoim.js → Paper-DQs--rBO.js} +1 -1
  58. package/assets/{Paper-BfSYUoim.js.map → Paper-DQs--rBO.js.map} +1 -1
  59. package/assets/{PostCard-Zsk0_WYz.js → PostCard-BbfzA3Qx.js} +1 -1
  60. package/assets/{PostCard-Zsk0_WYz.js.map → PostCard-BbfzA3Qx.js.map} +1 -1
  61. package/assets/{PostPage-FBb63V37.js → PostPage-CosfC1Na.js} +1 -1
  62. package/assets/{PostPage-FBb63V37.js.map → PostPage-CosfC1Na.js.map} +1 -1
  63. package/assets/{PostPage.styled-B7Xofl3c.js → PostPage.styled-Dd-3Ce5F.js} +3 -3
  64. package/assets/{PostPage.styled-B7Xofl3c.js.map → PostPage.styled-Dd-3Ce5F.js.map} +1 -1
  65. package/assets/{PreviewPage-Dla6vQZW.js → PreviewPage-Dcx8YtgK.js} +1 -1
  66. package/assets/{PreviewPage-Dla6vQZW.js.map → PreviewPage-Dcx8YtgK.js.map} +1 -1
  67. package/assets/{SEO-CGGKu_zm.js → SEO-CwFoEftO.js} +1 -1
  68. package/assets/{SEO-CGGKu_zm.js.map → SEO-CwFoEftO.js.map} +1 -1
  69. package/assets/{SearchPage-ByMcz1c8.js → SearchPage-BUTdqyzo.js} +1 -1
  70. package/assets/{SearchPage-ByMcz1c8.js.map → SearchPage-BUTdqyzo.js.map} +1 -1
  71. package/assets/{SignInRedirect-BNwfxyGB.js → SignInRedirect-C-ss1k0l.js} +1 -1
  72. package/assets/{SignInRedirect-BNwfxyGB.js.map → SignInRedirect-C-ss1k0l.js.map} +1 -1
  73. package/assets/{SignInRedirect-Bxl1dwag.js → SignInRedirect-CsLtxSTb.js} +1 -1
  74. package/assets/{SignInRedirect-Bxl1dwag.js.map → SignInRedirect-CsLtxSTb.js.map} +1 -1
  75. package/assets/{Skeleton-BP1Os8gY.js → Skeleton-yDn4B-G5.js} +1 -1
  76. package/assets/{Skeleton-BP1Os8gY.js.map → Skeleton-yDn4B-G5.js.map} +1 -1
  77. package/assets/{TwitterEmbed-BbSYYog-.js → TwitterEmbed-CD3AmHIQ.js} +1 -1
  78. package/assets/{TwitterEmbed-BbSYYog-.js.map → TwitterEmbed-CD3AmHIQ.js.map} +1 -1
  79. package/assets/{Video--A0fBGqz.js → Video-phAvQnqc.js} +1 -1
  80. package/assets/{Video--A0fBGqz.js.map → Video-phAvQnqc.js.map} +1 -1
  81. package/assets/{WearablePreview-KunRQByO.js → WearablePreview-DJQBWbVv.js} +1 -1
  82. package/assets/{WearablePreview-KunRQByO.js.map → WearablePreview-DJQBWbVv.js.map} +1 -1
  83. package/assets/{auto-track-DJw7KsLA.js → auto-track-b36iF1aP.js} +1 -1
  84. package/assets/{auto-track-DJw7KsLA.js.map → auto-track-b36iF1aP.js.map} +1 -1
  85. package/assets/{ccip-EHA4QwVS.js → ccip-C--_xcyn.js} +1 -1
  86. package/assets/{ccip-EHA4QwVS.js.map → ccip-C--_xcyn.js.map} +1 -1
  87. package/assets/{createSvgIcon-CnAtXIjx.js → createSvgIcon-Ck-nYodG.js} +1 -1
  88. package/assets/{createSvgIcon-CnAtXIjx.js.map → createSvgIcon-Ck-nYodG.js.map} +1 -1
  89. package/assets/{download-Csh0UAX4.js → download-DdWNey2d.js} +2 -2
  90. package/assets/{download-Csh0UAX4.js.map → download-DdWNey2d.js.map} +1 -1
  91. package/assets/{downloadWithIdentity-imzC-1Iy.js → downloadWithIdentity-BySK_Bjg.js} +1 -1
  92. package/assets/{downloadWithIdentity-imzC-1Iy.js.map → downloadWithIdentity-BySK_Bjg.js.map} +1 -1
  93. package/assets/{events.client-BypQp_hx.js → events.client-CWWGjxi9.js} +1 -1
  94. package/assets/events.client-CWWGjxi9.js.map +1 -0
  95. package/assets/host_avatar-Gho9W3pF.webp +0 -0
  96. package/assets/host_scene-BStngEfA.webp +0 -0
  97. package/assets/{index-DwKCx_Fj.js → index-4Rn0RKA3.js} +17 -17
  98. package/assets/{index-DwKCx_Fj.js.map → index-4Rn0RKA3.js.map} +1 -1
  99. package/assets/{index-Hs2OtJ7_.js → index-AQyj9O_P.js} +1 -1
  100. package/assets/{index-Hs2OtJ7_.js.map → index-AQyj9O_P.js.map} +1 -1
  101. package/assets/{index-BtL1Whr6.js → index-BD4zd6ws.js} +1 -1
  102. package/assets/{index-BtL1Whr6.js.map → index-BD4zd6ws.js.map} +1 -1
  103. package/assets/{index-CqU_IKja.js → index-BJ7TnoEw.js} +1 -1
  104. package/assets/{index-CqU_IKja.js.map → index-BJ7TnoEw.js.map} +1 -1
  105. package/assets/{index-Bfn0rTR9.js → index-Bdgec4Ls.js} +1 -1
  106. package/assets/{index-Bfn0rTR9.js.map → index-Bdgec4Ls.js.map} +1 -1
  107. package/assets/{index-DV8UooZK.js → index-BjIVdBT0.js} +1 -1
  108. package/assets/{index-DV8UooZK.js.map → index-BjIVdBT0.js.map} +1 -1
  109. package/assets/{index-fmnLygLZ.js → index-BnaCJ0sp.js} +1 -1
  110. package/assets/{index-fmnLygLZ.js.map → index-BnaCJ0sp.js.map} +1 -1
  111. package/assets/{index-BO6ciUn8.js → index-C5c9wKGi.js} +1 -1
  112. package/assets/{index-BO6ciUn8.js.map → index-C5c9wKGi.js.map} +1 -1
  113. package/assets/{index-Bq7PojkE.js → index-CLRzSdDs.js} +1 -1
  114. package/assets/{index-Bq7PojkE.js.map → index-CLRzSdDs.js.map} +1 -1
  115. package/assets/{index-B-PLjKpI.js → index-CM1y4MwR.js} +1 -1
  116. package/assets/{index-B-PLjKpI.js.map → index-CM1y4MwR.js.map} +1 -1
  117. package/assets/{index-FcfsIuei.js → index-CSbcajOU.js} +1 -1
  118. package/assets/{index-FcfsIuei.js.map → index-CSbcajOU.js.map} +1 -1
  119. package/assets/{index-CC8b5SLA.js → index-CWHKL6N8.js} +1 -1
  120. package/assets/{index-CC8b5SLA.js.map → index-CWHKL6N8.js.map} +1 -1
  121. package/assets/index-CaN3aesa.js +1 -0
  122. package/assets/{index-DJdpP3iF.js.map → index-CaN3aesa.js.map} +1 -1
  123. package/assets/{index-CJ9b6HdV.js → index-CeX_Loqr.js} +1 -1
  124. package/assets/{index-CJ9b6HdV.js.map → index-CeX_Loqr.js.map} +1 -1
  125. package/assets/{index-BKY10VNY.js → index-Cjz0nm3N.js} +1 -1
  126. package/assets/{index-BKY10VNY.js.map → index-Cjz0nm3N.js.map} +1 -1
  127. package/assets/{index-pguZ7Pr7.js → index-CkaRi2_3.js} +2 -2
  128. package/assets/{index-pguZ7Pr7.js.map → index-CkaRi2_3.js.map} +1 -1
  129. package/assets/{index-XwRFjo-F.js → index-D6yjbNdZ.js} +3 -3
  130. package/assets/{index-XwRFjo-F.js.map → index-D6yjbNdZ.js.map} +1 -1
  131. package/assets/{index-0VgKmd34.js → index-DGs_qCuq.js} +1 -1
  132. package/assets/{index-0VgKmd34.js.map → index-DGs_qCuq.js.map} +1 -1
  133. package/assets/{index-DIU7xr_7.js → index-DHJSVI3a.js} +1 -1
  134. package/assets/{index-DIU7xr_7.js.map → index-DHJSVI3a.js.map} +1 -1
  135. package/assets/{index-KkMZZ6nz.js → index-DMpXTyjU.js} +1 -1
  136. package/assets/{index-KkMZZ6nz.js.map → index-DMpXTyjU.js.map} +1 -1
  137. package/assets/{index-iTL2dY0l.js → index-DXcPgEVs.js} +1 -1
  138. package/assets/{index-iTL2dY0l.js.map → index-DXcPgEVs.js.map} +1 -1
  139. package/assets/{index-BaEE4ZXP.js → index-D_URcwLX.js} +1 -1
  140. package/assets/{index-BaEE4ZXP.js.map → index-D_URcwLX.js.map} +1 -1
  141. package/assets/index-DckfeXPH.js +1 -0
  142. package/assets/index-DckfeXPH.js.map +1 -0
  143. package/assets/{index-CsY_wahP.js → index-Dg-O6Pur.js} +1 -1
  144. package/assets/{index-CsY_wahP.js.map → index-Dg-O6Pur.js.map} +1 -1
  145. package/assets/{index-CXMTgMUj.js → index-DhwtUY1f.js} +1 -1
  146. package/assets/{index-CXMTgMUj.js.map → index-DhwtUY1f.js.map} +1 -1
  147. package/assets/{index-Dx9lzInm.js → index-DrayNXRb.js} +1 -1
  148. package/assets/{index-Dx9lzInm.js.map → index-DrayNXRb.js.map} +1 -1
  149. package/assets/{index-CfKiEnnb.js → index-UYb7Po3h.js} +1 -1
  150. package/assets/{index-CfKiEnnb.js.map → index-UYb7Po3h.js.map} +1 -1
  151. package/assets/{index-Bd63106P.js → index-XKJmyO_p.js} +1 -1
  152. package/assets/{index-Bd63106P.js.map → index-XKJmyO_p.js.map} +1 -1
  153. package/assets/{index-BVu5N7d0.js → index-ZgulVRiq.js} +1 -1
  154. package/assets/{index-BVu5N7d0.js.map → index-ZgulVRiq.js.map} +1 -1
  155. package/assets/{index-DUmIu2EK.js → index-_DB-noma.js} +29 -29
  156. package/assets/{index-DUmIu2EK.js.map → index-_DB-noma.js.map} +1 -1
  157. package/assets/{index-DW87VeBc.js → index-mEd8fX0_.js} +1 -1
  158. package/assets/{index-DW87VeBc.js.map → index-mEd8fX0_.js.map} +1 -1
  159. package/assets/{index-BzmWmDt2.js → index-niWFQNCe.js} +1 -1
  160. package/assets/{index-BzmWmDt2.js.map → index-niWFQNCe.js.map} +1 -1
  161. package/assets/{profile.client-BtZZbgxj.js → profile.client-CmNJLNox.js} +1 -1
  162. package/assets/{profile.client-BtZZbgxj.js.map → profile.client-CmNJLNox.js.map} +1 -1
  163. package/assets/{shared.styled-D8qloAmp.js → shared.styled-8JiXG0YJ.js} +1 -1
  164. package/assets/{shared.styled-D8qloAmp.js.map → shared.styled-8JiXG0YJ.js.map} +1 -1
  165. package/assets/{store-OyTPwmKI.js → store-ChFhVM4L.js} +1 -1
  166. package/assets/{store-OyTPwmKI.js.map → store-ChFhVM4L.js.map} +1 -1
  167. package/assets/{url-BHzlJYXC.js → url-DaZlsYoU.js} +1 -1
  168. package/assets/{url-BHzlJYXC.js.map → url-DaZlsYoU.js.map} +1 -1
  169. package/assets/{useAuthIdentity-D2zQ3q5X.js → useAuthIdentity-CvL2aq09.js} +1 -1
  170. package/assets/{useAuthIdentity-D2zQ3q5X.js.map → useAuthIdentity-CvL2aq09.js.map} +1 -1
  171. package/assets/{useCreatorHubDownload-Dp_zMaiv.js → useCreatorHubDownload-EAoN-CCw.js} +1 -1
  172. package/assets/{useCreatorHubDownload-Dp_zMaiv.js.map → useCreatorHubDownload-EAoN-CCw.js.map} +1 -1
  173. package/assets/{useInfiniteBlogPosts-B9Mv_Fup.js → useInfiniteBlogPosts-Bp1S1sH2.js} +1 -1
  174. package/assets/{useInfiniteBlogPosts-B9Mv_Fup.js.map → useInfiniteBlogPosts-Bp1S1sH2.js.map} +1 -1
  175. package/assets/{useSlot-DM_UQPu8.js → useSlot-Cy5UGC7c.js} +1 -1
  176. package/assets/{useSlot-DM_UQPu8.js.map → useSlot-Cy5UGC7c.js.map} +1 -1
  177. package/assets/{utils-CJGePSnj.js → utils-Ci8rWaIt.js} +1 -1
  178. package/assets/{utils-CJGePSnj.js.map → utils-Ci8rWaIt.js.map} +1 -1
  179. package/index.html +15 -15
  180. package/package.json +3 -3
  181. package/assets/CreateEventPage-NcQUT47j.js.map +0 -1
  182. package/assets/HomePage-CZwkfB5G.js +0 -3
  183. package/assets/HomePage-CZwkfB5G.js.map +0 -1
  184. package/assets/events.client-BypQp_hx.js.map +0 -1
  185. package/assets/index-C1apFG92.js +0 -1
  186. package/assets/index-C1apFG92.js.map +0 -1
  187. package/assets/index-DJdpP3iF.js +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"useInfiniteBlogPosts-B9Mv_Fup.js","sources":["../../node_modules/@dcl/hooks/esm/hooks/useInfiniteScroll.js","../../src/components/blog/MainPostCard/MainPostCard.styled.ts","../../src/components/blog/MainPostCard/MainPostCard.tsx","../../src/components/blog/PostList/PostList.styled.ts","../../src/components/blog/PostList/PostList.tsx","../../src/features/blog/useInfiniteBlogPosts.ts"],"sourcesContent":["import { useEffect, useRef } from \"react\";\n/**\n * Hook to implement infinite scroll functionality\n * Triggers onLoadMore callback when user scrolls near the bottom of the page\n * @param options - Configuration options for infinite scroll\n * @param options.onLoadMore - Callback to trigger when user scrolls near the end\n * @param options.hasMore - Whether more data is available to load\n * @param options.isLoading - Whether data is currently loading\n * @param options.threshold - Distance from bottom (in pixels) to trigger load. Default: 500\n * @param options.debounceMs - Minimum time (in milliseconds) between triggers to prevent multiple calls. Default: 500\n */\nconst useInfiniteScroll = ({ onLoadMore, hasMore, isLoading, threshold = 500, debounceMs = 500, }) => {\n const onLoadMoreRef = useRef(onLoadMore);\n const lastTriggerRef = useRef(0);\n useEffect(() => {\n onLoadMoreRef.current = onLoadMore;\n }, [onLoadMore]);\n useEffect(() => {\n const handleScroll = () => {\n const now = Date.now();\n if (now - lastTriggerRef.current < debounceMs) {\n return;\n }\n const scrollHeight = document.documentElement.scrollHeight;\n const scrollTop = document.documentElement.scrollTop;\n const clientHeight = document.documentElement.clientHeight;\n const distanceFromBottom = scrollHeight - (scrollTop + clientHeight);\n if (distanceFromBottom < threshold && hasMore && !isLoading) {\n lastTriggerRef.current = now;\n onLoadMoreRef.current();\n }\n };\n window.addEventListener(\"scroll\", handleScroll, { passive: true });\n const timeoutId = setTimeout(handleScroll, 500);\n return () => {\n window.removeEventListener(\"scroll\", handleScroll);\n clearTimeout(timeoutId);\n };\n }, [hasMore, isLoading, threshold, debounceMs]);\n};\nexport { useInfiniteScroll };\n//# sourceMappingURL=useInfiniteScroll.js.map","/* eslint-disable @typescript-eslint/naming-convention */\nimport { Link } from 'react-router-dom'\nimport { Box, Skeleton, styled } from 'decentraland-ui2'\nimport { CardImageLink, CategoryLink, DateText, MetaBox } from '../shared/PostCard.styled'\n\nconst CardContainer = styled(Box)(() => ({\n width: '100%',\n margin: '0 40px 40px 0',\n position: 'relative',\n display: 'flex',\n justifyContent: 'space-between',\n '@media (max-width: 1096px)': {\n display: 'none'\n }\n}))\n\nconst CardImage = styled('img')(() => ({\n objectFit: 'cover',\n boxShadow: '0 2px 4px 0 rgba(0, 0, 0, 0.16)',\n borderRadius: '5px',\n width: '697px',\n height: '349px',\n marginRight: '31px',\n transition: 'transform 250ms ease, box-shadow 250ms ease'\n}))\n\nconst CardInfo = styled(Box)({\n width: '335px'\n})\n\nconst TitleLink = styled(Link)(({ theme }) => ({\n textDecoration: 'none',\n display: 'block',\n color: theme.palette.text.primary,\n '& h2, & h3': {\n fontSize: '34px',\n lineHeight: '42px',\n color: theme.palette.text.primary,\n fontWeight: 500\n },\n '&:visited, &:link, &:active': {\n color: theme.palette.text.primary\n },\n '& *': {\n color: theme.palette.text.primary\n }\n}))\n\nconst Description = styled('p')(({ theme }) => ({\n display: 'block',\n fontSize: '17px',\n lineHeight: '26px',\n letterSpacing: '-0.4px',\n margin: 0,\n paddingTop: '8px',\n fontWeight: 400,\n color: theme.palette.text.primary\n}))\n\nconst LoadingHeader = styled(Box)(() => ({\n display: 'flex',\n justifyContent: 'space-between'\n}))\n\nconst LoadingImage = styled(Skeleton)(() => ({\n width: '697px',\n height: '348px'\n}))\n\nconst LoadingTitleLine = styled(Skeleton)(() => ({\n width: '100%',\n height: '40px'\n}))\n\nconst LoadingTitleLineShort = styled(Skeleton)(() => ({\n width: '90%',\n height: '40px'\n}))\n\nconst LoadingMetaSkeleton = styled(Skeleton)(() => ({\n width: '100px'\n}))\n\nconst LoadingTextSkeleton = styled(Skeleton)(() => ({\n width: '100%'\n}))\n\nconst LoadingTextSkeletonShort = styled(Skeleton)(() => ({\n width: '80%'\n}))\n\nconst LoadingContentBox = styled(Box)(({ theme }) => ({\n marginTop: theme.spacing(2)\n}))\n\nexport {\n CardContainer,\n CardImage,\n CardImageLink,\n CardInfo,\n CategoryLink,\n DateText,\n Description,\n LoadingContentBox,\n LoadingHeader,\n LoadingImage,\n LoadingMetaSkeleton,\n LoadingTextSkeleton,\n LoadingTextSkeletonShort,\n LoadingTitleLine,\n LoadingTitleLineShort,\n MetaBox,\n TitleLink\n}\n","import { Typography } from 'decentraland-ui2'\nimport type { MainPostCardProps } from './MainPostCard.types'\nimport {\n CardContainer,\n CardImage,\n CardImageLink,\n CardInfo,\n CategoryLink,\n DateText,\n Description,\n LoadingContentBox,\n LoadingHeader,\n LoadingImage,\n LoadingMetaSkeleton,\n LoadingTextSkeleton,\n LoadingTextSkeletonShort,\n LoadingTitleLine,\n LoadingTitleLineShort,\n MetaBox,\n TitleLink\n} from './MainPostCard.styled'\n\nconst MainPostCard = (props: MainPostCardProps) => {\n const { post, loading } = props\n\n if (loading) {\n return (\n <CardContainer>\n <LoadingImage variant=\"rectangular\" />\n <CardInfo>\n <LoadingHeader>\n <LoadingMetaSkeleton variant=\"text\" />\n <LoadingMetaSkeleton variant=\"text\" />\n </LoadingHeader>\n <LoadingTitleLine variant=\"text\" />\n <LoadingTitleLineShort variant=\"text\" />\n <LoadingContentBox>\n <LoadingTextSkeleton variant=\"text\" />\n <LoadingTextSkeleton variant=\"text\" />\n <LoadingTextSkeleton variant=\"text\" />\n <LoadingTextSkeletonShort variant=\"text\" />\n </LoadingContentBox>\n </CardInfo>\n </CardContainer>\n )\n }\n\n if (!post) return null\n\n return (\n <CardContainer>\n <CardImageLink to={post.url}>\n <CardImage src={post.image.url} alt={post.title} width={697} height={349} fetchPriority=\"high\" decoding=\"async\" />\n </CardImageLink>\n <CardInfo>\n <MetaBox>\n <DateText>{post.publishedDate}</DateText>\n <span>\n <CategoryLink to={post.category.url}>{post.category.title}</CategoryLink>\n </span>\n </MetaBox>\n <TitleLink to={post.url}>\n <Typography variant=\"h3\" component=\"h2\">\n {post.title}\n </Typography>\n </TitleLink>\n <Description>{post.description}</Description>\n </CardInfo>\n </CardContainer>\n )\n}\n\nexport { MainPostCard }\n","/* eslint-disable @typescript-eslint/naming-convention */\nimport { Box, styled } from 'decentraland-ui2'\n\nconst PostListWrapper = styled(Box, { shouldForwardProp: prop => prop !== 'hasMainPost' })<{ hasMainPost: boolean }>(\n ({ theme, hasMainPost }) => ({\n display: 'flex',\n flexWrap: 'wrap',\n justifyContent: 'flex-start',\n paddingBottom: theme.spacing(2.5),\n '& > div:nth-of-type(3n)': {\n marginRight: theme.spacing(4)\n },\n ...(hasMainPost && {\n '& > div:nth-of-type(3n + 1)': {\n marginRight: 0\n }\n }),\n ...(!hasMainPost && {\n '& > div:nth-of-type(3n + 3)': {\n marginRight: 0\n }\n }),\n '@media (max-width: 1096px)': {\n justifyContent: 'space-between',\n '& > div, & > div:nth-of-type(3n)': {\n marginRight: 0\n }\n }\n })\n)\n\nexport { PostListWrapper }\n","import { memo } from 'react'\nimport { useMediaQuery } from 'decentraland-ui2'\nimport type { BlogPost } from '../../../shared/blog/types/blog.domain'\nimport { MainPostCard } from '../MainPostCard'\nimport { PostCard } from '../PostCard'\nimport type { PostListProps } from './PostList.types'\nimport { PostListWrapper } from './PostList.styled'\n\n// Type guard to check if a post is a placeholder\nconst isPlaceholder = (post: { id: string; isPlaceholder?: boolean }): post is { id: string; isPlaceholder: true } => {\n return 'isPlaceholder' in post && post.isPlaceholder === true\n}\n\nconst PostList = memo((props: PostListProps) => {\n const { posts, loading, hasMainPost = false } = props\n const isBigScreen = useMediaQuery('(min-width: 1096px)')\n\n // Initial loading with no posts at all\n if (loading && posts.length === 0) {\n const count = hasMainPost ? 7 : 6\n\n return (\n <PostListWrapper hasMainPost={hasMainPost}>\n {hasMainPost && <MainPostCard loading />}\n {Array.from(Array(count), (_, index) => {\n if (hasMainPost && index === 0) {\n return null // MainPostCard already rendered\n }\n return <PostCard key={`skeleton-${index}`} loading />\n })}\n </PostListWrapper>\n )\n }\n\n if (!posts || posts.length === 0) {\n return null\n }\n\n // Get first real post for MainPostCard (if applicable)\n const firstRealPost = posts.find(p => !isPlaceholder(p)) as BlogPost | undefined\n\n return (\n <PostListWrapper hasMainPost={hasMainPost}>\n {hasMainPost && isBigScreen && firstRealPost && <MainPostCard post={firstRealPost} />}\n {posts.map(post => {\n // Skip the first real post if we're showing it as MainPostCard\n if (hasMainPost && isBigScreen && !isPlaceholder(post) && post === firstRealPost) {\n return null\n }\n\n // Render placeholder as loading skeleton\n if (isPlaceholder(post)) {\n return <PostCard key={post.id} loading />\n }\n\n return <PostCard key={post.id} post={post} />\n })}\n </PostListWrapper>\n )\n})\n\nexport { PostList }\n","import { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { useInfiniteScroll } from '@dcl/hooks'\nimport type { PostOrPlaceholder } from '../../shared/blog/types/blog.domain'\nimport { useGetBlogPostsQuery } from './blog.client'\n\nconst POSTS_INITIAL_LOAD = 7\nconst POSTS_PER_LOAD = 6\n\ninterface UseInfiniteBlogPostsParams {\n category?: string\n author?: string\n}\n\ninterface UseInfiniteBlogPostsResult {\n posts: PostOrPlaceholder[]\n isLoading: boolean\n isLoadingInitial: boolean\n isFetching: boolean\n hasMore: boolean\n error: unknown\n}\n\n// Helper to create placeholder posts\nconst createPlaceholders = (count: number, batchId: number): PostOrPlaceholder[] => {\n return Array.from({ length: count }, (_, i) => ({\n id: `placeholder-${batchId}-${i}`,\n isPlaceholder: true as const\n }))\n}\n\nfunction useInfiniteBlogPosts({ category, author }: UseInfiniteBlogPostsParams = {}): UseInfiniteBlogPostsResult {\n const [currentSkip, setCurrentSkip] = useState(0)\n const [showPlaceholders, setShowPlaceholders] = useState(false)\n const batchIdRef = useRef(0)\n\n // Use RTK Query with pagination - cache handles accumulation via merge\n // Backend handles category/author filtering, so we request real page sizes\n const { data, isLoading, error, isFetching } = useGetBlogPostsQuery({\n category,\n author,\n limit: currentSkip === 0 ? POSTS_INITIAL_LOAD : POSTS_PER_LOAD,\n skip: currentSkip\n })\n\n // Build display posts: cached posts + placeholders when loading more\n const displayPosts = useMemo<PostOrPlaceholder[]>(() => {\n const posts = data?.posts ?? []\n if (showPlaceholders && isFetching) {\n return [...posts, ...createPlaceholders(POSTS_PER_LOAD, batchIdRef.current)]\n }\n return posts\n }, [data?.posts, showPlaceholders, isFetching])\n\n const hasMore = data?.hasMore ?? true\n const isLoadingInitial = isLoading && currentSkip === 0\n\n // Reset skip when filters change\n useEffect(() => {\n setCurrentSkip(0)\n setShowPlaceholders(false)\n batchIdRef.current = 0\n }, [category, author])\n\n // Show placeholders when fetching more (not initial)\n useEffect(() => {\n if (isFetching && currentSkip > 0) {\n batchIdRef.current += 1\n setShowPlaceholders(true)\n } else if (!isFetching) {\n setShowPlaceholders(false)\n }\n }, [isFetching, currentSkip])\n\n // Load more function - use nextCmsSkip to properly paginate\n const loadMore = useCallback(() => {\n if (isFetching || !hasMore || !data) {\n return\n }\n // Use the CMS-level skip for proper pagination\n setCurrentSkip(data.nextCmsSkip)\n }, [isFetching, hasMore, data])\n\n // Use @dcl/hooks infinite scroll\n useInfiniteScroll({\n onLoadMore: loadMore,\n hasMore,\n isLoading: isFetching\n })\n\n return {\n posts: displayPosts,\n isLoading,\n isLoadingInitial,\n isFetching,\n hasMore,\n error\n }\n}\n\nexport { useInfiniteBlogPosts, type UseInfiniteBlogPostsParams, type UseInfiniteBlogPostsResult }\n"],"names":["useInfiniteScroll","onLoadMore","hasMore","isLoading","threshold","debounceMs","onLoadMoreRef","useRef","lastTriggerRef","useEffect","handleScroll","now","scrollHeight","scrollTop","clientHeight","timeoutId","CardContainer","styled","Box","CardImage","CardInfo","TitleLink","Link","theme","Description","LoadingHeader","LoadingImage","Skeleton","LoadingTitleLine","LoadingTitleLineShort","LoadingMetaSkeleton","LoadingTextSkeleton","LoadingTextSkeletonShort","LoadingContentBox","MainPostCard","props","post","loading","jsx","jsxs","CardImageLink","MetaBox","DateText","CategoryLink","Typography","PostListWrapper","prop","hasMainPost","isPlaceholder","PostList","memo","posts","isBigScreen","useMediaQuery","count","_","index","PostCard","firstRealPost","p","POSTS_INITIAL_LOAD","POSTS_PER_LOAD","createPlaceholders","batchId","i","useInfiniteBlogPosts","category","author","currentSkip","setCurrentSkip","useState","showPlaceholders","setShowPlaceholders","batchIdRef","data","error","isFetching","useGetBlogPostsQuery","displayPosts","useMemo","isLoadingInitial","loadMore","useCallback"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"useInfiniteBlogPosts-Bp1S1sH2.js","sources":["../../node_modules/@dcl/hooks/esm/hooks/useInfiniteScroll.js","../../src/components/blog/MainPostCard/MainPostCard.styled.ts","../../src/components/blog/MainPostCard/MainPostCard.tsx","../../src/components/blog/PostList/PostList.styled.ts","../../src/components/blog/PostList/PostList.tsx","../../src/features/blog/useInfiniteBlogPosts.ts"],"sourcesContent":["import { useEffect, useRef } from \"react\";\n/**\n * Hook to implement infinite scroll functionality\n * Triggers onLoadMore callback when user scrolls near the bottom of the page\n * @param options - Configuration options for infinite scroll\n * @param options.onLoadMore - Callback to trigger when user scrolls near the end\n * @param options.hasMore - Whether more data is available to load\n * @param options.isLoading - Whether data is currently loading\n * @param options.threshold - Distance from bottom (in pixels) to trigger load. Default: 500\n * @param options.debounceMs - Minimum time (in milliseconds) between triggers to prevent multiple calls. Default: 500\n */\nconst useInfiniteScroll = ({ onLoadMore, hasMore, isLoading, threshold = 500, debounceMs = 500, }) => {\n const onLoadMoreRef = useRef(onLoadMore);\n const lastTriggerRef = useRef(0);\n useEffect(() => {\n onLoadMoreRef.current = onLoadMore;\n }, [onLoadMore]);\n useEffect(() => {\n const handleScroll = () => {\n const now = Date.now();\n if (now - lastTriggerRef.current < debounceMs) {\n return;\n }\n const scrollHeight = document.documentElement.scrollHeight;\n const scrollTop = document.documentElement.scrollTop;\n const clientHeight = document.documentElement.clientHeight;\n const distanceFromBottom = scrollHeight - (scrollTop + clientHeight);\n if (distanceFromBottom < threshold && hasMore && !isLoading) {\n lastTriggerRef.current = now;\n onLoadMoreRef.current();\n }\n };\n window.addEventListener(\"scroll\", handleScroll, { passive: true });\n const timeoutId = setTimeout(handleScroll, 500);\n return () => {\n window.removeEventListener(\"scroll\", handleScroll);\n clearTimeout(timeoutId);\n };\n }, [hasMore, isLoading, threshold, debounceMs]);\n};\nexport { useInfiniteScroll };\n//# sourceMappingURL=useInfiniteScroll.js.map","/* eslint-disable @typescript-eslint/naming-convention */\nimport { Link } from 'react-router-dom'\nimport { Box, Skeleton, styled } from 'decentraland-ui2'\nimport { CardImageLink, CategoryLink, DateText, MetaBox } from '../shared/PostCard.styled'\n\nconst CardContainer = styled(Box)(() => ({\n width: '100%',\n margin: '0 40px 40px 0',\n position: 'relative',\n display: 'flex',\n justifyContent: 'space-between',\n '@media (max-width: 1096px)': {\n display: 'none'\n }\n}))\n\nconst CardImage = styled('img')(() => ({\n objectFit: 'cover',\n boxShadow: '0 2px 4px 0 rgba(0, 0, 0, 0.16)',\n borderRadius: '5px',\n width: '697px',\n height: '349px',\n marginRight: '31px',\n transition: 'transform 250ms ease, box-shadow 250ms ease'\n}))\n\nconst CardInfo = styled(Box)({\n width: '335px'\n})\n\nconst TitleLink = styled(Link)(({ theme }) => ({\n textDecoration: 'none',\n display: 'block',\n color: theme.palette.text.primary,\n '& h2, & h3': {\n fontSize: '34px',\n lineHeight: '42px',\n color: theme.palette.text.primary,\n fontWeight: 500\n },\n '&:visited, &:link, &:active': {\n color: theme.palette.text.primary\n },\n '& *': {\n color: theme.palette.text.primary\n }\n}))\n\nconst Description = styled('p')(({ theme }) => ({\n display: 'block',\n fontSize: '17px',\n lineHeight: '26px',\n letterSpacing: '-0.4px',\n margin: 0,\n paddingTop: '8px',\n fontWeight: 400,\n color: theme.palette.text.primary\n}))\n\nconst LoadingHeader = styled(Box)(() => ({\n display: 'flex',\n justifyContent: 'space-between'\n}))\n\nconst LoadingImage = styled(Skeleton)(() => ({\n width: '697px',\n height: '348px'\n}))\n\nconst LoadingTitleLine = styled(Skeleton)(() => ({\n width: '100%',\n height: '40px'\n}))\n\nconst LoadingTitleLineShort = styled(Skeleton)(() => ({\n width: '90%',\n height: '40px'\n}))\n\nconst LoadingMetaSkeleton = styled(Skeleton)(() => ({\n width: '100px'\n}))\n\nconst LoadingTextSkeleton = styled(Skeleton)(() => ({\n width: '100%'\n}))\n\nconst LoadingTextSkeletonShort = styled(Skeleton)(() => ({\n width: '80%'\n}))\n\nconst LoadingContentBox = styled(Box)(({ theme }) => ({\n marginTop: theme.spacing(2)\n}))\n\nexport {\n CardContainer,\n CardImage,\n CardImageLink,\n CardInfo,\n CategoryLink,\n DateText,\n Description,\n LoadingContentBox,\n LoadingHeader,\n LoadingImage,\n LoadingMetaSkeleton,\n LoadingTextSkeleton,\n LoadingTextSkeletonShort,\n LoadingTitleLine,\n LoadingTitleLineShort,\n MetaBox,\n TitleLink\n}\n","import { Typography } from 'decentraland-ui2'\nimport type { MainPostCardProps } from './MainPostCard.types'\nimport {\n CardContainer,\n CardImage,\n CardImageLink,\n CardInfo,\n CategoryLink,\n DateText,\n Description,\n LoadingContentBox,\n LoadingHeader,\n LoadingImage,\n LoadingMetaSkeleton,\n LoadingTextSkeleton,\n LoadingTextSkeletonShort,\n LoadingTitleLine,\n LoadingTitleLineShort,\n MetaBox,\n TitleLink\n} from './MainPostCard.styled'\n\nconst MainPostCard = (props: MainPostCardProps) => {\n const { post, loading } = props\n\n if (loading) {\n return (\n <CardContainer>\n <LoadingImage variant=\"rectangular\" />\n <CardInfo>\n <LoadingHeader>\n <LoadingMetaSkeleton variant=\"text\" />\n <LoadingMetaSkeleton variant=\"text\" />\n </LoadingHeader>\n <LoadingTitleLine variant=\"text\" />\n <LoadingTitleLineShort variant=\"text\" />\n <LoadingContentBox>\n <LoadingTextSkeleton variant=\"text\" />\n <LoadingTextSkeleton variant=\"text\" />\n <LoadingTextSkeleton variant=\"text\" />\n <LoadingTextSkeletonShort variant=\"text\" />\n </LoadingContentBox>\n </CardInfo>\n </CardContainer>\n )\n }\n\n if (!post) return null\n\n return (\n <CardContainer>\n <CardImageLink to={post.url}>\n <CardImage src={post.image.url} alt={post.title} width={697} height={349} fetchPriority=\"high\" decoding=\"async\" />\n </CardImageLink>\n <CardInfo>\n <MetaBox>\n <DateText>{post.publishedDate}</DateText>\n <span>\n <CategoryLink to={post.category.url}>{post.category.title}</CategoryLink>\n </span>\n </MetaBox>\n <TitleLink to={post.url}>\n <Typography variant=\"h3\" component=\"h2\">\n {post.title}\n </Typography>\n </TitleLink>\n <Description>{post.description}</Description>\n </CardInfo>\n </CardContainer>\n )\n}\n\nexport { MainPostCard }\n","/* eslint-disable @typescript-eslint/naming-convention */\nimport { Box, styled } from 'decentraland-ui2'\n\nconst PostListWrapper = styled(Box, { shouldForwardProp: prop => prop !== 'hasMainPost' })<{ hasMainPost: boolean }>(\n ({ theme, hasMainPost }) => ({\n display: 'flex',\n flexWrap: 'wrap',\n justifyContent: 'flex-start',\n paddingBottom: theme.spacing(2.5),\n '& > div:nth-of-type(3n)': {\n marginRight: theme.spacing(4)\n },\n ...(hasMainPost && {\n '& > div:nth-of-type(3n + 1)': {\n marginRight: 0\n }\n }),\n ...(!hasMainPost && {\n '& > div:nth-of-type(3n + 3)': {\n marginRight: 0\n }\n }),\n '@media (max-width: 1096px)': {\n justifyContent: 'space-between',\n '& > div, & > div:nth-of-type(3n)': {\n marginRight: 0\n }\n }\n })\n)\n\nexport { PostListWrapper }\n","import { memo } from 'react'\nimport { useMediaQuery } from 'decentraland-ui2'\nimport type { BlogPost } from '../../../shared/blog/types/blog.domain'\nimport { MainPostCard } from '../MainPostCard'\nimport { PostCard } from '../PostCard'\nimport type { PostListProps } from './PostList.types'\nimport { PostListWrapper } from './PostList.styled'\n\n// Type guard to check if a post is a placeholder\nconst isPlaceholder = (post: { id: string; isPlaceholder?: boolean }): post is { id: string; isPlaceholder: true } => {\n return 'isPlaceholder' in post && post.isPlaceholder === true\n}\n\nconst PostList = memo((props: PostListProps) => {\n const { posts, loading, hasMainPost = false } = props\n const isBigScreen = useMediaQuery('(min-width: 1096px)')\n\n // Initial loading with no posts at all\n if (loading && posts.length === 0) {\n const count = hasMainPost ? 7 : 6\n\n return (\n <PostListWrapper hasMainPost={hasMainPost}>\n {hasMainPost && <MainPostCard loading />}\n {Array.from(Array(count), (_, index) => {\n if (hasMainPost && index === 0) {\n return null // MainPostCard already rendered\n }\n return <PostCard key={`skeleton-${index}`} loading />\n })}\n </PostListWrapper>\n )\n }\n\n if (!posts || posts.length === 0) {\n return null\n }\n\n // Get first real post for MainPostCard (if applicable)\n const firstRealPost = posts.find(p => !isPlaceholder(p)) as BlogPost | undefined\n\n return (\n <PostListWrapper hasMainPost={hasMainPost}>\n {hasMainPost && isBigScreen && firstRealPost && <MainPostCard post={firstRealPost} />}\n {posts.map(post => {\n // Skip the first real post if we're showing it as MainPostCard\n if (hasMainPost && isBigScreen && !isPlaceholder(post) && post === firstRealPost) {\n return null\n }\n\n // Render placeholder as loading skeleton\n if (isPlaceholder(post)) {\n return <PostCard key={post.id} loading />\n }\n\n return <PostCard key={post.id} post={post} />\n })}\n </PostListWrapper>\n )\n})\n\nexport { PostList }\n","import { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { useInfiniteScroll } from '@dcl/hooks'\nimport type { PostOrPlaceholder } from '../../shared/blog/types/blog.domain'\nimport { useGetBlogPostsQuery } from './blog.client'\n\nconst POSTS_INITIAL_LOAD = 7\nconst POSTS_PER_LOAD = 6\n\ninterface UseInfiniteBlogPostsParams {\n category?: string\n author?: string\n}\n\ninterface UseInfiniteBlogPostsResult {\n posts: PostOrPlaceholder[]\n isLoading: boolean\n isLoadingInitial: boolean\n isFetching: boolean\n hasMore: boolean\n error: unknown\n}\n\n// Helper to create placeholder posts\nconst createPlaceholders = (count: number, batchId: number): PostOrPlaceholder[] => {\n return Array.from({ length: count }, (_, i) => ({\n id: `placeholder-${batchId}-${i}`,\n isPlaceholder: true as const\n }))\n}\n\nfunction useInfiniteBlogPosts({ category, author }: UseInfiniteBlogPostsParams = {}): UseInfiniteBlogPostsResult {\n const [currentSkip, setCurrentSkip] = useState(0)\n const [showPlaceholders, setShowPlaceholders] = useState(false)\n const batchIdRef = useRef(0)\n\n // Use RTK Query with pagination - cache handles accumulation via merge\n // Backend handles category/author filtering, so we request real page sizes\n const { data, isLoading, error, isFetching } = useGetBlogPostsQuery({\n category,\n author,\n limit: currentSkip === 0 ? POSTS_INITIAL_LOAD : POSTS_PER_LOAD,\n skip: currentSkip\n })\n\n // Build display posts: cached posts + placeholders when loading more\n const displayPosts = useMemo<PostOrPlaceholder[]>(() => {\n const posts = data?.posts ?? []\n if (showPlaceholders && isFetching) {\n return [...posts, ...createPlaceholders(POSTS_PER_LOAD, batchIdRef.current)]\n }\n return posts\n }, [data?.posts, showPlaceholders, isFetching])\n\n const hasMore = data?.hasMore ?? true\n const isLoadingInitial = isLoading && currentSkip === 0\n\n // Reset skip when filters change\n useEffect(() => {\n setCurrentSkip(0)\n setShowPlaceholders(false)\n batchIdRef.current = 0\n }, [category, author])\n\n // Show placeholders when fetching more (not initial)\n useEffect(() => {\n if (isFetching && currentSkip > 0) {\n batchIdRef.current += 1\n setShowPlaceholders(true)\n } else if (!isFetching) {\n setShowPlaceholders(false)\n }\n }, [isFetching, currentSkip])\n\n // Load more function - use nextCmsSkip to properly paginate\n const loadMore = useCallback(() => {\n if (isFetching || !hasMore || !data) {\n return\n }\n // Use the CMS-level skip for proper pagination\n setCurrentSkip(data.nextCmsSkip)\n }, [isFetching, hasMore, data])\n\n // Use @dcl/hooks infinite scroll\n useInfiniteScroll({\n onLoadMore: loadMore,\n hasMore,\n isLoading: isFetching\n })\n\n return {\n posts: displayPosts,\n isLoading,\n isLoadingInitial,\n isFetching,\n hasMore,\n error\n }\n}\n\nexport { useInfiniteBlogPosts, type UseInfiniteBlogPostsParams, type UseInfiniteBlogPostsResult }\n"],"names":["useInfiniteScroll","onLoadMore","hasMore","isLoading","threshold","debounceMs","onLoadMoreRef","useRef","lastTriggerRef","useEffect","handleScroll","now","scrollHeight","scrollTop","clientHeight","timeoutId","CardContainer","styled","Box","CardImage","CardInfo","TitleLink","Link","theme","Description","LoadingHeader","LoadingImage","Skeleton","LoadingTitleLine","LoadingTitleLineShort","LoadingMetaSkeleton","LoadingTextSkeleton","LoadingTextSkeletonShort","LoadingContentBox","MainPostCard","props","post","loading","jsx","jsxs","CardImageLink","MetaBox","DateText","CategoryLink","Typography","PostListWrapper","prop","hasMainPost","isPlaceholder","PostList","memo","posts","isBigScreen","useMediaQuery","count","_","index","PostCard","firstRealPost","p","POSTS_INITIAL_LOAD","POSTS_PER_LOAD","createPlaceholders","batchId","i","useInfiniteBlogPosts","category","author","currentSkip","setCurrentSkip","useState","showPlaceholders","setShowPlaceholders","batchIdRef","data","error","isFetching","useGetBlogPostsQuery","displayPosts","useMemo","isLoadingInitial","loadMore","useCallback"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1 +1 @@
1
- import{_ as s,b as h,m as v,c as n,e as j,f as k}from"./index-DUmIu2EK.js";const E=["className","elementType","ownerState","externalForwardedProps","getSlotOwnerState","internalForwardedProps"],L=["component","slots","slotProps"],N=["component"];function W(e,o){const{className:x,elementType:_,ownerState:l,externalForwardedProps:p,getSlotOwnerState:d,internalForwardedProps:a}=o,F=s(o,E),{component:c,slots:t={[e]:void 0},slotProps:O={[e]:void 0}}=p,g=s(p,L),P=t[e]||_,r=h(O[e],l),i=v(n({className:x},F,{externalForwardedProps:e==="root"?g:void 0,externalSlotProps:r})),{props:{component:f},internalRef:y}=i,u=s(i.props,N),C=j(y,r?.ref,o.ref),S=d?d(u):{},T=n({},l,S),w=e==="root"?f||c:f,m=k(P,n({},e==="root"&&!c&&!t[e]&&a,e!=="root"&&!t[e]&&a,u,w&&{as:w},{ref:C}),T);return Object.keys(S).forEach(b=>{delete m[b]}),[P,m]}export{W as u};
1
+ import{_ as s,b as h,m as v,c as n,e as j,f as k}from"./index-_DB-noma.js";const E=["className","elementType","ownerState","externalForwardedProps","getSlotOwnerState","internalForwardedProps"],L=["component","slots","slotProps"],N=["component"];function W(e,o){const{className:x,elementType:_,ownerState:l,externalForwardedProps:p,getSlotOwnerState:d,internalForwardedProps:a}=o,F=s(o,E),{component:c,slots:t={[e]:void 0},slotProps:O={[e]:void 0}}=p,g=s(p,L),P=t[e]||_,r=h(O[e],l),i=v(n({className:x},F,{externalForwardedProps:e==="root"?g:void 0,externalSlotProps:r})),{props:{component:f},internalRef:y}=i,u=s(i.props,N),C=j(y,r?.ref,o.ref),S=d?d(u):{},T=n({},l,S),w=e==="root"?f||c:f,m=k(P,n({},e==="root"&&!c&&!t[e]&&a,e!=="root"&&!t[e]&&a,u,w&&{as:w},{ref:C}),T);return Object.keys(S).forEach(b=>{delete m[b]}),[P,m]}export{W as u};
@@ -1 +1 @@
1
- {"version":3,"file":"useSlot-DM_UQPu8.js","sources":["../../node_modules/decentraland-ui2/node_modules/@mui/material/utils/useSlot.js"],"sourcesContent":["'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\", \"elementType\", \"ownerState\", \"externalForwardedProps\", \"getSlotOwnerState\", \"internalForwardedProps\"],\n _excluded2 = [\"component\", \"slots\", \"slotProps\"],\n _excluded3 = [\"component\"];\nimport useForkRef from '@mui/utils/useForkRef';\nimport { appendOwnerState, resolveComponentProps, mergeSlotProps } from '@mui/base/utils';\n/**\n * An internal function to create a Material UI slot.\n *\n * This is an advanced version of Base UI `useSlotProps` because Material UI allows leaf component to be customized via `component` prop\n * while Base UI does not need to support leaf component customization.\n *\n * @param {string} name: name of the slot\n * @param {object} parameters\n * @returns {[Slot, slotProps]} The slot's React component and the slot's props\n *\n * Note: the returned slot's props\n * - will never contain `component` prop.\n * - might contain `as` prop.\n */\nexport default function useSlot(\n/**\n * The slot's name. All Material UI components should have `root` slot.\n *\n * If the name is `root`, the logic behaves differently from other slots,\n * e.g. the `externalForwardedProps` are spread to `root` slot but not other slots.\n */\nname, parameters) {\n const {\n className,\n elementType: initialElementType,\n ownerState,\n externalForwardedProps,\n getSlotOwnerState,\n internalForwardedProps\n } = parameters,\n useSlotPropsParams = _objectWithoutPropertiesLoose(parameters, _excluded);\n const {\n component: rootComponent,\n slots = {\n [name]: undefined\n },\n slotProps = {\n [name]: undefined\n }\n } = externalForwardedProps,\n other = _objectWithoutPropertiesLoose(externalForwardedProps, _excluded2);\n const elementType = slots[name] || initialElementType;\n\n // `slotProps[name]` can be a callback that receives the component's ownerState.\n // `resolvedComponentsProps` is always a plain object.\n const resolvedComponentsProps = resolveComponentProps(slotProps[name], ownerState);\n const _mergeSlotProps = mergeSlotProps(_extends({\n className\n }, useSlotPropsParams, {\n externalForwardedProps: name === 'root' ? other : undefined,\n externalSlotProps: resolvedComponentsProps\n })),\n {\n props: {\n component: slotComponent\n },\n internalRef\n } = _mergeSlotProps,\n mergedProps = _objectWithoutPropertiesLoose(_mergeSlotProps.props, _excluded3);\n const ref = useForkRef(internalRef, resolvedComponentsProps == null ? void 0 : resolvedComponentsProps.ref, parameters.ref);\n const slotOwnerState = getSlotOwnerState ? getSlotOwnerState(mergedProps) : {};\n const finalOwnerState = _extends({}, ownerState, slotOwnerState);\n const LeafComponent = name === 'root' ? slotComponent || rootComponent : slotComponent;\n const props = appendOwnerState(elementType, _extends({}, name === 'root' && !rootComponent && !slots[name] && internalForwardedProps, name !== 'root' && !slots[name] && internalForwardedProps, mergedProps, LeafComponent && {\n as: LeafComponent\n }, {\n ref\n }), finalOwnerState);\n Object.keys(slotOwnerState).forEach(propName => {\n delete props[propName];\n });\n return [elementType, props];\n}"],"names":["_excluded","_excluded2","_excluded3","useSlot","name","parameters","className","initialElementType","ownerState","externalForwardedProps","getSlotOwnerState","internalForwardedProps","useSlotPropsParams","_objectWithoutPropertiesLoose","rootComponent","slots","slotProps","other","elementType","resolvedComponentsProps","resolveComponentProps","_mergeSlotProps","mergeSlotProps","_extends","slotComponent","internalRef","mergedProps","ref","useForkRef","slotOwnerState","finalOwnerState","LeafComponent","props","appendOwnerState","propName"],"mappings":"2EAIA,MAAMA,EAAY,CAAC,YAAa,cAAe,aAAc,yBAA0B,oBAAqB,wBAAwB,EAClIC,EAAa,CAAC,YAAa,QAAS,WAAW,EAC/CC,EAAa,CAAC,WAAW,EAiBZ,SAASC,EAOxBC,EAAMC,EAAY,CAChB,KAAM,CACF,UAAAC,EACA,YAAaC,EACb,WAAAC,EACA,uBAAAC,EACA,kBAAAC,EACA,uBAAAC,CACN,EAAQN,EACJO,EAAqBC,EAA8BR,EAAYL,CAAS,EACpE,CACF,UAAWc,EACX,MAAAC,EAAQ,CACN,CAACX,CAAI,EAAG,MAChB,EACM,UAAAY,EAAY,CACV,CAACZ,CAAI,EAAG,MAChB,CACA,EAAQK,EACJQ,EAAQJ,EAA8BJ,EAAwBR,CAAU,EACpEiB,EAAcH,EAAMX,CAAI,GAAKG,EAI7BY,EAA0BC,EAAsBJ,EAAUZ,CAAI,EAAGI,CAAU,EAC3Ea,EAAkBC,EAAeC,EAAS,CAC5C,UAAAjB,CACN,EAAOM,EAAoB,CACrB,uBAAwBR,IAAS,OAASa,EAAQ,OAClD,kBAAmBE,CACzB,CAAK,CAAC,EACF,CACE,MAAO,CACL,UAAWK,CACnB,EACM,YAAAC,CACN,EAAQJ,EACJK,EAAcb,EAA8BQ,EAAgB,MAAOnB,CAAU,EACzEyB,EAAMC,EAAWH,EAAwDN,GAAwB,IAAKd,EAAW,GAAG,EACpHwB,EAAiBnB,EAAoBA,EAAkBgB,CAAW,EAAI,CAAA,EACtEI,EAAkBP,EAAS,GAAIf,EAAYqB,CAAc,EACzDE,EAAgB3B,IAAS,OAASoB,GAAiBV,EAAgBU,EACnEQ,EAAQC,EAAiBf,EAAaK,EAAS,CAAA,EAAInB,IAAS,QAAU,CAACU,GAAiB,CAACC,EAAMX,CAAI,GAAKO,EAAwBP,IAAS,QAAU,CAACW,EAAMX,CAAI,GAAKO,EAAwBe,EAAaK,GAAiB,CAC7N,GAAIA,CACR,EAAK,CACD,IAAAJ,CACJ,CAAG,EAAGG,CAAe,EACnB,cAAO,KAAKD,CAAc,EAAE,QAAQK,GAAY,CAC9C,OAAOF,EAAME,CAAQ,CACvB,CAAC,EACM,CAAChB,EAAac,CAAK,CAC5B","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"useSlot-Cy5UGC7c.js","sources":["../../node_modules/decentraland-ui2/node_modules/@mui/material/utils/useSlot.js"],"sourcesContent":["'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\", \"elementType\", \"ownerState\", \"externalForwardedProps\", \"getSlotOwnerState\", \"internalForwardedProps\"],\n _excluded2 = [\"component\", \"slots\", \"slotProps\"],\n _excluded3 = [\"component\"];\nimport useForkRef from '@mui/utils/useForkRef';\nimport { appendOwnerState, resolveComponentProps, mergeSlotProps } from '@mui/base/utils';\n/**\n * An internal function to create a Material UI slot.\n *\n * This is an advanced version of Base UI `useSlotProps` because Material UI allows leaf component to be customized via `component` prop\n * while Base UI does not need to support leaf component customization.\n *\n * @param {string} name: name of the slot\n * @param {object} parameters\n * @returns {[Slot, slotProps]} The slot's React component and the slot's props\n *\n * Note: the returned slot's props\n * - will never contain `component` prop.\n * - might contain `as` prop.\n */\nexport default function useSlot(\n/**\n * The slot's name. All Material UI components should have `root` slot.\n *\n * If the name is `root`, the logic behaves differently from other slots,\n * e.g. the `externalForwardedProps` are spread to `root` slot but not other slots.\n */\nname, parameters) {\n const {\n className,\n elementType: initialElementType,\n ownerState,\n externalForwardedProps,\n getSlotOwnerState,\n internalForwardedProps\n } = parameters,\n useSlotPropsParams = _objectWithoutPropertiesLoose(parameters, _excluded);\n const {\n component: rootComponent,\n slots = {\n [name]: undefined\n },\n slotProps = {\n [name]: undefined\n }\n } = externalForwardedProps,\n other = _objectWithoutPropertiesLoose(externalForwardedProps, _excluded2);\n const elementType = slots[name] || initialElementType;\n\n // `slotProps[name]` can be a callback that receives the component's ownerState.\n // `resolvedComponentsProps` is always a plain object.\n const resolvedComponentsProps = resolveComponentProps(slotProps[name], ownerState);\n const _mergeSlotProps = mergeSlotProps(_extends({\n className\n }, useSlotPropsParams, {\n externalForwardedProps: name === 'root' ? other : undefined,\n externalSlotProps: resolvedComponentsProps\n })),\n {\n props: {\n component: slotComponent\n },\n internalRef\n } = _mergeSlotProps,\n mergedProps = _objectWithoutPropertiesLoose(_mergeSlotProps.props, _excluded3);\n const ref = useForkRef(internalRef, resolvedComponentsProps == null ? void 0 : resolvedComponentsProps.ref, parameters.ref);\n const slotOwnerState = getSlotOwnerState ? getSlotOwnerState(mergedProps) : {};\n const finalOwnerState = _extends({}, ownerState, slotOwnerState);\n const LeafComponent = name === 'root' ? slotComponent || rootComponent : slotComponent;\n const props = appendOwnerState(elementType, _extends({}, name === 'root' && !rootComponent && !slots[name] && internalForwardedProps, name !== 'root' && !slots[name] && internalForwardedProps, mergedProps, LeafComponent && {\n as: LeafComponent\n }, {\n ref\n }), finalOwnerState);\n Object.keys(slotOwnerState).forEach(propName => {\n delete props[propName];\n });\n return [elementType, props];\n}"],"names":["_excluded","_excluded2","_excluded3","useSlot","name","parameters","className","initialElementType","ownerState","externalForwardedProps","getSlotOwnerState","internalForwardedProps","useSlotPropsParams","_objectWithoutPropertiesLoose","rootComponent","slots","slotProps","other","elementType","resolvedComponentsProps","resolveComponentProps","_mergeSlotProps","mergeSlotProps","_extends","slotComponent","internalRef","mergedProps","ref","useForkRef","slotOwnerState","finalOwnerState","LeafComponent","props","appendOwnerState","propName"],"mappings":"2EAIA,MAAMA,EAAY,CAAC,YAAa,cAAe,aAAc,yBAA0B,oBAAqB,wBAAwB,EAClIC,EAAa,CAAC,YAAa,QAAS,WAAW,EAC/CC,EAAa,CAAC,WAAW,EAiBZ,SAASC,EAOxBC,EAAMC,EAAY,CAChB,KAAM,CACF,UAAAC,EACA,YAAaC,EACb,WAAAC,EACA,uBAAAC,EACA,kBAAAC,EACA,uBAAAC,CACN,EAAQN,EACJO,EAAqBC,EAA8BR,EAAYL,CAAS,EACpE,CACF,UAAWc,EACX,MAAAC,EAAQ,CACN,CAACX,CAAI,EAAG,MAChB,EACM,UAAAY,EAAY,CACV,CAACZ,CAAI,EAAG,MAChB,CACA,EAAQK,EACJQ,EAAQJ,EAA8BJ,EAAwBR,CAAU,EACpEiB,EAAcH,EAAMX,CAAI,GAAKG,EAI7BY,EAA0BC,EAAsBJ,EAAUZ,CAAI,EAAGI,CAAU,EAC3Ea,EAAkBC,EAAeC,EAAS,CAC5C,UAAAjB,CACN,EAAOM,EAAoB,CACrB,uBAAwBR,IAAS,OAASa,EAAQ,OAClD,kBAAmBE,CACzB,CAAK,CAAC,EACF,CACE,MAAO,CACL,UAAWK,CACnB,EACM,YAAAC,CACN,EAAQJ,EACJK,EAAcb,EAA8BQ,EAAgB,MAAOnB,CAAU,EACzEyB,EAAMC,EAAWH,EAAwDN,GAAwB,IAAKd,EAAW,GAAG,EACpHwB,EAAiBnB,EAAoBA,EAAkBgB,CAAW,EAAI,CAAA,EACtEI,EAAkBP,EAAS,GAAIf,EAAYqB,CAAc,EACzDE,EAAgB3B,IAAS,OAASoB,GAAiBV,EAAgBU,EACnEQ,EAAQC,EAAiBf,EAAaK,EAAS,CAAA,EAAInB,IAAS,QAAU,CAACU,GAAiB,CAACC,EAAMX,CAAI,GAAKO,EAAwBP,IAAS,QAAU,CAACW,EAAMX,CAAI,GAAKO,EAAwBe,EAAaK,GAAiB,CAC7N,GAAIA,CACR,EAAK,CACD,IAAAJ,CACJ,CAAG,EAAGG,CAAe,EACnB,cAAO,KAAKD,CAAc,EAAE,QAAQK,GAAY,CAC9C,OAAOF,EAAME,CAAQ,CACvB,CAAC,EACM,CAAChB,EAAac,CAAK,CAC5B","x_google_ignoreList":[0]}