@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.
- package/assets/{AnimatedBackground-BbbuCmrW.js → AnimatedBackground-ChAxvzpE.js} +2 -2
- package/assets/{AnimatedBackground-BbbuCmrW.js.map → AnimatedBackground-ChAxvzpE.js.map} +1 -1
- package/assets/{AnimatedSection-CcAt5h6R.js → AnimatedSection-BTD2Dz_H.js} +1 -1
- package/assets/{AnimatedSection-CcAt5h6R.js.map → AnimatedSection-BTD2Dz_H.js.map} +1 -1
- package/assets/{ArrowBackIosNew-lqzUFZQL.js → ArrowBackIosNew-Dy0wgUVY.js} +1 -1
- package/assets/{ArrowBackIosNew-lqzUFZQL.js.map → ArrowBackIosNew-Dy0wgUVY.js.map} +1 -1
- package/assets/{AuthorPage-4inFQH2X.js → AuthorPage-Byuf4cVh.js} +1 -1
- package/assets/{AuthorPage-4inFQH2X.js.map → AuthorPage-Byuf4cVh.js.map} +1 -1
- package/assets/{Badges-DPcq_7dC.js → Badges-MRoIfo36.js} +1 -1
- package/assets/{Badges-DPcq_7dC.js.map → Badges-MRoIfo36.js.map} +1 -1
- package/assets/{BlogLayout-Bl9FID_L.js → BlogLayout-zeqeF6P_.js} +1 -1
- package/assets/{BlogLayout-Bl9FID_L.js.map → BlogLayout-zeqeF6P_.js.map} +1 -1
- package/assets/{BlogPage-4c8ZFzdw.js → BlogPage-D9JUOgNf.js} +1 -1
- package/assets/{BlogPage-4c8ZFzdw.js.map → BlogPage-D9JUOgNf.js.map} +1 -1
- package/assets/{CTAButton-D8_9d6Wu.js → CTAButton-dUbnAFrF.js} +1 -1
- package/assets/{CTAButton-D8_9d6Wu.js.map → CTAButton-dUbnAFrF.js.map} +1 -1
- package/assets/{CardContent-BQ0iSa2p.js → CardContent-C2Yp8bGg.js} +1 -1
- package/assets/{CardContent-BQ0iSa2p.js.map → CardContent-C2Yp8bGg.js.map} +1 -1
- package/assets/{CardMedia-B6PneSTk.js → CardMedia-B8io6l5d.js} +1 -1
- package/assets/{CardMedia-B6PneSTk.js.map → CardMedia-B8io6l5d.js.map} +1 -1
- package/assets/{Carousel-DJd7E-wq.js → Carousel-8PM_J7Qk.js} +1 -1
- package/assets/{Carousel-DJd7E-wq.js.map → Carousel-8PM_J7Qk.js.map} +1 -1
- package/assets/{CategoryPage-DNQI3nXz.js → CategoryPage-BgijBlf0.js} +1 -1
- package/assets/{CategoryPage-DNQI3nXz.js.map → CategoryPage-BgijBlf0.js.map} +1 -1
- package/assets/{CircleAndArrow-DIeWRbH9.js → CircleAndArrow-DeiiAyu0.js} +1 -1
- package/assets/{CircleAndArrow-DIeWRbH9.js.map → CircleAndArrow-DeiiAyu0.js.map} +1 -1
- package/assets/{CircularProgress-AsNM1BvH.js → CircularProgress-COCfVUkZ.js} +1 -1
- package/assets/{CircularProgress-AsNM1BvH.js.map → CircularProgress-COCfVUkZ.js.map} +1 -1
- package/assets/{ContentCopy-CDhBZqHF.js → ContentCopy-D1MZhJvE.js} +1 -1
- package/assets/{ContentCopy-CDhBZqHF.js.map → ContentCopy-D1MZhJvE.js.map} +1 -1
- package/assets/{CreateEventPage-NcQUT47j.js → CreateEventPage-hChmRJMr.js} +1 -1
- package/assets/CreateEventPage-hChmRJMr.js.map +1 -0
- package/assets/{CreatorHubDownload-y9x_B8ll.js → CreatorHubDownload-DYMGdevm.js} +1 -1
- package/assets/{CreatorHubDownload-y9x_B8ll.js.map → CreatorHubDownload-DYMGdevm.js.map} +1 -1
- package/assets/{CreatorHubDownloadSuccess-BP7MSbSp.js → CreatorHubDownloadSuccess-B_jSl9tg.js} +1 -1
- package/assets/{CreatorHubDownloadSuccess-BP7MSbSp.js.map → CreatorHubDownloadSuccess-B_jSl9tg.js.map} +1 -1
- package/assets/{DappsShell-HNAsXcn5.js → DappsShell-BicDTonr.js} +1 -1
- package/assets/{DappsShell-HNAsXcn5.js.map → DappsShell-BicDTonr.js.map} +1 -1
- package/assets/{DownloadSuccessLayout-COBp7A1N.js → DownloadSuccessLayout-CqT-1vfy.js} +1 -1
- package/assets/{DownloadSuccessLayout-COBp7A1N.js.map → DownloadSuccessLayout-CqT-1vfy.js.map} +1 -1
- package/assets/{Grow-eKASrvPe.js → Grow-BrqQ3k5X.js} +1 -1
- package/assets/{Grow-eKASrvPe.js.map → Grow-BrqQ3k5X.js.map} +1 -1
- package/assets/HomePage-BZg04XAY.js +3 -0
- package/assets/HomePage-BZg04XAY.js.map +1 -0
- package/assets/{InviteFaqs-BkOvxqyN.js → InviteFaqs-CsVkWLzg.js} +1 -1
- package/assets/{InviteFaqs-BkOvxqyN.js.map → InviteFaqs-CsVkWLzg.js.map} +1 -1
- package/assets/{InvitePage-D5lELZNP.js → InvitePage-BDekb47F.js} +2 -2
- package/assets/{InvitePage-D5lELZNP.js.map → InvitePage-BDekb47F.js.map} +1 -1
- package/assets/{JumpInIcon-bPOWl5ae.js → JumpInIcon-TFxEXFSr.js} +1 -1
- package/assets/{JumpInIcon-bPOWl5ae.js.map → JumpInIcon-TFxEXFSr.js.map} +1 -1
- package/assets/{LegalPageLayout-DeH35WpT.js → LegalPageLayout-DpJoq1IM.js} +1 -1
- package/assets/{LegalPageLayout-DeH35WpT.js.map → LegalPageLayout-DpJoq1IM.js.map} +1 -1
- package/assets/{Link-C3GGl2C6.js → Link-Knt-Kosk.js} +1 -1
- package/assets/{Link-C3GGl2C6.js.map → Link-Knt-Kosk.js.map} +1 -1
- package/assets/{MenuItem-B0piwgTa.js → MenuItem-ibmHV6zy.js} +1 -1
- package/assets/{MenuItem-B0piwgTa.js.map → MenuItem-ibmHV6zy.js.map} +1 -1
- package/assets/{Paper-BfSYUoim.js → Paper-DQs--rBO.js} +1 -1
- package/assets/{Paper-BfSYUoim.js.map → Paper-DQs--rBO.js.map} +1 -1
- package/assets/{PostCard-Zsk0_WYz.js → PostCard-BbfzA3Qx.js} +1 -1
- package/assets/{PostCard-Zsk0_WYz.js.map → PostCard-BbfzA3Qx.js.map} +1 -1
- package/assets/{PostPage-FBb63V37.js → PostPage-CosfC1Na.js} +1 -1
- package/assets/{PostPage-FBb63V37.js.map → PostPage-CosfC1Na.js.map} +1 -1
- package/assets/{PostPage.styled-B7Xofl3c.js → PostPage.styled-Dd-3Ce5F.js} +3 -3
- package/assets/{PostPage.styled-B7Xofl3c.js.map → PostPage.styled-Dd-3Ce5F.js.map} +1 -1
- package/assets/{PreviewPage-Dla6vQZW.js → PreviewPage-Dcx8YtgK.js} +1 -1
- package/assets/{PreviewPage-Dla6vQZW.js.map → PreviewPage-Dcx8YtgK.js.map} +1 -1
- package/assets/{SEO-CGGKu_zm.js → SEO-CwFoEftO.js} +1 -1
- package/assets/{SEO-CGGKu_zm.js.map → SEO-CwFoEftO.js.map} +1 -1
- package/assets/{SearchPage-ByMcz1c8.js → SearchPage-BUTdqyzo.js} +1 -1
- package/assets/{SearchPage-ByMcz1c8.js.map → SearchPage-BUTdqyzo.js.map} +1 -1
- package/assets/{SignInRedirect-BNwfxyGB.js → SignInRedirect-C-ss1k0l.js} +1 -1
- package/assets/{SignInRedirect-BNwfxyGB.js.map → SignInRedirect-C-ss1k0l.js.map} +1 -1
- package/assets/{SignInRedirect-Bxl1dwag.js → SignInRedirect-CsLtxSTb.js} +1 -1
- package/assets/{SignInRedirect-Bxl1dwag.js.map → SignInRedirect-CsLtxSTb.js.map} +1 -1
- package/assets/{Skeleton-BP1Os8gY.js → Skeleton-yDn4B-G5.js} +1 -1
- package/assets/{Skeleton-BP1Os8gY.js.map → Skeleton-yDn4B-G5.js.map} +1 -1
- package/assets/{TwitterEmbed-BbSYYog-.js → TwitterEmbed-CD3AmHIQ.js} +1 -1
- package/assets/{TwitterEmbed-BbSYYog-.js.map → TwitterEmbed-CD3AmHIQ.js.map} +1 -1
- package/assets/{Video--A0fBGqz.js → Video-phAvQnqc.js} +1 -1
- package/assets/{Video--A0fBGqz.js.map → Video-phAvQnqc.js.map} +1 -1
- package/assets/{WearablePreview-KunRQByO.js → WearablePreview-DJQBWbVv.js} +1 -1
- package/assets/{WearablePreview-KunRQByO.js.map → WearablePreview-DJQBWbVv.js.map} +1 -1
- package/assets/{auto-track-DJw7KsLA.js → auto-track-b36iF1aP.js} +1 -1
- package/assets/{auto-track-DJw7KsLA.js.map → auto-track-b36iF1aP.js.map} +1 -1
- package/assets/{ccip-EHA4QwVS.js → ccip-C--_xcyn.js} +1 -1
- package/assets/{ccip-EHA4QwVS.js.map → ccip-C--_xcyn.js.map} +1 -1
- package/assets/{createSvgIcon-CnAtXIjx.js → createSvgIcon-Ck-nYodG.js} +1 -1
- package/assets/{createSvgIcon-CnAtXIjx.js.map → createSvgIcon-Ck-nYodG.js.map} +1 -1
- package/assets/{download-Csh0UAX4.js → download-DdWNey2d.js} +2 -2
- package/assets/{download-Csh0UAX4.js.map → download-DdWNey2d.js.map} +1 -1
- package/assets/{downloadWithIdentity-imzC-1Iy.js → downloadWithIdentity-BySK_Bjg.js} +1 -1
- package/assets/{downloadWithIdentity-imzC-1Iy.js.map → downloadWithIdentity-BySK_Bjg.js.map} +1 -1
- package/assets/{events.client-BypQp_hx.js → events.client-CWWGjxi9.js} +1 -1
- package/assets/events.client-CWWGjxi9.js.map +1 -0
- package/assets/host_avatar-Gho9W3pF.webp +0 -0
- package/assets/host_scene-BStngEfA.webp +0 -0
- package/assets/{index-DwKCx_Fj.js → index-4Rn0RKA3.js} +17 -17
- package/assets/{index-DwKCx_Fj.js.map → index-4Rn0RKA3.js.map} +1 -1
- package/assets/{index-Hs2OtJ7_.js → index-AQyj9O_P.js} +1 -1
- package/assets/{index-Hs2OtJ7_.js.map → index-AQyj9O_P.js.map} +1 -1
- package/assets/{index-BtL1Whr6.js → index-BD4zd6ws.js} +1 -1
- package/assets/{index-BtL1Whr6.js.map → index-BD4zd6ws.js.map} +1 -1
- package/assets/{index-CqU_IKja.js → index-BJ7TnoEw.js} +1 -1
- package/assets/{index-CqU_IKja.js.map → index-BJ7TnoEw.js.map} +1 -1
- package/assets/{index-Bfn0rTR9.js → index-Bdgec4Ls.js} +1 -1
- package/assets/{index-Bfn0rTR9.js.map → index-Bdgec4Ls.js.map} +1 -1
- package/assets/{index-DV8UooZK.js → index-BjIVdBT0.js} +1 -1
- package/assets/{index-DV8UooZK.js.map → index-BjIVdBT0.js.map} +1 -1
- package/assets/{index-fmnLygLZ.js → index-BnaCJ0sp.js} +1 -1
- package/assets/{index-fmnLygLZ.js.map → index-BnaCJ0sp.js.map} +1 -1
- package/assets/{index-BO6ciUn8.js → index-C5c9wKGi.js} +1 -1
- package/assets/{index-BO6ciUn8.js.map → index-C5c9wKGi.js.map} +1 -1
- package/assets/{index-Bq7PojkE.js → index-CLRzSdDs.js} +1 -1
- package/assets/{index-Bq7PojkE.js.map → index-CLRzSdDs.js.map} +1 -1
- package/assets/{index-B-PLjKpI.js → index-CM1y4MwR.js} +1 -1
- package/assets/{index-B-PLjKpI.js.map → index-CM1y4MwR.js.map} +1 -1
- package/assets/{index-FcfsIuei.js → index-CSbcajOU.js} +1 -1
- package/assets/{index-FcfsIuei.js.map → index-CSbcajOU.js.map} +1 -1
- package/assets/{index-CC8b5SLA.js → index-CWHKL6N8.js} +1 -1
- package/assets/{index-CC8b5SLA.js.map → index-CWHKL6N8.js.map} +1 -1
- package/assets/index-CaN3aesa.js +1 -0
- package/assets/{index-DJdpP3iF.js.map → index-CaN3aesa.js.map} +1 -1
- package/assets/{index-CJ9b6HdV.js → index-CeX_Loqr.js} +1 -1
- package/assets/{index-CJ9b6HdV.js.map → index-CeX_Loqr.js.map} +1 -1
- package/assets/{index-BKY10VNY.js → index-Cjz0nm3N.js} +1 -1
- package/assets/{index-BKY10VNY.js.map → index-Cjz0nm3N.js.map} +1 -1
- package/assets/{index-pguZ7Pr7.js → index-CkaRi2_3.js} +2 -2
- package/assets/{index-pguZ7Pr7.js.map → index-CkaRi2_3.js.map} +1 -1
- package/assets/{index-XwRFjo-F.js → index-D6yjbNdZ.js} +3 -3
- package/assets/{index-XwRFjo-F.js.map → index-D6yjbNdZ.js.map} +1 -1
- package/assets/{index-0VgKmd34.js → index-DGs_qCuq.js} +1 -1
- package/assets/{index-0VgKmd34.js.map → index-DGs_qCuq.js.map} +1 -1
- package/assets/{index-DIU7xr_7.js → index-DHJSVI3a.js} +1 -1
- package/assets/{index-DIU7xr_7.js.map → index-DHJSVI3a.js.map} +1 -1
- package/assets/{index-KkMZZ6nz.js → index-DMpXTyjU.js} +1 -1
- package/assets/{index-KkMZZ6nz.js.map → index-DMpXTyjU.js.map} +1 -1
- package/assets/{index-iTL2dY0l.js → index-DXcPgEVs.js} +1 -1
- package/assets/{index-iTL2dY0l.js.map → index-DXcPgEVs.js.map} +1 -1
- package/assets/{index-BaEE4ZXP.js → index-D_URcwLX.js} +1 -1
- package/assets/{index-BaEE4ZXP.js.map → index-D_URcwLX.js.map} +1 -1
- package/assets/index-DckfeXPH.js +1 -0
- package/assets/index-DckfeXPH.js.map +1 -0
- package/assets/{index-CsY_wahP.js → index-Dg-O6Pur.js} +1 -1
- package/assets/{index-CsY_wahP.js.map → index-Dg-O6Pur.js.map} +1 -1
- package/assets/{index-CXMTgMUj.js → index-DhwtUY1f.js} +1 -1
- package/assets/{index-CXMTgMUj.js.map → index-DhwtUY1f.js.map} +1 -1
- package/assets/{index-Dx9lzInm.js → index-DrayNXRb.js} +1 -1
- package/assets/{index-Dx9lzInm.js.map → index-DrayNXRb.js.map} +1 -1
- package/assets/{index-CfKiEnnb.js → index-UYb7Po3h.js} +1 -1
- package/assets/{index-CfKiEnnb.js.map → index-UYb7Po3h.js.map} +1 -1
- package/assets/{index-Bd63106P.js → index-XKJmyO_p.js} +1 -1
- package/assets/{index-Bd63106P.js.map → index-XKJmyO_p.js.map} +1 -1
- package/assets/{index-BVu5N7d0.js → index-ZgulVRiq.js} +1 -1
- package/assets/{index-BVu5N7d0.js.map → index-ZgulVRiq.js.map} +1 -1
- package/assets/{index-DUmIu2EK.js → index-_DB-noma.js} +29 -29
- package/assets/{index-DUmIu2EK.js.map → index-_DB-noma.js.map} +1 -1
- package/assets/{index-DW87VeBc.js → index-mEd8fX0_.js} +1 -1
- package/assets/{index-DW87VeBc.js.map → index-mEd8fX0_.js.map} +1 -1
- package/assets/{index-BzmWmDt2.js → index-niWFQNCe.js} +1 -1
- package/assets/{index-BzmWmDt2.js.map → index-niWFQNCe.js.map} +1 -1
- package/assets/{profile.client-BtZZbgxj.js → profile.client-CmNJLNox.js} +1 -1
- package/assets/{profile.client-BtZZbgxj.js.map → profile.client-CmNJLNox.js.map} +1 -1
- package/assets/{shared.styled-D8qloAmp.js → shared.styled-8JiXG0YJ.js} +1 -1
- package/assets/{shared.styled-D8qloAmp.js.map → shared.styled-8JiXG0YJ.js.map} +1 -1
- package/assets/{store-OyTPwmKI.js → store-ChFhVM4L.js} +1 -1
- package/assets/{store-OyTPwmKI.js.map → store-ChFhVM4L.js.map} +1 -1
- package/assets/{url-BHzlJYXC.js → url-DaZlsYoU.js} +1 -1
- package/assets/{url-BHzlJYXC.js.map → url-DaZlsYoU.js.map} +1 -1
- package/assets/{useAuthIdentity-D2zQ3q5X.js → useAuthIdentity-CvL2aq09.js} +1 -1
- package/assets/{useAuthIdentity-D2zQ3q5X.js.map → useAuthIdentity-CvL2aq09.js.map} +1 -1
- package/assets/{useCreatorHubDownload-Dp_zMaiv.js → useCreatorHubDownload-EAoN-CCw.js} +1 -1
- package/assets/{useCreatorHubDownload-Dp_zMaiv.js.map → useCreatorHubDownload-EAoN-CCw.js.map} +1 -1
- package/assets/{useInfiniteBlogPosts-B9Mv_Fup.js → useInfiniteBlogPosts-Bp1S1sH2.js} +1 -1
- package/assets/{useInfiniteBlogPosts-B9Mv_Fup.js.map → useInfiniteBlogPosts-Bp1S1sH2.js.map} +1 -1
- package/assets/{useSlot-DM_UQPu8.js → useSlot-Cy5UGC7c.js} +1 -1
- package/assets/{useSlot-DM_UQPu8.js.map → useSlot-Cy5UGC7c.js.map} +1 -1
- package/assets/{utils-CJGePSnj.js → utils-Ci8rWaIt.js} +1 -1
- package/assets/{utils-CJGePSnj.js.map → utils-Ci8rWaIt.js.map} +1 -1
- package/index.html +15 -15
- package/package.json +3 -3
- package/assets/CreateEventPage-NcQUT47j.js.map +0 -1
- package/assets/HomePage-CZwkfB5G.js +0 -3
- package/assets/HomePage-CZwkfB5G.js.map +0 -1
- package/assets/events.client-BypQp_hx.js.map +0 -1
- package/assets/index-C1apFG92.js +0 -1
- package/assets/index-C1apFG92.js.map +0 -1
- package/assets/index-DJdpP3iF.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{al as S,j as e,am as T,s as h,z as I,a as O,v as R,x as w,g as H}from"./index-
|
|
1
|
+
import{al as S,j as e,am as T,s as h,z as I,a as O,v as R,x as w,g as H}from"./index-_DB-noma.js";import{r as d,a as $}from"./vendor-router-D_36sTKu.js";import"./vendor-ua-D7qqAxdq.js";import{h as q,g as z,f as U,B as y,l as m}from"./BlogLayout-zeqeF6P_.js";import{P as F}from"./PostCard-BbfzA3Qx.js";import{C as b,a as N,P as G,H as V,M as X,b as Q,f as J,T as K,c as Y,S as Z,g as tt,A as et,h as rt,d as at,e as ot,i as st,j as it,k as P,B as nt,R as lt}from"./PostPage.styled-Dd-3Ce5F.js";import{S as ct,O as dt}from"./SEO-CwFoEftO.js";import"./vendor-sentry-BSvWNK4f.js";import{i as p}from"./events.client-CWWGjxi9.js";import{p as u,u as pt}from"./store-ChFhVM4L.js";import{C as ut}from"./CircularProgress-COCfVUkZ.js";import"./vendor-crypto-uuuQA3i5.js";import"./vendor-schemas-DJzTSxpO.js";import"./vendor-intl-D2lXWsDp.js";import"./CardContent-C2Yp8bGg.js";import"./Paper-DQs--rBO.js";import"./Skeleton-yDn4B-G5.js";var j={},gt=T;Object.defineProperty(j,"__esModule",{value:!0});var C=j.default=void 0;xt(d);var ht=gt(S()),ft=e;function M(t){if(typeof WeakMap!="function")return null;var a=new WeakMap,o=new WeakMap;return(M=function(s){return s?o:a})(t)}function xt(t,a){if(t&&t.__esModule)return t;if(t===null||typeof t!="object"&&typeof t!="function")return{default:t};var o=M(a);if(o&&o.has(t))return o.get(t);var s={__proto__:null},l=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in t)if(i!=="default"&&Object.prototype.hasOwnProperty.call(t,i)){var n=l?Object.getOwnPropertyDescriptor(t,i):null;n&&(n.get||n.set)?Object.defineProperty(s,i,n):s[i]=t[i]}return s.default=t,o&&o.set(t,s),s}C=j.default=(0,ht.default)((0,ft.jsx)("path",{d:"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"}),"X");var _={},yt=T;Object.defineProperty(_,"__esModule",{value:!0});var B=_.default=void 0;_t(d);var mt=yt(S()),jt=e;function L(t){if(typeof WeakMap!="function")return null;var a=new WeakMap,o=new WeakMap;return(L=function(s){return s?o:a})(t)}function _t(t,a){if(t&&t.__esModule)return t;if(t===null||typeof t!="object"&&typeof t!="function")return{default:t};var o=L(a);if(o&&o.has(t))return o.get(t);var s={__proto__:null},l=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in t)if(i!=="default"&&Object.prototype.hasOwnProperty.call(t,i)){var n=l?Object.getOwnPropertyDescriptor(t,i):null;n&&(n.get||n.set)?Object.defineProperty(s,i,n):s[i]=t[i]}return s.default=t,o&&o.set(t,s),s}B=_.default=(0,mt.default)((0,jt.jsx)("path",{d:"M5 3h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2m13 2h-2.5A3.5 3.5 0 0 0 12 8.5V11h-2v3h2v7h3v-7h3v-3h-3V9a1 1 0 0 1 1-1h2V5z"}),"Facebook");const vt=h("section")(({theme:t})=>({backgroundColor:I.softBlack2,paddingBottom:t.spacing(13),paddingTop:t.spacing(12),width:"100%"})),bt=h(O)(({theme:t})=>({display:"flex",flexDirection:"column",gap:t.spacing(3),paddingLeft:t.spacing(2),paddingRight:t.spacing(2),width:"100%",maxWidth:t.spacing(136.875),margin:"0 auto"})),Pt=h(R)(({theme:t})=>({...t.typography.h6,color:t.palette.text.primary})),St=h(O)(({theme:t})=>({display:"flex",flexWrap:"nowrap",justifyContent:"flex-start",gap:t.spacing(4),[t.breakpoints.down("xs")]:{justifyContent:"center",flexWrap:"wrap"}})),Tt=3,Ot=d.memo(t=>{const{posts:a=[],loading:o=!1,maxItems:s=Tt}=t,l=a.slice(0,s),{t:i}=w();return o||l.length===0?null:e.jsx(vt,{children:e.jsxs(bt,{children:[e.jsx(Pt,{variant:"h6",children:i("blog.related_post")}),e.jsx(St,{children:l.map(n=>e.jsx(F,{post:n},n.id))})]})})}),g=t=>t.blog;p([g],t=>u.selectAll(t));p([g],t=>u.selectEntities(t));p([g,(t,a)=>a],(t,a)=>u.selectById(t,a));const Rt=p([g,(t,a)=>a,(t,a,o)=>o],(t,a,o)=>u.selectAll(t).find(s=>s.category.slug===a&&s.slug===o));p([g],t=>u.selectTotal(t));const k=3,wt=10,Ct=k*wt,Vt=()=>{const{t}=w(),{categorySlug:a,postSlug:o}=$(),s=pt(x=>Rt(x,a??"",o??"")),{data:l,isLoading:i,error:n}=q({categorySlug:a||"",postSlug:o||""},{skip:!!s}),r=d.useMemo(()=>s||l,[s,l]),{data:f,isLoading:A}=z({category:r?.category.id,limit:Ct,skip:0},{skip:!r?.category.id}),E=d.useMemo(()=>!f?.posts||!r?[]:f.posts.filter(x=>x.id!==r.id),[r,f?.posts]),D=d.useMemo(()=>U(r?.publishedDate),[r?.publishedDate]),c=r?.author,W=!!c&&!!c.title,v=H("BLOG_BASE_URL")||"";return i&&!s?e.jsx(y,{showBlogNavigation:!0,activeCategory:a,children:e.jsx(b,{children:e.jsx(ut,{})})}):n||!r?e.jsx(y,{showBlogNavigation:!0,activeCategory:a,children:e.jsx(b,{children:e.jsx(R,{color:"error",children:t("error.load_post")})})}):e.jsxs(y,{showBlogNavigation:!0,activeCategory:a,relatedPosts:e.jsx(Ot,{posts:E,loading:A,maxItems:k}),children:[e.jsx(ct,{title:r?.title,description:r?.description||t("blog.default_description"),url:r?`${v}/${a}/${o}`:v,type:dt.ARTICLE,image:r?.image?{url:r.image.url,width:r.image.width,height:r.image.height,alt:r.title}:void 0,author:c?.title,publishedTime:r?.publishedDate,section:r?.category.title,tags:r?.category.title?[r.category.title]:void 0}),e.jsxs(N,{children:[e.jsx(G,{src:r.image.url,alt:r.title,width:r.image.width,height:r.image.height,fetchPriority:"high",decoding:"async"}),e.jsxs(V,{children:[e.jsxs(X,{as:"span",children:[D,e.jsx(Q,{children:"•"}),e.jsx(J,{to:m.category(r.category.slug),children:r.category.title})]}),e.jsx(K,{children:e.jsx(Y,{variant:"h4",children:r.title})}),e.jsx(Z,{variant:"h6",children:r.description})]}),W&&e.jsxs(tt,{children:[e.jsx(et,{children:e.jsxs(rt,{to:c.url,children:[c.image?.url&&e.jsx(at,{src:c.image.url,alt:c.title,loading:"lazy",decoding:"async"}),e.jsx(ot,{variant:"body2",children:c.title})]})}),e.jsxs(st,{children:[e.jsx(it,{children:t("blog.share")}),e.jsx(P,{href:m.twitter(r),target:"_blank",rel:"noopener noreferrer",children:e.jsx(C,{fontSize:"small"})}),e.jsx(P,{href:m.facebook(r),target:"_blank",rel:"noopener noreferrer",children:e.jsx(B,{fontSize:"small"})})]})]}),e.jsx(nt,{children:e.jsx(lt,{document:r.body,assets:r.bodyAssets})})]})]})};export{Vt as PostPage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PostPage-FBb63V37.js","sources":["../../node_modules/@mui/icons-material/X.js","../../node_modules/@mui/icons-material/Facebook.js","../../src/components/blog/RelatedPost/RelatedPost.styled.ts","../../src/components/blog/RelatedPost/RelatedPost.tsx","../../src/features/blog/blog.selectors.ts","../../src/pages/blog/PostPage.tsx"],"sourcesContent":["\"use strict\";\n'use client';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\nvar _default = exports.default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z\"\n}), 'X');","\"use strict\";\n'use client';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\nvar _default = exports.default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M5 3h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2m13 2h-2.5A3.5 3.5 0 0 0 12 8.5V11h-2v3h2v7h3v-7h3v-3h-3V9a1 1 0 0 1 1-1h2V5z\"\n}), 'Facebook');","import { Box, Typography, dclColors, styled } from 'decentraland-ui2'\n\nconst RelatedSection = styled('section')(({ theme }) => ({\n backgroundColor: dclColors.neutral.softBlack2,\n paddingBottom: theme.spacing(13),\n paddingTop: theme.spacing(12),\n width: '100%'\n}))\n\nconst RelatedContainer = styled(Box)(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(3),\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2),\n width: '100%',\n maxWidth: theme.spacing(136.875),\n margin: '0 auto'\n}))\n\nconst RelatedTitle = styled(Typography)(({ theme }) => ({\n ...theme.typography.h6,\n color: theme.palette.text.primary\n}))\n\nconst RelatedWrapper = styled(Box)(({ theme }) => ({\n display: 'flex',\n flexWrap: 'nowrap',\n justifyContent: 'flex-start',\n gap: theme.spacing(4),\n [theme.breakpoints.down('xs')]: {\n justifyContent: 'center',\n flexWrap: 'wrap'\n }\n}))\n\nexport { RelatedContainer, RelatedSection, RelatedTitle, RelatedWrapper }\n","import { memo } from 'react'\nimport { useTranslation } from '@dcl/hooks'\nimport { PostCard } from '../PostCard'\nimport type { RelatedPostProps } from './RelatedPost.types'\nimport { RelatedContainer, RelatedSection, RelatedTitle, RelatedWrapper } from './RelatedPost.styled'\n\nconst DEFAULT_MAX_ITEMS = 3\n\nconst RelatedPost = memo((props: RelatedPostProps) => {\n const { posts = [], loading = false, maxItems = DEFAULT_MAX_ITEMS } = props\n const visiblePosts = posts.slice(0, maxItems)\n const { t } = useTranslation()\n\n if (loading || visiblePosts.length === 0) {\n return null\n }\n\n return (\n <RelatedSection>\n <RelatedContainer>\n <RelatedTitle variant=\"h6\">{t('blog.related_post')}</RelatedTitle>\n <RelatedWrapper>\n {visiblePosts.map(post => (\n <PostCard key={post.id} post={post} />\n ))}\n </RelatedWrapper>\n </RelatedContainer>\n </RelatedSection>\n )\n})\n\nexport { RelatedPost }\n","import { createSelector } from '@reduxjs/toolkit'\nimport type { BlogPost } from '../../shared/blog/types/blog.domain'\nimport type { RootState } from '../../shells/store'\nimport { blogReducer, postsSelectors } from './blog.slice'\n\ntype BlogState = ReturnType<typeof blogReducer>\n\n// Base selector to get the blog state\nconst selectBlogState = (state: RootState): BlogState => state.blog\n\n// Select all posts from normalized state\nconst selectAllPosts = createSelector([selectBlogState], (blogState): BlogPost[] => postsSelectors.selectAll(blogState))\n\n// Select posts as a dictionary (id -> post)\nconst selectPostsEntities = createSelector(\n [selectBlogState],\n (blogState): Record<string, BlogPost> => postsSelectors.selectEntities(blogState)\n)\n\n// Select a post by ID from normalized state\nconst selectPostById = createSelector(\n [selectBlogState, (_state: RootState, postId: string) => postId],\n (blogState, postId): BlogPost | undefined => postsSelectors.selectById(blogState, postId)\n)\n\n// Select a post by category+slug combination (used by PostPage to avoid re-fetching from RTK cache)\nconst selectPostByCategoryAndSlug = createSelector(\n [\n selectBlogState,\n (_state: RootState, categorySlug: string) => categorySlug,\n (_state: RootState, _cat: string, postSlug: string) => postSlug\n ],\n (blogState, categorySlug, postSlug): BlogPost | undefined =>\n postsSelectors.selectAll(blogState).find(p => p.category.slug === categorySlug && p.slug === postSlug)\n)\n\n// Select total count of cached posts\nconst selectPostsTotal = createSelector([selectBlogState], (blogState): number => postsSelectors.selectTotal(blogState))\n\nexport { selectAllPosts, selectPostById, selectPostByCategoryAndSlug, selectPostsEntities, selectPostsTotal }\n","import { useMemo } from 'react'\nimport { useParams } from 'react-router-dom'\n// eslint-disable-next-line @typescript-eslint/naming-convention\nimport FacebookIcon from '@mui/icons-material/Facebook'\n// eslint-disable-next-line @typescript-eslint/naming-convention\nimport XIcon from '@mui/icons-material/X'\nimport { useTranslation } from '@dcl/hooks'\nimport { CircularProgress, Typography } from 'decentraland-ui2'\nimport { BlogLayout } from '../../components/blog/BlogLayout'\nimport { RelatedPost } from '../../components/blog/RelatedPost'\nimport { RichText } from '../../components/blog/RichText'\nimport { OGType, SEO } from '../../components/blog/SEO/SEO'\nimport { getEnv } from '../../config/env'\nimport { useGetBlogPostBySlugQuery, useGetBlogPostsQuery } from '../../features/blog/blog.client'\nimport { selectPostByCategoryAndSlug } from '../../features/blog/blog.selectors'\nimport { formatUtcDate } from '../../shared/blog/utils/date'\nimport { locations } from '../../shared/blog/utils/locations'\nimport { useAppSelector } from '../../shells/store'\nimport {\n AuthorAvatar,\n AuthorBox,\n AuthorLink,\n AuthorName,\n AuthorRow,\n BodyContainer,\n CategoryMetaLink,\n CenteredBox,\n ContentContainer,\n HeaderBox,\n MetaSeparator,\n MetaText,\n PostImage,\n ShareContainer,\n ShareLabel,\n ShareLink,\n SubtitleText,\n TitleBox,\n TitleText\n} from './PostPage.styled'\n\nconst RELATED_POSTS_COUNT = 3\nconst RELATED_POSTS_FETCH_MULTIPLIER = 10\nconst RELATED_POSTS_FETCH_LIMIT = RELATED_POSTS_COUNT * RELATED_POSTS_FETCH_MULTIPLIER\n\nexport const PostPage = () => {\n const { t } = useTranslation()\n const { categorySlug, postSlug } = useParams<{ categorySlug: string; postSlug: string }>()\n\n // Look up the post from the normalized entity store (populated by onQueryStarted after any list fetch)\n const cachedPost = useAppSelector(state => selectPostByCategoryAndSlug(state, categorySlug ?? '', postSlug ?? ''))\n\n // Only fetch if not in cache\n const {\n data: post,\n isLoading,\n error\n } = useGetBlogPostBySlugQuery(\n {\n categorySlug: categorySlug || '',\n postSlug: postSlug || ''\n },\n {\n skip: !!cachedPost\n }\n )\n\n // Use cached post if available, otherwise use fetched post\n const displayPost = useMemo(() => cachedPost || post, [cachedPost, post])\n\n const { data: relatedPostsData, isLoading: isRelatedPostsLoading } = useGetBlogPostsQuery(\n {\n category: displayPost?.category.id,\n limit: RELATED_POSTS_FETCH_LIMIT,\n skip: 0\n },\n {\n skip: !displayPost?.category.id\n }\n )\n\n const relatedPosts = useMemo(() => {\n if (!relatedPostsData?.posts || !displayPost) {\n return []\n }\n\n return relatedPostsData.posts.filter(postItem => postItem.id !== displayPost.id)\n }, [displayPost, relatedPostsData?.posts])\n\n const publishedDateUtc = useMemo(() => formatUtcDate(displayPost?.publishedDate), [displayPost?.publishedDate])\n const author = displayPost?.author\n const showAuthor = !!author && !!author.title\n\n const baseUrl = getEnv('BLOG_BASE_URL') || ''\n\n if (isLoading && !cachedPost) {\n return (\n <BlogLayout showBlogNavigation activeCategory={categorySlug}>\n <CenteredBox>\n <CircularProgress />\n </CenteredBox>\n </BlogLayout>\n )\n }\n\n if (error || !displayPost) {\n return (\n <BlogLayout showBlogNavigation activeCategory={categorySlug}>\n <CenteredBox>\n <Typography color=\"error\">{t('error.load_post')}</Typography>\n </CenteredBox>\n </BlogLayout>\n )\n }\n\n return (\n <BlogLayout\n showBlogNavigation\n activeCategory={categorySlug}\n relatedPosts={<RelatedPost posts={relatedPosts} loading={isRelatedPostsLoading} maxItems={RELATED_POSTS_COUNT} />}\n >\n <SEO\n title={displayPost?.title}\n description={displayPost?.description || t('blog.default_description')}\n url={displayPost ? `${baseUrl}/${categorySlug}/${postSlug}` : baseUrl}\n type={OGType.ARTICLE}\n image={\n displayPost?.image\n ? {\n url: displayPost.image.url,\n width: displayPost.image.width,\n height: displayPost.image.height,\n alt: displayPost.title\n }\n : undefined\n }\n author={author?.title}\n publishedTime={displayPost?.publishedDate}\n section={displayPost?.category.title}\n tags={displayPost?.category.title ? [displayPost.category.title] : undefined}\n />\n <ContentContainer>\n <PostImage\n src={displayPost.image.url}\n alt={displayPost.title}\n width={displayPost.image.width}\n height={displayPost.image.height}\n fetchPriority=\"high\"\n decoding=\"async\"\n />\n\n <HeaderBox>\n <MetaText as=\"span\">\n {publishedDateUtc}\n <MetaSeparator>•</MetaSeparator>\n <CategoryMetaLink to={locations.category(displayPost.category.slug)}>{displayPost.category.title}</CategoryMetaLink>\n </MetaText>\n <TitleBox>\n <TitleText variant=\"h4\">{displayPost.title}</TitleText>\n </TitleBox>\n <SubtitleText variant=\"h6\">{displayPost.description}</SubtitleText>\n </HeaderBox>\n\n {showAuthor && (\n <AuthorRow>\n <AuthorBox>\n <AuthorLink to={author.url}>\n {author.image?.url && <AuthorAvatar src={author.image.url} alt={author.title} loading=\"lazy\" decoding=\"async\" />}\n <AuthorName variant=\"body2\">{author.title}</AuthorName>\n </AuthorLink>\n </AuthorBox>\n <ShareContainer>\n <ShareLabel>{t('blog.share')}</ShareLabel>\n <ShareLink href={locations.twitter(displayPost)} target=\"_blank\" rel=\"noopener noreferrer\">\n <XIcon fontSize=\"small\" />\n </ShareLink>\n <ShareLink href={locations.facebook(displayPost)} target=\"_blank\" rel=\"noopener noreferrer\">\n <FacebookIcon fontSize=\"small\" />\n </ShareLink>\n </ShareContainer>\n </AuthorRow>\n )}\n\n <BodyContainer>\n <RichText document={displayPost.body} assets={displayPost.bodyAssets} />\n </BodyContainer>\n </ContentContainer>\n </BlogLayout>\n )\n}\n"],"names":["_interopRequireDefault","require$$0","X","default_1","_interopRequireWildcard","require$$1","_createSvgIcon","require$$2","_jsxRuntime","require$$3","_getRequireWildcardCache","e","r","t","n","a","u","i","Facebook","RelatedSection","styled","theme","dclColors.neutral","RelatedContainer","Box","RelatedTitle","Typography","RelatedWrapper","DEFAULT_MAX_ITEMS","RelatedPost","memo","props","posts","loading","maxItems","visiblePosts","useTranslation","jsx","jsxs","post","PostCard","selectBlogState","state","createSelector","blogState","postsSelectors","_state","postId","selectPostByCategoryAndSlug","categorySlug","_cat","postSlug","p","RELATED_POSTS_COUNT","RELATED_POSTS_FETCH_MULTIPLIER","RELATED_POSTS_FETCH_LIMIT","PostPage","useParams","cachedPost","useAppSelector","isLoading","error","useGetBlogPostBySlugQuery","displayPost","useMemo","relatedPostsData","isRelatedPostsLoading","useGetBlogPostsQuery","relatedPosts","postItem","publishedDateUtc","formatUtcDate","author","showAuthor","baseUrl","getEnv","BlogLayout","CenteredBox","CircularProgress","SEO","OGType","ContentContainer","PostImage","HeaderBox","MetaText","MetaSeparator","CategoryMetaLink","locations","TitleBox","TitleText","SubtitleText","AuthorRow","AuthorBox","AuthorLink","AuthorAvatar","AuthorName","ShareContainer","ShareLabel","ShareLink","XIcon","FacebookIcon","BodyContainer","RichText"],"mappings":"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","x_google_ignoreList":[0,1]}
|
|
1
|
+
{"version":3,"file":"PostPage-CosfC1Na.js","sources":["../../node_modules/@mui/icons-material/X.js","../../node_modules/@mui/icons-material/Facebook.js","../../src/components/blog/RelatedPost/RelatedPost.styled.ts","../../src/components/blog/RelatedPost/RelatedPost.tsx","../../src/features/blog/blog.selectors.ts","../../src/pages/blog/PostPage.tsx"],"sourcesContent":["\"use strict\";\n'use client';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\nvar _default = exports.default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z\"\n}), 'X');","\"use strict\";\n'use client';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\nvar _default = exports.default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M5 3h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2m13 2h-2.5A3.5 3.5 0 0 0 12 8.5V11h-2v3h2v7h3v-7h3v-3h-3V9a1 1 0 0 1 1-1h2V5z\"\n}), 'Facebook');","import { Box, Typography, dclColors, styled } from 'decentraland-ui2'\n\nconst RelatedSection = styled('section')(({ theme }) => ({\n backgroundColor: dclColors.neutral.softBlack2,\n paddingBottom: theme.spacing(13),\n paddingTop: theme.spacing(12),\n width: '100%'\n}))\n\nconst RelatedContainer = styled(Box)(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(3),\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2),\n width: '100%',\n maxWidth: theme.spacing(136.875),\n margin: '0 auto'\n}))\n\nconst RelatedTitle = styled(Typography)(({ theme }) => ({\n ...theme.typography.h6,\n color: theme.palette.text.primary\n}))\n\nconst RelatedWrapper = styled(Box)(({ theme }) => ({\n display: 'flex',\n flexWrap: 'nowrap',\n justifyContent: 'flex-start',\n gap: theme.spacing(4),\n [theme.breakpoints.down('xs')]: {\n justifyContent: 'center',\n flexWrap: 'wrap'\n }\n}))\n\nexport { RelatedContainer, RelatedSection, RelatedTitle, RelatedWrapper }\n","import { memo } from 'react'\nimport { useTranslation } from '@dcl/hooks'\nimport { PostCard } from '../PostCard'\nimport type { RelatedPostProps } from './RelatedPost.types'\nimport { RelatedContainer, RelatedSection, RelatedTitle, RelatedWrapper } from './RelatedPost.styled'\n\nconst DEFAULT_MAX_ITEMS = 3\n\nconst RelatedPost = memo((props: RelatedPostProps) => {\n const { posts = [], loading = false, maxItems = DEFAULT_MAX_ITEMS } = props\n const visiblePosts = posts.slice(0, maxItems)\n const { t } = useTranslation()\n\n if (loading || visiblePosts.length === 0) {\n return null\n }\n\n return (\n <RelatedSection>\n <RelatedContainer>\n <RelatedTitle variant=\"h6\">{t('blog.related_post')}</RelatedTitle>\n <RelatedWrapper>\n {visiblePosts.map(post => (\n <PostCard key={post.id} post={post} />\n ))}\n </RelatedWrapper>\n </RelatedContainer>\n </RelatedSection>\n )\n})\n\nexport { RelatedPost }\n","import { createSelector } from '@reduxjs/toolkit'\nimport type { BlogPost } from '../../shared/blog/types/blog.domain'\nimport type { RootState } from '../../shells/store'\nimport { blogReducer, postsSelectors } from './blog.slice'\n\ntype BlogState = ReturnType<typeof blogReducer>\n\n// Base selector to get the blog state\nconst selectBlogState = (state: RootState): BlogState => state.blog\n\n// Select all posts from normalized state\nconst selectAllPosts = createSelector([selectBlogState], (blogState): BlogPost[] => postsSelectors.selectAll(blogState))\n\n// Select posts as a dictionary (id -> post)\nconst selectPostsEntities = createSelector(\n [selectBlogState],\n (blogState): Record<string, BlogPost> => postsSelectors.selectEntities(blogState)\n)\n\n// Select a post by ID from normalized state\nconst selectPostById = createSelector(\n [selectBlogState, (_state: RootState, postId: string) => postId],\n (blogState, postId): BlogPost | undefined => postsSelectors.selectById(blogState, postId)\n)\n\n// Select a post by category+slug combination (used by PostPage to avoid re-fetching from RTK cache)\nconst selectPostByCategoryAndSlug = createSelector(\n [\n selectBlogState,\n (_state: RootState, categorySlug: string) => categorySlug,\n (_state: RootState, _cat: string, postSlug: string) => postSlug\n ],\n (blogState, categorySlug, postSlug): BlogPost | undefined =>\n postsSelectors.selectAll(blogState).find(p => p.category.slug === categorySlug && p.slug === postSlug)\n)\n\n// Select total count of cached posts\nconst selectPostsTotal = createSelector([selectBlogState], (blogState): number => postsSelectors.selectTotal(blogState))\n\nexport { selectAllPosts, selectPostById, selectPostByCategoryAndSlug, selectPostsEntities, selectPostsTotal }\n","import { useMemo } from 'react'\nimport { useParams } from 'react-router-dom'\n// eslint-disable-next-line @typescript-eslint/naming-convention\nimport FacebookIcon from '@mui/icons-material/Facebook'\n// eslint-disable-next-line @typescript-eslint/naming-convention\nimport XIcon from '@mui/icons-material/X'\nimport { useTranslation } from '@dcl/hooks'\nimport { CircularProgress, Typography } from 'decentraland-ui2'\nimport { BlogLayout } from '../../components/blog/BlogLayout'\nimport { RelatedPost } from '../../components/blog/RelatedPost'\nimport { RichText } from '../../components/blog/RichText'\nimport { OGType, SEO } from '../../components/blog/SEO/SEO'\nimport { getEnv } from '../../config/env'\nimport { useGetBlogPostBySlugQuery, useGetBlogPostsQuery } from '../../features/blog/blog.client'\nimport { selectPostByCategoryAndSlug } from '../../features/blog/blog.selectors'\nimport { formatUtcDate } from '../../shared/blog/utils/date'\nimport { locations } from '../../shared/blog/utils/locations'\nimport { useAppSelector } from '../../shells/store'\nimport {\n AuthorAvatar,\n AuthorBox,\n AuthorLink,\n AuthorName,\n AuthorRow,\n BodyContainer,\n CategoryMetaLink,\n CenteredBox,\n ContentContainer,\n HeaderBox,\n MetaSeparator,\n MetaText,\n PostImage,\n ShareContainer,\n ShareLabel,\n ShareLink,\n SubtitleText,\n TitleBox,\n TitleText\n} from './PostPage.styled'\n\nconst RELATED_POSTS_COUNT = 3\nconst RELATED_POSTS_FETCH_MULTIPLIER = 10\nconst RELATED_POSTS_FETCH_LIMIT = RELATED_POSTS_COUNT * RELATED_POSTS_FETCH_MULTIPLIER\n\nexport const PostPage = () => {\n const { t } = useTranslation()\n const { categorySlug, postSlug } = useParams<{ categorySlug: string; postSlug: string }>()\n\n // Look up the post from the normalized entity store (populated by onQueryStarted after any list fetch)\n const cachedPost = useAppSelector(state => selectPostByCategoryAndSlug(state, categorySlug ?? '', postSlug ?? ''))\n\n // Only fetch if not in cache\n const {\n data: post,\n isLoading,\n error\n } = useGetBlogPostBySlugQuery(\n {\n categorySlug: categorySlug || '',\n postSlug: postSlug || ''\n },\n {\n skip: !!cachedPost\n }\n )\n\n // Use cached post if available, otherwise use fetched post\n const displayPost = useMemo(() => cachedPost || post, [cachedPost, post])\n\n const { data: relatedPostsData, isLoading: isRelatedPostsLoading } = useGetBlogPostsQuery(\n {\n category: displayPost?.category.id,\n limit: RELATED_POSTS_FETCH_LIMIT,\n skip: 0\n },\n {\n skip: !displayPost?.category.id\n }\n )\n\n const relatedPosts = useMemo(() => {\n if (!relatedPostsData?.posts || !displayPost) {\n return []\n }\n\n return relatedPostsData.posts.filter(postItem => postItem.id !== displayPost.id)\n }, [displayPost, relatedPostsData?.posts])\n\n const publishedDateUtc = useMemo(() => formatUtcDate(displayPost?.publishedDate), [displayPost?.publishedDate])\n const author = displayPost?.author\n const showAuthor = !!author && !!author.title\n\n const baseUrl = getEnv('BLOG_BASE_URL') || ''\n\n if (isLoading && !cachedPost) {\n return (\n <BlogLayout showBlogNavigation activeCategory={categorySlug}>\n <CenteredBox>\n <CircularProgress />\n </CenteredBox>\n </BlogLayout>\n )\n }\n\n if (error || !displayPost) {\n return (\n <BlogLayout showBlogNavigation activeCategory={categorySlug}>\n <CenteredBox>\n <Typography color=\"error\">{t('error.load_post')}</Typography>\n </CenteredBox>\n </BlogLayout>\n )\n }\n\n return (\n <BlogLayout\n showBlogNavigation\n activeCategory={categorySlug}\n relatedPosts={<RelatedPost posts={relatedPosts} loading={isRelatedPostsLoading} maxItems={RELATED_POSTS_COUNT} />}\n >\n <SEO\n title={displayPost?.title}\n description={displayPost?.description || t('blog.default_description')}\n url={displayPost ? `${baseUrl}/${categorySlug}/${postSlug}` : baseUrl}\n type={OGType.ARTICLE}\n image={\n displayPost?.image\n ? {\n url: displayPost.image.url,\n width: displayPost.image.width,\n height: displayPost.image.height,\n alt: displayPost.title\n }\n : undefined\n }\n author={author?.title}\n publishedTime={displayPost?.publishedDate}\n section={displayPost?.category.title}\n tags={displayPost?.category.title ? [displayPost.category.title] : undefined}\n />\n <ContentContainer>\n <PostImage\n src={displayPost.image.url}\n alt={displayPost.title}\n width={displayPost.image.width}\n height={displayPost.image.height}\n fetchPriority=\"high\"\n decoding=\"async\"\n />\n\n <HeaderBox>\n <MetaText as=\"span\">\n {publishedDateUtc}\n <MetaSeparator>•</MetaSeparator>\n <CategoryMetaLink to={locations.category(displayPost.category.slug)}>{displayPost.category.title}</CategoryMetaLink>\n </MetaText>\n <TitleBox>\n <TitleText variant=\"h4\">{displayPost.title}</TitleText>\n </TitleBox>\n <SubtitleText variant=\"h6\">{displayPost.description}</SubtitleText>\n </HeaderBox>\n\n {showAuthor && (\n <AuthorRow>\n <AuthorBox>\n <AuthorLink to={author.url}>\n {author.image?.url && <AuthorAvatar src={author.image.url} alt={author.title} loading=\"lazy\" decoding=\"async\" />}\n <AuthorName variant=\"body2\">{author.title}</AuthorName>\n </AuthorLink>\n </AuthorBox>\n <ShareContainer>\n <ShareLabel>{t('blog.share')}</ShareLabel>\n <ShareLink href={locations.twitter(displayPost)} target=\"_blank\" rel=\"noopener noreferrer\">\n <XIcon fontSize=\"small\" />\n </ShareLink>\n <ShareLink href={locations.facebook(displayPost)} target=\"_blank\" rel=\"noopener noreferrer\">\n <FacebookIcon fontSize=\"small\" />\n </ShareLink>\n </ShareContainer>\n </AuthorRow>\n )}\n\n <BodyContainer>\n <RichText document={displayPost.body} assets={displayPost.bodyAssets} />\n </BodyContainer>\n </ContentContainer>\n </BlogLayout>\n )\n}\n"],"names":["_interopRequireDefault","require$$0","X","default_1","_interopRequireWildcard","require$$1","_createSvgIcon","require$$2","_jsxRuntime","require$$3","_getRequireWildcardCache","e","r","t","n","a","u","i","Facebook","RelatedSection","styled","theme","dclColors.neutral","RelatedContainer","Box","RelatedTitle","Typography","RelatedWrapper","DEFAULT_MAX_ITEMS","RelatedPost","memo","props","posts","loading","maxItems","visiblePosts","useTranslation","jsx","jsxs","post","PostCard","selectBlogState","state","createSelector","blogState","postsSelectors","_state","postId","selectPostByCategoryAndSlug","categorySlug","_cat","postSlug","p","RELATED_POSTS_COUNT","RELATED_POSTS_FETCH_MULTIPLIER","RELATED_POSTS_FETCH_LIMIT","PostPage","useParams","cachedPost","useAppSelector","isLoading","error","useGetBlogPostBySlugQuery","displayPost","useMemo","relatedPostsData","isRelatedPostsLoading","useGetBlogPostsQuery","relatedPosts","postItem","publishedDateUtc","formatUtcDate","author","showAuthor","baseUrl","getEnv","BlogLayout","CenteredBox","CircularProgress","SEO","OGType","ContentContainer","PostImage","HeaderBox","MetaText","MetaSeparator","CategoryMetaLink","locations","TitleBox","TitleText","SubtitleText","AuthorRow","AuthorBox","AuthorLink","AuthorAvatar","AuthorName","ShareContainer","ShareLabel","ShareLink","XIcon","FacebookIcon","BodyContainer","RichText"],"mappings":"q6BAGIA,GAAyBC,EAC7B,OAAO,eAAeC,EAAS,aAAc,CAC3C,MAAO,EACT,CAAC,EACD,IAAAC,EAAAD,EAAA,QAAkB,OACNE,GAAwBC,CAAgB,EACpD,IAAIC,GAAiBN,GAAuBO,GAAgC,EACxEC,GAAcC,EAClB,SAASC,EAAyBC,EAAG,CAAE,GAAkB,OAAO,SAArB,WAA8B,OAAO,KAAM,IAAIC,EAAI,IAAI,QAAWC,EAAI,IAAI,QAAW,OAAQH,EAA2B,SAAUC,EAAG,CAAE,OAAOA,EAAIE,EAAID,IAAMD,CAAC,CAAE,CAC1M,SAASP,GAAwBO,EAAGC,EAAG,CAAE,GAAUD,GAAKA,EAAE,WAAY,OAAOA,EAAG,GAAaA,IAAT,MAA0B,OAAOA,GAAnB,UAAsC,OAAOA,GAArB,WAAwB,MAAO,CAAE,QAASA,CAAC,EAAI,IAAIE,EAAIH,EAAyBE,CAAC,EAAG,GAAIC,GAAKA,EAAE,IAAIF,CAAC,EAAG,OAAOE,EAAE,IAAIF,CAAC,EAAG,IAAIG,EAAI,CAAE,UAAW,IAAI,EAAIC,EAAI,OAAO,gBAAkB,OAAO,yBAA0B,QAASC,KAAKL,EAAG,GAAkBK,IAAd,WAAmB,OAAO,UAAU,eAAe,KAAKL,EAAGK,CAAC,EAAG,CAAE,IAAIC,EAAIF,EAAI,OAAO,yBAAyBJ,EAAGK,CAAC,EAAI,KAAMC,IAAMA,EAAE,KAAOA,EAAE,KAAO,OAAO,eAAeH,EAAGE,EAAGC,CAAC,EAAIH,EAAEE,CAAC,EAAIL,EAAEK,CAAC,EAAK,OAAOF,EAAE,QAAUH,EAAGE,GAAKA,EAAE,IAAIF,EAAGG,CAAC,EAAGA,CAAE,CAChkBX,EAAAD,EAAA,WAAsBI,GAAe,YAA2BE,GAAY,KAAK,OAAQ,CACtG,EAAG,6JACL,CAAC,EAAG,GAAG,WCZHR,GAAyBC,EAC7B,OAAO,eAAeiB,EAAS,aAAc,CAC3C,MAAO,EACT,CAAC,EACD,IAAAf,EAAAe,EAAA,QAAkB,OACNd,GAAwBC,CAAgB,EACpD,IAAIC,GAAiBN,GAAuBO,GAAgC,EACxEC,GAAcC,EAClB,SAASC,EAAyBC,EAAG,CAAE,GAAkB,OAAO,SAArB,WAA8B,OAAO,KAAM,IAAIC,EAAI,IAAI,QAAWC,EAAI,IAAI,QAAW,OAAQH,EAA2B,SAAUC,EAAG,CAAE,OAAOA,EAAIE,EAAID,IAAMD,CAAC,CAAE,CAC1M,SAASP,GAAwBO,EAAGC,EAAG,CAAE,GAAUD,GAAKA,EAAE,WAAY,OAAOA,EAAG,GAAaA,IAAT,MAA0B,OAAOA,GAAnB,UAAsC,OAAOA,GAArB,WAAwB,MAAO,CAAE,QAASA,CAAC,EAAI,IAAIE,EAAIH,EAAyBE,CAAC,EAAG,GAAIC,GAAKA,EAAE,IAAIF,CAAC,EAAG,OAAOE,EAAE,IAAIF,CAAC,EAAG,IAAIG,EAAI,CAAE,UAAW,IAAI,EAAIC,EAAI,OAAO,gBAAkB,OAAO,yBAA0B,QAASC,KAAKL,EAAG,GAAkBK,IAAd,WAAmB,OAAO,UAAU,eAAe,KAAKL,EAAGK,CAAC,EAAG,CAAE,IAAIC,EAAIF,EAAI,OAAO,yBAAyBJ,EAAGK,CAAC,EAAI,KAAMC,IAAMA,EAAE,KAAOA,EAAE,KAAO,OAAO,eAAeH,EAAGE,EAAGC,CAAC,EAAIH,EAAEE,CAAC,EAAIL,EAAEK,CAAC,EAAK,OAAOF,EAAE,QAAUH,EAAGE,GAAKA,EAAE,IAAIF,EAAGG,CAAC,EAAGA,CAAE,CAChkBX,EAAAe,EAAA,WAAsBZ,GAAe,YAA2BE,GAAY,KAAK,OAAQ,CACtG,EAAG,qJACL,CAAC,EAAG,UAAU,ECbd,MAAMW,GAAiBC,EAAO,SAAS,EAAE,CAAC,CAAE,MAAAC,MAAa,CACvD,gBAAiBC,EAAkB,WACnC,cAAeD,EAAM,QAAQ,EAAE,EAC/B,WAAYA,EAAM,QAAQ,EAAE,EAC5B,MAAO,MACT,EAAE,EAEIE,GAAmBH,EAAOI,CAAG,EAAE,CAAC,CAAE,MAAAH,MAAa,CACnD,QAAS,OACT,cAAe,SACf,IAAKA,EAAM,QAAQ,CAAC,EACpB,YAAaA,EAAM,QAAQ,CAAC,EAC5B,aAAcA,EAAM,QAAQ,CAAC,EAC7B,MAAO,OACP,SAAUA,EAAM,QAAQ,OAAO,EAC/B,OAAQ,QACV,EAAE,EAEII,GAAeL,EAAOM,CAAU,EAAE,CAAC,CAAE,MAAAL,MAAa,CACtD,GAAGA,EAAM,WAAW,GACpB,MAAOA,EAAM,QAAQ,KAAK,OAC5B,EAAE,EAEIM,GAAiBP,EAAOI,CAAG,EAAE,CAAC,CAAE,MAAAH,MAAa,CACjD,QAAS,OACT,SAAU,SACV,eAAgB,aAChB,IAAKA,EAAM,QAAQ,CAAC,EACpB,CAACA,EAAM,YAAY,KAAK,IAAI,CAAC,EAAG,CAC9B,eAAgB,SAChB,SAAU,MAAA,CAEd,EAAE,EC5BIO,GAAoB,EAEpBC,GAAcC,EAAAA,KAAMC,GAA4B,CACpD,KAAM,CAAE,MAAAC,EAAQ,GAAI,QAAAC,EAAU,GAAO,SAAAC,EAAWN,IAAsBG,EAChEI,EAAeH,EAAM,MAAM,EAAGE,CAAQ,EACtC,CAAE,EAAArB,CAAA,EAAMuB,EAAA,EAEd,OAAIH,GAAWE,EAAa,SAAW,EAC9B,KAIPE,EAAAA,IAAClB,GAAA,CACC,SAAAmB,EAAAA,KAACf,GAAA,CACC,SAAA,CAAAc,MAACZ,GAAA,CAAa,QAAQ,KAAM,SAAAZ,EAAE,mBAAmB,EAAE,EACnDwB,EAAAA,IAACV,GAAA,CACE,SAAAQ,EAAa,IAAII,GAChBF,EAAAA,IAACG,EAAA,CAAuB,KAAAD,CAAA,EAATA,EAAK,EAAgB,CACrC,CAAA,CACH,CAAA,CAAA,CACF,CAAA,CACF,CAEJ,CAAC,ECrBKE,EAAmBC,GAAgCA,EAAM,KAGxCC,EAAe,CAACF,CAAe,EAAIG,GAA0BC,EAAe,UAAUD,CAAS,CAAC,EAG3FD,EAC1B,CAACF,CAAe,EACfG,GAAwCC,EAAe,eAAeD,CAAS,CAClF,EAGuBD,EACrB,CAACF,EAAiB,CAACK,EAAmBC,IAAmBA,CAAM,EAC/D,CAACH,EAAWG,IAAiCF,EAAe,WAAWD,EAAWG,CAAM,CAC1F,EAGA,MAAMC,GAA8BL,EAClC,CACEF,EACA,CAACK,EAAmBG,IAAyBA,EAC7C,CAACH,EAAmBI,EAAcC,IAAqBA,CAAA,EAEzD,CAACP,EAAWK,EAAcE,IACxBN,EAAe,UAAUD,CAAS,EAAE,KAAKQ,GAAKA,EAAE,SAAS,OAASH,GAAgBG,EAAE,OAASD,CAAQ,CACzG,EAGyBR,EAAe,CAACF,CAAe,EAAIG,GAAsBC,EAAe,YAAYD,CAAS,CAAC,ECGvH,MAAMS,EAAsB,EACtBC,GAAiC,GACjCC,GAA4BF,EAAsBC,GAE3CE,GAAW,IAAM,CAC5B,KAAM,CAAE,CAAA,EAAMpB,EAAA,EACR,CAAE,aAAAa,EAAc,SAAAE,CAAA,EAAaM,EAAA,EAG7BC,EAAaC,GAAejB,GAASM,GAA4BN,EAAOO,GAAgB,GAAIE,GAAY,EAAE,CAAC,EAG3G,CACJ,KAAMZ,EACN,UAAAqB,EACA,MAAAC,CAAA,EACEC,EACF,CACE,aAAcb,GAAgB,GAC9B,SAAUE,GAAY,EAAA,EAExB,CACE,KAAM,CAAC,CAACO,CAAA,CACV,EAIIK,EAAcC,EAAAA,QAAQ,IAAMN,GAAcnB,EAAM,CAACmB,EAAYnB,CAAI,CAAC,EAElE,CAAE,KAAM0B,EAAkB,UAAWC,GAA0BC,EACnE,CACE,SAAUJ,GAAa,SAAS,GAChC,MAAOR,GACP,KAAM,CAAA,EAER,CACE,KAAM,CAACQ,GAAa,SAAS,EAAA,CAC/B,EAGIK,EAAeJ,EAAAA,QAAQ,IACvB,CAACC,GAAkB,OAAS,CAACF,EACxB,CAAA,EAGFE,EAAiB,MAAM,UAAmBI,EAAS,KAAON,EAAY,EAAE,EAC9E,CAACA,EAAaE,GAAkB,KAAK,CAAC,EAEnCK,EAAmBN,UAAQ,IAAMO,EAAcR,GAAa,aAAa,EAAG,CAACA,GAAa,aAAa,CAAC,EACxGS,EAAST,GAAa,OACtBU,EAAa,CAAC,CAACD,GAAU,CAAC,CAACA,EAAO,MAElCE,EAAUC,EAAO,eAAe,GAAK,GAE3C,OAAIf,GAAa,CAACF,EAEdrB,EAAAA,IAACuC,EAAA,CAAW,mBAAkB,GAAC,eAAgB3B,EAC7C,SAAAZ,EAAAA,IAACwC,EAAA,CACC,SAAAxC,EAAAA,IAACyC,GAAA,CAAA,CAAiB,CAAA,CACpB,EACF,EAIAjB,GAAS,CAACE,QAETa,EAAA,CAAW,mBAAkB,GAAC,eAAgB3B,EAC7C,SAAAZ,EAAAA,IAACwC,EAAA,CACC,SAAAxC,EAAAA,IAACX,EAAA,CAAW,MAAM,QAAS,SAAA,EAAE,iBAAiB,CAAA,CAAE,EAClD,EACF,EAKFY,EAAAA,KAACsC,EAAA,CACC,mBAAkB,GAClB,eAAgB3B,EAChB,mBAAepB,GAAA,CAAY,MAAOuC,EAAc,QAASF,EAAuB,SAAUb,EAAqB,EAE/G,SAAA,CAAAhB,EAAAA,IAAC0C,GAAA,CACC,MAAOhB,GAAa,MACpB,YAAaA,GAAa,aAAe,EAAE,0BAA0B,EACrE,IAAKA,EAAc,GAAGW,CAAO,IAAIzB,CAAY,IAAIE,CAAQ,GAAKuB,EAC9D,KAAMM,GAAO,QACb,MACEjB,GAAa,MACT,CACE,IAAKA,EAAY,MAAM,IACvB,MAAOA,EAAY,MAAM,MACzB,OAAQA,EAAY,MAAM,OAC1B,IAAKA,EAAY,KAAA,EAEnB,OAEN,OAAQS,GAAQ,MAChB,cAAeT,GAAa,cAC5B,QAASA,GAAa,SAAS,MAC/B,KAAMA,GAAa,SAAS,MAAQ,CAACA,EAAY,SAAS,KAAK,EAAI,MAAA,CAAA,SAEpEkB,EAAA,CACC,SAAA,CAAA5C,EAAAA,IAAC6C,EAAA,CACC,IAAKnB,EAAY,MAAM,IACvB,IAAKA,EAAY,MACjB,MAAOA,EAAY,MAAM,MACzB,OAAQA,EAAY,MAAM,OAC1B,cAAc,OACd,SAAS,OAAA,CAAA,SAGVoB,EAAA,CACC,SAAA,CAAA7C,EAAAA,KAAC8C,EAAA,CAAS,GAAG,OACV,SAAA,CAAAd,EACDjC,EAAAA,IAACgD,GAAc,SAAA,GAAA,CAAC,EAChBhD,EAAAA,IAACiD,EAAA,CAAiB,GAAIC,EAAU,SAASxB,EAAY,SAAS,IAAI,EAAI,SAAAA,EAAY,SAAS,KAAA,CAAM,CAAA,EACnG,EACA1B,EAAAA,IAACmD,GACC,SAAAnD,EAAAA,IAACoD,EAAA,CAAU,QAAQ,KAAM,SAAA1B,EAAY,MAAM,CAAA,CAC7C,EACA1B,EAAAA,IAACqD,EAAA,CAAa,QAAQ,KAAM,WAAY,WAAA,CAAY,CAAA,EACtD,EAECjB,UACEkB,GAAA,CACC,SAAA,CAAAtD,MAACuD,GAAA,CACC,SAAAtD,EAAAA,KAACuD,GAAA,CAAW,GAAIrB,EAAO,IACpB,SAAA,CAAAA,EAAO,OAAO,KAAOnC,EAAAA,IAACyD,GAAA,CAAa,IAAKtB,EAAO,MAAM,IAAK,IAAKA,EAAO,MAAO,QAAQ,OAAO,SAAS,QAAQ,EAC9GnC,EAAAA,IAAC0D,GAAA,CAAW,QAAQ,QAAS,WAAO,KAAA,CAAM,CAAA,CAAA,CAC5C,CAAA,CACF,SACCC,GAAA,CACC,SAAA,CAAA3D,EAAAA,IAAC4D,GAAA,CAAY,SAAA,EAAE,YAAY,CAAA,CAAE,EAC7B5D,EAAAA,IAAC6D,EAAA,CAAU,KAAMX,EAAU,QAAQxB,CAAW,EAAG,OAAO,SAAS,IAAI,sBACnE,SAAA1B,MAAC8D,EAAA,CAAM,SAAS,QAAQ,EAC1B,EACA9D,EAAAA,IAAC6D,EAAA,CAAU,KAAMX,EAAU,SAASxB,CAAW,EAAG,OAAO,SAAS,IAAI,sBACpE,SAAA1B,EAAAA,IAAC+D,EAAA,CAAa,SAAS,QAAQ,CAAA,CACjC,CAAA,CAAA,CACF,CAAA,EACF,EAGF/D,EAAAA,IAACgE,GAAA,CACC,SAAAhE,EAAAA,IAACiE,GAAA,CAAS,SAAUvC,EAAY,KAAM,OAAQA,EAAY,UAAA,CAAY,CAAA,CACxE,CAAA,CAAA,CACF,CAAA,CAAA,CAAA,CAGN","x_google_ignoreList":[0,1]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/TwitterEmbed-
|
|
2
|
-
import{s as a,j as i,g as N,o as b,a as m,v as E,z as O}from"./index-
|
|
3
|
-
`),g=[];d.forEach((u,C)=>{g.push(u),C!==d.length-1&&g.push(o.createElement("br",null))}),p=g}return e.marks.reduce((d,g)=>s[g.type]?s[g.type](d):d,p)}else{const p=A(e.content,t);return!e.nodeType||!n[e.nodeType]?o.createElement(o.Fragment,null,p):n[e.nodeType](e,p)}}const K={[r.BLOCKS.DOCUMENT]:(e,t)=>t,[r.BLOCKS.PARAGRAPH]:(e,t)=>o.createElement("p",null,t),[r.BLOCKS.HEADING_1]:(e,t)=>o.createElement("h1",null,t),[r.BLOCKS.HEADING_2]:(e,t)=>o.createElement("h2",null,t),[r.BLOCKS.HEADING_3]:(e,t)=>o.createElement("h3",null,t),[r.BLOCKS.HEADING_4]:(e,t)=>o.createElement("h4",null,t),[r.BLOCKS.HEADING_5]:(e,t)=>o.createElement("h5",null,t),[r.BLOCKS.HEADING_6]:(e,t)=>o.createElement("h6",null,t),[r.BLOCKS.EMBEDDED_ENTRY]:(e,t)=>o.createElement("div",null,t),[r.BLOCKS.EMBEDDED_RESOURCE]:(e,t)=>o.createElement("div",null,t),[r.BLOCKS.UL_LIST]:(e,t)=>o.createElement("ul",null,t),[r.BLOCKS.OL_LIST]:(e,t)=>o.createElement("ol",null,t),[r.BLOCKS.LIST_ITEM]:(e,t)=>o.createElement("li",null,t),[r.BLOCKS.QUOTE]:(e,t)=>o.createElement("blockquote",null,t),[r.BLOCKS.HR]:()=>o.createElement("hr",null),[r.BLOCKS.TABLE]:(e,t)=>o.createElement("table",null,o.createElement("tbody",null,t)),[r.BLOCKS.TABLE_ROW]:(e,t)=>o.createElement("tr",null,t),[r.BLOCKS.TABLE_HEADER_CELL]:(e,t)=>o.createElement("th",null,t),[r.BLOCKS.TABLE_CELL]:(e,t)=>o.createElement("td",null,t),[r.INLINES.ASSET_HYPERLINK]:e=>T(r.INLINES.ASSET_HYPERLINK,e),[r.INLINES.ENTRY_HYPERLINK]:e=>T(r.INLINES.ENTRY_HYPERLINK,e),[r.INLINES.RESOURCE_HYPERLINK]:e=>I(r.INLINES.RESOURCE_HYPERLINK,e),[r.INLINES.EMBEDDED_ENTRY]:e=>T(r.INLINES.EMBEDDED_ENTRY,e),[r.INLINES.EMBEDDED_RESOURCE]:(e,t)=>I(r.INLINES.EMBEDDED_RESOURCE,e),[r.INLINES.HYPERLINK]:(e,t)=>o.createElement("a",{href:e.data.uri},t)},H={[r.MARKS.BOLD]:e=>o.createElement("b",null,e),[r.MARKS.ITALIC]:e=>o.createElement("i",null,e),[r.MARKS.UNDERLINE]:e=>o.createElement("u",null,e),[r.MARKS.CODE]:e=>o.createElement("code",null,e),[r.MARKS.SUPERSCRIPT]:e=>o.createElement("sup",null,e),[r.MARKS.SUBSCRIPT]:e=>o.createElement("sub",null,e),[r.MARKS.STRIKETHROUGH]:e=>o.createElement("s",null,e)};function T(e,t){return o.createElement("span",{key:t.data.target.sys.id},"type: ",t.nodeType," id: ",t.data.target.sys.id)}function I(e,t){return o.createElement("span",{key:t.data.target.sys.urn},"type: ",t.nodeType," urn: ",t.data.target.sys.urn)}function D(e,t={}){if(!e)return null;let n=e;return t.stripEmptyTrailingParagraph&&(n=r.helpers.stripEmptyTrailingParagraphFromDocument(e)),B(n,{renderNode:{...K,...t.renderNode},renderMark:{...H,...t.renderMark},renderText:t.renderText,preserveWhitespace:t.preserveWhitespace})}var k=D;const j=a("p")(({theme:e})=>({...e.typography.body1,lineHeight:2,letterSpacing:"-0.2px",marginTop:e.spacing(2.5),marginBottom:0})),v=a("h1")(({theme:e})=>({...e.typography.h1,fontSize:e.typography.pxToRem(40),fontWeight:700,lineHeight:1.17,marginTop:0,paddingTop:e.spacing(1.375),marginBottom:0})),M=a("h2")(({theme:e})=>({...e.typography.h2,fontSize:e.typography.pxToRem(32),fontWeight:700,lineHeight:1.17,marginTop:0,paddingTop:e.spacing(1.375),marginBottom:0})),P=a("h3")(({theme:e})=>({...e.typography.h3,fontSize:e.typography.pxToRem(28),fontWeight:500,lineHeight:1.21,marginTop:e.spacing(8),marginBottom:0})),U=a("h4")(({theme:e})=>({...e.typography.h4,fontSize:e.typography.pxToRem(24),lineHeight:1.2,letterSpacing:"0.3px",marginTop:e.spacing(4),marginBottom:0})),R=a("h5")(({theme:e})=>({...e.typography.h5,fontSize:e.typography.pxToRem(20),lineHeight:1.2,letterSpacing:"0.3px",marginTop:e.spacing(2),marginBottom:0})),Y=a(R)(({theme:e})=>({fontSize:e.typography.pxToRem(18)})),G=a("blockquote")(({theme:e})=>({borderLeft:"4px solid",borderColor:e.palette.primary.main,paddingLeft:e.spacing(2),marginTop:e.spacing(2),marginBottom:e.spacing(2),fontStyle:"italic"})),x=a("img")(({theme:e})=>({maxWidth:"100%",height:"auto",marginTop:e.spacing(2),marginBottom:e.spacing(2)})),f=a("a")(({theme:e})=>({color:e.palette.primary.main,textDecoration:"none","&:hover":{color:e.palette.primary.dark}})),W=a(L)(({theme:e})=>({color:e.palette.primary.main,textDecoration:"none","&:hover":{color:e.palette.primary.dark}})),z=a("iframe")(({theme:e})=>({height:760,width:560,border:`thin solid ${e.palette.divider}`,padding:e.spacing(.625),marginTop:e.spacing(2),marginBottom:e.spacing(2)})),$=a("div")(({theme:e})=>({marginTop:e.spacing(2),marginBottom:e.spacing(2)})),F=a("iframe")(({theme:e})=>({width:560,height:315,border:0,marginTop:e.spacing(2),marginBottom:e.spacing(2)})),V=a("iframe")(({theme:e})=>({width:400,height:480,border:0,marginTop:e.spacing(2),marginBottom:e.spacing(2)})),q=a("li")(()=>({})),Q=a("ol")(({theme:e})=>({marginBottom:e.spacing(2)})),X=a("ul")(({theme:e})=>({marginBottom:e.spacing(2)})),J=y.lazy(()=>b(()=>import("./TwitterEmbed-BbSYYog-.js"),__vite__mapDeps([0,1,2,3,4,5,6,7])).then(e=>({default:e.TwitterEmbed}))),Z=new Set(["www.youtube.com","youtube.com","youtu.be"]),ee=new Set(["www.twitter.com","twitter.com","www.x.com","x.com"]),_=new Set(["www.instagram.com","instagram.com"]),te=new Set(["www.linkedin.com","linkedin.com"]),ne=/^[\w-]{1,20}$/,S=e=>{try{return new URL(e)}catch{return null}},re=e=>{const t=S(e);if(!t||!Z.has(t.hostname))return null;const n=t.hostname==="youtu.be"?t.pathname.slice(1):t.searchParams.get("v")??"";return ne.test(n)?n:null},ae=e=>i.jsx(F,{src:`https://www.youtube.com/embed/${e}`,title:"YouTube video player",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:!0,loading:"lazy"}),oe=e=>{const t=S(e);if(!t||!ee.has(t.hostname))return null;const n=t.pathname.split("/").filter(Boolean),s=n.indexOf("status"),l=s>=0?n[s+1]:void 0;return!l||!/^\d{1,20}$/.test(l)?null:i.jsx($,{children:i.jsx(y.Suspense,{children:i.jsx(J,{tweetId:l,theme:"dark"})})})},ie=e=>{const t=S(e);if(!t||!_.has(t.hostname))return null;const s=`https://www.instagram.com${t.pathname.endsWith("/")?t.pathname:`${t.pathname}/`}embed/`,l=e.includes("/reel/")?"Instagram Reel":"Instagram Post";return i.jsx(V,{src:s,title:l,scrolling:"no",allowFullScreen:!0,loading:"lazy"})},se=(e,t)=>{const n=e.data?.target?.sys?.id;if(n&&t[n]){const l=t[n];return i.jsx(x,{src:l.url,alt:"",width:l.width,height:l.height,loading:"lazy",decoding:"async"})}const s=e.data?.target?.fields?.file?.url;return s?i.jsx(x,{src:s.startsWith("//")?`https:${s}`:s,alt:"",loading:"lazy",decoding:"async"}):null},le=e=>{const t=e.data.uri,s=e.content[0]?.value;if(s===t){const d=re(t);if(d)return ae(d);const g=oe(t);if(g)return g;const u=S(t);if(u&&_.has(u.hostname))return ie(t);if(u&&te.has(u.hostname))return i.jsx(z,{src:t,title:"Embedded Linkedin Post",loading:"lazy"})}const l=N("BLOG_BASE_URL")||"",h=t.startsWith(l),p=t.startsWith("#");if(h){const d=new URL(t,window.location.origin).pathname;return i.jsx(W,{to:d,children:s})}return p?i.jsx(f,{href:t,target:"_self",children:s}):i.jsx(f,{href:t,target:"_blank",rel:"noopener noreferrer",children:s})},ce=e=>({renderNode:{[c.BLOCKS.PARAGRAPH]:(t,n)=>i.jsx(j,{children:n}),[c.BLOCKS.HEADING_1]:(t,n)=>i.jsx(v,{children:n}),[c.BLOCKS.HEADING_2]:(t,n)=>i.jsx(M,{children:n}),[c.BLOCKS.HEADING_3]:(t,n)=>i.jsx(P,{children:n}),[c.BLOCKS.HEADING_4]:(t,n)=>i.jsx(U,{children:n}),[c.BLOCKS.HEADING_5]:(t,n)=>i.jsx(R,{children:n}),[c.BLOCKS.HEADING_6]:(t,n)=>i.jsx(Y,{children:n}),[c.BLOCKS.UL_LIST]:(t,n)=>i.jsx(X,{children:n}),[c.BLOCKS.OL_LIST]:(t,n)=>i.jsx(Q,{children:n}),[c.BLOCKS.LIST_ITEM]:(t,n)=>i.jsx(q,{children:n}),[c.BLOCKS.QUOTE]:(t,n)=>i.jsx(G,{children:n}),[c.BLOCKS.EMBEDDED_ASSET]:t=>se(t,e),[c.INLINES.HYPERLINK]:t=>le(t)}}),ue=({document:e,assets:t={}})=>{if(!e||!e.content)return null;const n=y.useMemo(()=>ce(t),[t]);return i.jsx(i.Fragment,{children:k(e,n)})},me=a(m)(({theme:e})=>({textAlign:"center",paddingTop:e.spacing(8),paddingBottom:e.spacing(8)})),Ee=a(m)(({theme:e})=>({maxWidth:e.spacing(96),width:"100%",margin:"0 auto",padding:0,[e.breakpoints.down("xs")]:{padding:`${e.spacing(4)} ${e.spacing(2)}`}})),ye=a(m)(({theme:e})=>({marginBottom:e.spacing(5)})),Se=a(E)(({theme:e})=>({...e.typography.caption,color:e.palette.text.primary,letterSpacing:e.typography.caption.letterSpacing,textTransform:"uppercase",display:"flex",alignItems:"center",gap:e.spacing(1)})),he=a("span")(({theme:e})=>({color:e.palette.text.secondary})),Te=a(L)(({theme:e})=>({color:O.gray3,textDecoration:"none",WebkitTapHighlightColor:"transparent","&:hover":{textDecoration:"underline"},"&:focus-visible":{outline:`2px solid ${e.palette.primary.main}`,outlineOffset:2}})),Le=a(m)(({theme:e})=>({marginTop:e.spacing(1.5)})),Ie=a(E)(({theme:e})=>({color:e.palette.text.primary})),xe=a(E)(({theme:e})=>({color:e.palette.text.primary,marginTop:e.spacing(1)})),fe=a("img")(({theme:e})=>({width:"100%",height:"auto",borderRadius:e.spacing(2),marginBottom:e.spacing(5),objectFit:"cover",backgroundColor:e.palette.background.paper})),Be=a(m)(()=>({})),Re=a(m)(({theme:e})=>({display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:e.spacing(5)})),_e=a(L)(({theme:e})=>({display:"inline-flex",alignItems:"center",gap:e.spacing(2),textDecoration:"none",color:e.palette.text.primary,WebkitTapHighlightColor:"transparent","&:focus-visible":{outline:`2px solid ${e.palette.primary.main}`,outlineOffset:2}})),Ce=a("img")(({theme:e})=>({width:e.spacing(4),height:e.spacing(4),borderRadius:"50%",objectFit:"cover",backgroundColor:e.palette.background.default})),Ne=a(E)(({theme:e})=>({...e.typography.body1,color:e.palette.text.primary})),be=a(m)(()=>({})),Oe=a(m)(({theme:e})=>({display:"flex",alignItems:"center",gap:e.spacing(1.5)})),we=a(E)(({theme:e})=>({...e.typography.caption,color:e.palette.text.secondary,textTransform:"uppercase"})),Ae=a("a")(({theme:e})=>({display:"inline-flex",alignItems:"center",color:e.palette.text.secondary,textDecoration:"none","&:hover":{color:e.palette.text.primary},"&:focus-visible":{outline:`2px solid ${e.palette.primary.main}`,outlineOffset:2}}));export{Be as A,be as B,me as C,ye as H,Se as M,fe as P,ue as R,xe as S,Le as T,Ee as a,he as b,Ie as c,Ce as d,Ne as e,Te as f,Re as g,_e as h,Oe as i,we as j,Ae as k};
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/TwitterEmbed-CD3AmHIQ.js","assets/index-_DB-noma.js","assets/vendor-router-D_36sTKu.js","assets/vendor-sentry-BSvWNK4f.js","assets/vendor-crypto-uuuQA3i5.js","assets/vendor-schemas-DJzTSxpO.js","assets/vendor-ua-D7qqAxdq.js","assets/vendor-intl-D2lXWsDp.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{s as a,j as i,g as N,o as b,a as m,v as E,z as O}from"./index-_DB-noma.js";import{r as y,L}from"./vendor-router-D_36sTKu.js";import{e as c}from"./BlogLayout-zeqeF6P_.js";var o=y,r=c;function w(e,t){return o.isValidElement(e)&&e.key===null?o.cloneElement(e,{key:t}):e}function A(e,t){return e.map((n,s)=>w(B(n,t),s))}function B(e,t){const{renderNode:n,renderMark:s,renderText:l,preserveWhitespace:h}=t;if(r.helpers.isText(e)){let p=l?l(e.value):e.value;if(h&&!l){p=p.replace(/ {2,}/g,u=>" ".repeat(u.length));const d=p.split(`
|
|
3
|
+
`),g=[];d.forEach((u,C)=>{g.push(u),C!==d.length-1&&g.push(o.createElement("br",null))}),p=g}return e.marks.reduce((d,g)=>s[g.type]?s[g.type](d):d,p)}else{const p=A(e.content,t);return!e.nodeType||!n[e.nodeType]?o.createElement(o.Fragment,null,p):n[e.nodeType](e,p)}}const K={[r.BLOCKS.DOCUMENT]:(e,t)=>t,[r.BLOCKS.PARAGRAPH]:(e,t)=>o.createElement("p",null,t),[r.BLOCKS.HEADING_1]:(e,t)=>o.createElement("h1",null,t),[r.BLOCKS.HEADING_2]:(e,t)=>o.createElement("h2",null,t),[r.BLOCKS.HEADING_3]:(e,t)=>o.createElement("h3",null,t),[r.BLOCKS.HEADING_4]:(e,t)=>o.createElement("h4",null,t),[r.BLOCKS.HEADING_5]:(e,t)=>o.createElement("h5",null,t),[r.BLOCKS.HEADING_6]:(e,t)=>o.createElement("h6",null,t),[r.BLOCKS.EMBEDDED_ENTRY]:(e,t)=>o.createElement("div",null,t),[r.BLOCKS.EMBEDDED_RESOURCE]:(e,t)=>o.createElement("div",null,t),[r.BLOCKS.UL_LIST]:(e,t)=>o.createElement("ul",null,t),[r.BLOCKS.OL_LIST]:(e,t)=>o.createElement("ol",null,t),[r.BLOCKS.LIST_ITEM]:(e,t)=>o.createElement("li",null,t),[r.BLOCKS.QUOTE]:(e,t)=>o.createElement("blockquote",null,t),[r.BLOCKS.HR]:()=>o.createElement("hr",null),[r.BLOCKS.TABLE]:(e,t)=>o.createElement("table",null,o.createElement("tbody",null,t)),[r.BLOCKS.TABLE_ROW]:(e,t)=>o.createElement("tr",null,t),[r.BLOCKS.TABLE_HEADER_CELL]:(e,t)=>o.createElement("th",null,t),[r.BLOCKS.TABLE_CELL]:(e,t)=>o.createElement("td",null,t),[r.INLINES.ASSET_HYPERLINK]:e=>T(r.INLINES.ASSET_HYPERLINK,e),[r.INLINES.ENTRY_HYPERLINK]:e=>T(r.INLINES.ENTRY_HYPERLINK,e),[r.INLINES.RESOURCE_HYPERLINK]:e=>I(r.INLINES.RESOURCE_HYPERLINK,e),[r.INLINES.EMBEDDED_ENTRY]:e=>T(r.INLINES.EMBEDDED_ENTRY,e),[r.INLINES.EMBEDDED_RESOURCE]:(e,t)=>I(r.INLINES.EMBEDDED_RESOURCE,e),[r.INLINES.HYPERLINK]:(e,t)=>o.createElement("a",{href:e.data.uri},t)},H={[r.MARKS.BOLD]:e=>o.createElement("b",null,e),[r.MARKS.ITALIC]:e=>o.createElement("i",null,e),[r.MARKS.UNDERLINE]:e=>o.createElement("u",null,e),[r.MARKS.CODE]:e=>o.createElement("code",null,e),[r.MARKS.SUPERSCRIPT]:e=>o.createElement("sup",null,e),[r.MARKS.SUBSCRIPT]:e=>o.createElement("sub",null,e),[r.MARKS.STRIKETHROUGH]:e=>o.createElement("s",null,e)};function T(e,t){return o.createElement("span",{key:t.data.target.sys.id},"type: ",t.nodeType," id: ",t.data.target.sys.id)}function I(e,t){return o.createElement("span",{key:t.data.target.sys.urn},"type: ",t.nodeType," urn: ",t.data.target.sys.urn)}function D(e,t={}){if(!e)return null;let n=e;return t.stripEmptyTrailingParagraph&&(n=r.helpers.stripEmptyTrailingParagraphFromDocument(e)),B(n,{renderNode:{...K,...t.renderNode},renderMark:{...H,...t.renderMark},renderText:t.renderText,preserveWhitespace:t.preserveWhitespace})}var k=D;const j=a("p")(({theme:e})=>({...e.typography.body1,lineHeight:2,letterSpacing:"-0.2px",marginTop:e.spacing(2.5),marginBottom:0})),v=a("h1")(({theme:e})=>({...e.typography.h1,fontSize:e.typography.pxToRem(40),fontWeight:700,lineHeight:1.17,marginTop:0,paddingTop:e.spacing(1.375),marginBottom:0})),M=a("h2")(({theme:e})=>({...e.typography.h2,fontSize:e.typography.pxToRem(32),fontWeight:700,lineHeight:1.17,marginTop:0,paddingTop:e.spacing(1.375),marginBottom:0})),P=a("h3")(({theme:e})=>({...e.typography.h3,fontSize:e.typography.pxToRem(28),fontWeight:500,lineHeight:1.21,marginTop:e.spacing(8),marginBottom:0})),U=a("h4")(({theme:e})=>({...e.typography.h4,fontSize:e.typography.pxToRem(24),lineHeight:1.2,letterSpacing:"0.3px",marginTop:e.spacing(4),marginBottom:0})),R=a("h5")(({theme:e})=>({...e.typography.h5,fontSize:e.typography.pxToRem(20),lineHeight:1.2,letterSpacing:"0.3px",marginTop:e.spacing(2),marginBottom:0})),Y=a(R)(({theme:e})=>({fontSize:e.typography.pxToRem(18)})),G=a("blockquote")(({theme:e})=>({borderLeft:"4px solid",borderColor:e.palette.primary.main,paddingLeft:e.spacing(2),marginTop:e.spacing(2),marginBottom:e.spacing(2),fontStyle:"italic"})),x=a("img")(({theme:e})=>({maxWidth:"100%",height:"auto",marginTop:e.spacing(2),marginBottom:e.spacing(2)})),f=a("a")(({theme:e})=>({color:e.palette.primary.main,textDecoration:"none","&:hover":{color:e.palette.primary.dark}})),W=a(L)(({theme:e})=>({color:e.palette.primary.main,textDecoration:"none","&:hover":{color:e.palette.primary.dark}})),z=a("iframe")(({theme:e})=>({height:760,width:560,border:`thin solid ${e.palette.divider}`,padding:e.spacing(.625),marginTop:e.spacing(2),marginBottom:e.spacing(2)})),$=a("div")(({theme:e})=>({marginTop:e.spacing(2),marginBottom:e.spacing(2)})),F=a("iframe")(({theme:e})=>({width:560,height:315,border:0,marginTop:e.spacing(2),marginBottom:e.spacing(2)})),V=a("iframe")(({theme:e})=>({width:400,height:480,border:0,marginTop:e.spacing(2),marginBottom:e.spacing(2)})),q=a("li")(()=>({})),Q=a("ol")(({theme:e})=>({marginBottom:e.spacing(2)})),X=a("ul")(({theme:e})=>({marginBottom:e.spacing(2)})),J=y.lazy(()=>b(()=>import("./TwitterEmbed-CD3AmHIQ.js"),__vite__mapDeps([0,1,2,3,4,5,6,7])).then(e=>({default:e.TwitterEmbed}))),Z=new Set(["www.youtube.com","youtube.com","youtu.be"]),ee=new Set(["www.twitter.com","twitter.com","www.x.com","x.com"]),_=new Set(["www.instagram.com","instagram.com"]),te=new Set(["www.linkedin.com","linkedin.com"]),ne=/^[\w-]{1,20}$/,S=e=>{try{return new URL(e)}catch{return null}},re=e=>{const t=S(e);if(!t||!Z.has(t.hostname))return null;const n=t.hostname==="youtu.be"?t.pathname.slice(1):t.searchParams.get("v")??"";return ne.test(n)?n:null},ae=e=>i.jsx(F,{src:`https://www.youtube.com/embed/${e}`,title:"YouTube video player",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:!0,loading:"lazy"}),oe=e=>{const t=S(e);if(!t||!ee.has(t.hostname))return null;const n=t.pathname.split("/").filter(Boolean),s=n.indexOf("status"),l=s>=0?n[s+1]:void 0;return!l||!/^\d{1,20}$/.test(l)?null:i.jsx($,{children:i.jsx(y.Suspense,{children:i.jsx(J,{tweetId:l,theme:"dark"})})})},ie=e=>{const t=S(e);if(!t||!_.has(t.hostname))return null;const s=`https://www.instagram.com${t.pathname.endsWith("/")?t.pathname:`${t.pathname}/`}embed/`,l=e.includes("/reel/")?"Instagram Reel":"Instagram Post";return i.jsx(V,{src:s,title:l,scrolling:"no",allowFullScreen:!0,loading:"lazy"})},se=(e,t)=>{const n=e.data?.target?.sys?.id;if(n&&t[n]){const l=t[n];return i.jsx(x,{src:l.url,alt:"",width:l.width,height:l.height,loading:"lazy",decoding:"async"})}const s=e.data?.target?.fields?.file?.url;return s?i.jsx(x,{src:s.startsWith("//")?`https:${s}`:s,alt:"",loading:"lazy",decoding:"async"}):null},le=e=>{const t=e.data.uri,s=e.content[0]?.value;if(s===t){const d=re(t);if(d)return ae(d);const g=oe(t);if(g)return g;const u=S(t);if(u&&_.has(u.hostname))return ie(t);if(u&&te.has(u.hostname))return i.jsx(z,{src:t,title:"Embedded Linkedin Post",loading:"lazy"})}const l=N("BLOG_BASE_URL")||"",h=t.startsWith(l),p=t.startsWith("#");if(h){const d=new URL(t,window.location.origin).pathname;return i.jsx(W,{to:d,children:s})}return p?i.jsx(f,{href:t,target:"_self",children:s}):i.jsx(f,{href:t,target:"_blank",rel:"noopener noreferrer",children:s})},ce=e=>({renderNode:{[c.BLOCKS.PARAGRAPH]:(t,n)=>i.jsx(j,{children:n}),[c.BLOCKS.HEADING_1]:(t,n)=>i.jsx(v,{children:n}),[c.BLOCKS.HEADING_2]:(t,n)=>i.jsx(M,{children:n}),[c.BLOCKS.HEADING_3]:(t,n)=>i.jsx(P,{children:n}),[c.BLOCKS.HEADING_4]:(t,n)=>i.jsx(U,{children:n}),[c.BLOCKS.HEADING_5]:(t,n)=>i.jsx(R,{children:n}),[c.BLOCKS.HEADING_6]:(t,n)=>i.jsx(Y,{children:n}),[c.BLOCKS.UL_LIST]:(t,n)=>i.jsx(X,{children:n}),[c.BLOCKS.OL_LIST]:(t,n)=>i.jsx(Q,{children:n}),[c.BLOCKS.LIST_ITEM]:(t,n)=>i.jsx(q,{children:n}),[c.BLOCKS.QUOTE]:(t,n)=>i.jsx(G,{children:n}),[c.BLOCKS.EMBEDDED_ASSET]:t=>se(t,e),[c.INLINES.HYPERLINK]:t=>le(t)}}),ue=({document:e,assets:t={}})=>{if(!e||!e.content)return null;const n=y.useMemo(()=>ce(t),[t]);return i.jsx(i.Fragment,{children:k(e,n)})},me=a(m)(({theme:e})=>({textAlign:"center",paddingTop:e.spacing(8),paddingBottom:e.spacing(8)})),Ee=a(m)(({theme:e})=>({maxWidth:e.spacing(96),width:"100%",margin:"0 auto",padding:0,[e.breakpoints.down("xs")]:{padding:`${e.spacing(4)} ${e.spacing(2)}`}})),ye=a(m)(({theme:e})=>({marginBottom:e.spacing(5)})),Se=a(E)(({theme:e})=>({...e.typography.caption,color:e.palette.text.primary,letterSpacing:e.typography.caption.letterSpacing,textTransform:"uppercase",display:"flex",alignItems:"center",gap:e.spacing(1)})),he=a("span")(({theme:e})=>({color:e.palette.text.secondary})),Te=a(L)(({theme:e})=>({color:O.gray3,textDecoration:"none",WebkitTapHighlightColor:"transparent","&:hover":{textDecoration:"underline"},"&:focus-visible":{outline:`2px solid ${e.palette.primary.main}`,outlineOffset:2}})),Le=a(m)(({theme:e})=>({marginTop:e.spacing(1.5)})),Ie=a(E)(({theme:e})=>({color:e.palette.text.primary})),xe=a(E)(({theme:e})=>({color:e.palette.text.primary,marginTop:e.spacing(1)})),fe=a("img")(({theme:e})=>({width:"100%",height:"auto",borderRadius:e.spacing(2),marginBottom:e.spacing(5),objectFit:"cover",backgroundColor:e.palette.background.paper})),Be=a(m)(()=>({})),Re=a(m)(({theme:e})=>({display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:e.spacing(5)})),_e=a(L)(({theme:e})=>({display:"inline-flex",alignItems:"center",gap:e.spacing(2),textDecoration:"none",color:e.palette.text.primary,WebkitTapHighlightColor:"transparent","&:focus-visible":{outline:`2px solid ${e.palette.primary.main}`,outlineOffset:2}})),Ce=a("img")(({theme:e})=>({width:e.spacing(4),height:e.spacing(4),borderRadius:"50%",objectFit:"cover",backgroundColor:e.palette.background.default})),Ne=a(E)(({theme:e})=>({...e.typography.body1,color:e.palette.text.primary})),be=a(m)(()=>({})),Oe=a(m)(({theme:e})=>({display:"flex",alignItems:"center",gap:e.spacing(1.5)})),we=a(E)(({theme:e})=>({...e.typography.caption,color:e.palette.text.secondary,textTransform:"uppercase"})),Ae=a("a")(({theme:e})=>({display:"inline-flex",alignItems:"center",color:e.palette.text.secondary,textDecoration:"none","&:hover":{color:e.palette.text.primary},"&:focus-visible":{outline:`2px solid ${e.palette.primary.main}`,outlineOffset:2}}));export{Be as A,be as B,me as C,ye as H,Se as M,fe as P,ue as R,xe as S,Le as T,Ee as a,he as b,Ie as c,Ce as d,Ne as e,Te as f,Re as g,_e as h,Oe as i,we as j,Ae as k};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"mappings":"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","names":["React","require$$0","richTextTypes","require$$1","appendKeyToValidElement","element","key","nodeListToReactComponents","nodes","options","node","index","nodeToReactComponent","renderNode","renderMark","renderText","preserveWhitespace","nodeValue","match","lines","jsxLines","line","value","mark","children","defaultNodeRenderers","defaultInline","defaultInlineResource","_children","defaultMarkRenderers","text","type","documentToReactComponents","richTextDocument","processedDocument","documentToReactComponents_1","Paragraph","styled","theme","Heading1","Heading2","Heading3","Heading4","Heading5","Heading6","Blockquote","EmbeddedImage","Hyperlink","InternalLink","Link","LinkedInEmbed","TwitterContainer","YouTubeEmbed","InstagramEmbed","ListItem","OrderedList","UnorderedList","LazyTwitterEmbed","lazy","__vitePreload","m","YOUTUBE_HOSTS","TWITTER_HOSTS","INSTAGRAM_HOSTS","LINKEDIN_HOSTS","YOUTUBE_ID_REGEX","parseUrl","uri","getYouTubeVideoId","url","id","renderYouTubeEmbed","videoId","jsx","renderTwitterEmbed","segments","statusIndex","tweetId","Suspense","renderInstagramEmbed","embedSrc","title","renderEmbeddedAsset","assets","assetId","asset","renderHyperlink","contentValue","youtubeId","twitterEmbed","parsedUri","blogBaseUrl","getEnv","isInternalBlogLink","isAnchorLink","internalPath","createRichTextOptions","BLOCKS","_node","INLINES","RichText","document","useMemo","Fragment","CenteredBox","Box","ContentContainer","HeaderBox","MetaText","Typography","MetaSeparator","CategoryMetaLink","dclColors.neutral","TitleBox","TitleText","SubtitleText","PostImage","AuthorBox","AuthorRow","AuthorLink","AuthorAvatar","AuthorName","BodyContainer","ShareContainer","ShareLabel","ShareLink"],"ignoreList":[0],"sources":["../../node_modules/@contentful/rich-text-react-renderer/dist/rich-text-react-renderer.es5.js","../../src/components/blog/RichText/RichText.styled.ts","../../src/components/blog/RichText/RichText.renderers.tsx","../../src/components/blog/RichText/RichText.tsx","../../src/pages/blog/PostPage.styled.ts"],"sourcesContent":["'use strict';\n\nvar React = require('react');\nvar richTextTypes = require('@contentful/rich-text-types');\n\nfunction appendKeyToValidElement(element, key) {\n if (React.isValidElement(element) && element.key === null) {\n return React.cloneElement(element, {\n key\n });\n }\n return element;\n}\n\nfunction nodeListToReactComponents(nodes, options) {\n return nodes.map((node, index)=>{\n return appendKeyToValidElement(nodeToReactComponent(node, options), index);\n });\n}\nfunction nodeToReactComponent(node, options) {\n const { renderNode, renderMark, renderText, preserveWhitespace } = options;\n if (richTextTypes.helpers.isText(node)) {\n let nodeValue = renderText ? renderText(node.value) : node.value;\n if (preserveWhitespace && !renderText) {\n nodeValue = nodeValue.replace(/ {2,}/g, (match)=>'\\u00A0'.repeat(match.length));\n const lines = nodeValue.split('\\n');\n const jsxLines = [];\n lines.forEach((line, index)=>{\n jsxLines.push(line);\n if (index !== lines.length - 1) {\n jsxLines.push(React.createElement(\"br\", null));\n }\n });\n nodeValue = jsxLines;\n }\n return node.marks.reduce((value, mark)=>{\n if (!renderMark[mark.type]) {\n return value;\n }\n return renderMark[mark.type](value);\n }, nodeValue);\n } else {\n const children = nodeListToReactComponents(node.content, options);\n if (!node.nodeType || !renderNode[node.nodeType]) {\n return React.createElement(React.Fragment, null, children);\n }\n return renderNode[node.nodeType](node, children);\n }\n}\n\nconst defaultNodeRenderers = {\n [richTextTypes.BLOCKS.DOCUMENT]: (node, children)=>children,\n [richTextTypes.BLOCKS.PARAGRAPH]: (node, children)=>React.createElement(\"p\", null, children),\n [richTextTypes.BLOCKS.HEADING_1]: (node, children)=>React.createElement(\"h1\", null, children),\n [richTextTypes.BLOCKS.HEADING_2]: (node, children)=>React.createElement(\"h2\", null, children),\n [richTextTypes.BLOCKS.HEADING_3]: (node, children)=>React.createElement(\"h3\", null, children),\n [richTextTypes.BLOCKS.HEADING_4]: (node, children)=>React.createElement(\"h4\", null, children),\n [richTextTypes.BLOCKS.HEADING_5]: (node, children)=>React.createElement(\"h5\", null, children),\n [richTextTypes.BLOCKS.HEADING_6]: (node, children)=>React.createElement(\"h6\", null, children),\n [richTextTypes.BLOCKS.EMBEDDED_ENTRY]: (node, children)=>React.createElement(\"div\", null, children),\n [richTextTypes.BLOCKS.EMBEDDED_RESOURCE]: (node, children)=>React.createElement(\"div\", null, children),\n [richTextTypes.BLOCKS.UL_LIST]: (node, children)=>React.createElement(\"ul\", null, children),\n [richTextTypes.BLOCKS.OL_LIST]: (node, children)=>React.createElement(\"ol\", null, children),\n [richTextTypes.BLOCKS.LIST_ITEM]: (node, children)=>React.createElement(\"li\", null, children),\n [richTextTypes.BLOCKS.QUOTE]: (node, children)=>React.createElement(\"blockquote\", null, children),\n [richTextTypes.BLOCKS.HR]: ()=>React.createElement(\"hr\", null),\n [richTextTypes.BLOCKS.TABLE]: (node, children)=>React.createElement(\"table\", null, React.createElement(\"tbody\", null, children)),\n [richTextTypes.BLOCKS.TABLE_ROW]: (node, children)=>React.createElement(\"tr\", null, children),\n [richTextTypes.BLOCKS.TABLE_HEADER_CELL]: (node, children)=>React.createElement(\"th\", null, children),\n [richTextTypes.BLOCKS.TABLE_CELL]: (node, children)=>React.createElement(\"td\", null, children),\n [richTextTypes.INLINES.ASSET_HYPERLINK]: (node)=>defaultInline(richTextTypes.INLINES.ASSET_HYPERLINK, node),\n [richTextTypes.INLINES.ENTRY_HYPERLINK]: (node)=>defaultInline(richTextTypes.INLINES.ENTRY_HYPERLINK, node),\n [richTextTypes.INLINES.RESOURCE_HYPERLINK]: (node)=>defaultInlineResource(richTextTypes.INLINES.RESOURCE_HYPERLINK, node),\n [richTextTypes.INLINES.EMBEDDED_ENTRY]: (node)=>defaultInline(richTextTypes.INLINES.EMBEDDED_ENTRY, node),\n [richTextTypes.INLINES.EMBEDDED_RESOURCE]: (node, _children)=>defaultInlineResource(richTextTypes.INLINES.EMBEDDED_RESOURCE, node),\n [richTextTypes.INLINES.HYPERLINK]: (node, children)=>React.createElement(\"a\", {\n href: node.data.uri\n }, children)\n};\nconst defaultMarkRenderers = {\n [richTextTypes.MARKS.BOLD]: (text)=>React.createElement(\"b\", null, text),\n [richTextTypes.MARKS.ITALIC]: (text)=>React.createElement(\"i\", null, text),\n [richTextTypes.MARKS.UNDERLINE]: (text)=>React.createElement(\"u\", null, text),\n [richTextTypes.MARKS.CODE]: (text)=>React.createElement(\"code\", null, text),\n [richTextTypes.MARKS.SUPERSCRIPT]: (text)=>React.createElement(\"sup\", null, text),\n [richTextTypes.MARKS.SUBSCRIPT]: (text)=>React.createElement(\"sub\", null, text),\n [richTextTypes.MARKS.STRIKETHROUGH]: (text)=>React.createElement(\"s\", null, text)\n};\nfunction defaultInline(type, node) {\n return React.createElement(\"span\", {\n key: node.data.target.sys.id\n }, \"type: \", node.nodeType, \" id: \", node.data.target.sys.id);\n}\nfunction defaultInlineResource(type, node) {\n return React.createElement(\"span\", {\n key: node.data.target.sys.urn\n }, \"type: \", node.nodeType, \" urn: \", node.data.target.sys.urn);\n}\nfunction documentToReactComponents(richTextDocument, options = {}) {\n if (!richTextDocument) {\n return null;\n }\n let processedDocument = richTextDocument;\n if (options.stripEmptyTrailingParagraph) {\n processedDocument = richTextTypes.helpers.stripEmptyTrailingParagraphFromDocument(richTextDocument);\n }\n return nodeToReactComponent(processedDocument, {\n renderNode: {\n ...defaultNodeRenderers,\n ...options.renderNode\n },\n renderMark: {\n ...defaultMarkRenderers,\n ...options.renderMark\n },\n renderText: options.renderText,\n preserveWhitespace: options.preserveWhitespace\n });\n}\n\nexports.documentToReactComponents = documentToReactComponents;\n//# sourceMappingURL=rich-text-react-renderer.es5.js.map\n","/* eslint-disable @typescript-eslint/naming-convention */\nimport { Link } from 'react-router-dom'\nimport { styled } from 'decentraland-ui2'\n\nconst Paragraph = styled('p')(({ theme }) => ({\n ...theme.typography.body1,\n lineHeight: 2,\n letterSpacing: '-0.2px',\n marginTop: theme.spacing(2.5),\n marginBottom: 0\n}))\n\nconst Heading1 = styled('h1')(({ theme }) => ({\n ...theme.typography.h1,\n fontSize: theme.typography.pxToRem(40),\n fontWeight: 700,\n lineHeight: 1.17,\n marginTop: 0,\n paddingTop: theme.spacing(1.375),\n marginBottom: 0\n}))\n\nconst Heading2 = styled('h2')(({ theme }) => ({\n ...theme.typography.h2,\n fontSize: theme.typography.pxToRem(32),\n fontWeight: 700,\n lineHeight: 1.17,\n marginTop: 0,\n paddingTop: theme.spacing(1.375),\n marginBottom: 0\n}))\n\nconst Heading3 = styled('h3')(({ theme }) => ({\n ...theme.typography.h3,\n fontSize: theme.typography.pxToRem(28),\n fontWeight: 500,\n lineHeight: 1.21,\n marginTop: theme.spacing(8),\n marginBottom: 0\n}))\n\nconst Heading4 = styled('h4')(({ theme }) => ({\n ...theme.typography.h4,\n fontSize: theme.typography.pxToRem(24),\n lineHeight: 1.2,\n letterSpacing: '0.3px',\n marginTop: theme.spacing(4),\n marginBottom: 0\n}))\n\nconst Heading5 = styled('h5')(({ theme }) => ({\n ...theme.typography.h5,\n fontSize: theme.typography.pxToRem(20),\n lineHeight: 1.2,\n letterSpacing: '0.3px',\n marginTop: theme.spacing(2),\n marginBottom: 0\n}))\n\nconst Heading6 = styled(Heading5)(({ theme }) => ({\n fontSize: theme.typography.pxToRem(18)\n}))\n\nconst Blockquote = styled('blockquote')(({ theme }) => ({\n borderLeft: '4px solid',\n borderColor: theme.palette.primary.main,\n paddingLeft: theme.spacing(2),\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n fontStyle: 'italic'\n}))\n\nconst EmbeddedImage = styled('img')(({ theme }) => ({\n maxWidth: '100%',\n height: 'auto',\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(2)\n}))\n\nconst Hyperlink = styled('a')(({ theme }) => ({\n color: theme.palette.primary.main,\n textDecoration: 'none',\n '&:hover': {\n color: theme.palette.primary.dark\n }\n}))\n\nconst InternalLink = styled(Link)(({ theme }) => ({\n color: theme.palette.primary.main,\n textDecoration: 'none',\n '&:hover': {\n color: theme.palette.primary.dark\n }\n}))\n\nconst LinkedInEmbed = styled('iframe')(({ theme }) => ({\n height: 760,\n width: 560,\n border: `thin solid ${theme.palette.divider}`,\n padding: theme.spacing(0.625),\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(2)\n}))\n\nconst TwitterContainer = styled('div')(({ theme }) => ({\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(2)\n}))\n\nconst YouTubeEmbed = styled('iframe')(({ theme }) => ({\n width: 560,\n height: 315,\n border: 0,\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(2)\n}))\n\nconst InstagramEmbed = styled('iframe')(({ theme }) => ({\n width: 400,\n height: 480,\n border: 0,\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(2)\n}))\n\nconst ListItem = styled('li')(() => ({}))\n\nconst OrderedList = styled('ol')(({ theme }) => ({\n marginBottom: theme.spacing(2)\n}))\n\nconst UnorderedList = styled('ul')(({ theme }) => ({\n marginBottom: theme.spacing(2)\n}))\n\nexport {\n Blockquote,\n EmbeddedImage,\n Heading1,\n Heading2,\n Heading3,\n Heading4,\n Heading5,\n Heading6,\n Hyperlink,\n InstagramEmbed,\n InternalLink,\n LinkedInEmbed,\n ListItem,\n OrderedList,\n Paragraph,\n TwitterContainer,\n UnorderedList,\n YouTubeEmbed\n}\n","import { Suspense, lazy } from 'react'\nimport type { Block, Inline, Text } from '@contentful/rich-text-types'\nimport { getEnv } from '../../../config/env'\nimport type { ContentfulAsset } from '../../../shared/blog/types/blog.domain'\nimport { EmbeddedImage, Hyperlink, InstagramEmbed, InternalLink, LinkedInEmbed, TwitterContainer, YouTubeEmbed } from './RichText.styled'\n\n// Lazy-loaded to keep Twitter widgets script off the initial post-page bundle.\nconst LazyTwitterEmbed = lazy(() => import('./TwitterEmbed').then(m => ({ default: m.TwitterEmbed })))\n\n// Strict hostname allowlists — prevents `uri.includes()` bypasses (e.g. evil.com/youtube.com)\nconst YOUTUBE_HOSTS = new Set(['www.youtube.com', 'youtube.com', 'youtu.be'])\nconst TWITTER_HOSTS = new Set(['www.twitter.com', 'twitter.com', 'www.x.com', 'x.com'])\nconst INSTAGRAM_HOSTS = new Set(['www.instagram.com', 'instagram.com'])\nconst LINKEDIN_HOSTS = new Set(['www.linkedin.com', 'linkedin.com'])\n// YouTube video IDs: alphanumeric, hyphens, underscores, 1-20 chars\nconst YOUTUBE_ID_REGEX = /^[\\w-]{1,20}$/\n\nconst parseUrl = (uri: string): URL | null => {\n try {\n return new URL(uri)\n } catch {\n return null\n }\n}\n\nconst getYouTubeVideoId = (uri: string): string | null => {\n const url = parseUrl(uri)\n if (!url || !YOUTUBE_HOSTS.has(url.hostname)) return null\n const id = url.hostname === 'youtu.be' ? url.pathname.slice(1) : url.searchParams.get('v') ?? ''\n return YOUTUBE_ID_REGEX.test(id) ? id : null\n}\n\nconst renderYouTubeEmbed = (videoId: string) => (\n <YouTubeEmbed\n src={`https://www.youtube.com/embed/${videoId}`}\n title=\"YouTube video player\"\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\"\n allowFullScreen\n loading=\"lazy\"\n />\n)\n\nconst renderTwitterEmbed = (uri: string) => {\n const url = parseUrl(uri)\n if (!url || !TWITTER_HOSTS.has(url.hostname)) return null\n const segments = url.pathname.split('/').filter(Boolean)\n // Twitter status URL: /username/status/TWEET_ID\n const statusIndex = segments.indexOf('status')\n const tweetId = statusIndex >= 0 ? segments[statusIndex + 1] : undefined\n if (!tweetId || !/^\\d{1,20}$/.test(tweetId)) return null\n\n return (\n <TwitterContainer>\n <Suspense>\n <LazyTwitterEmbed tweetId={tweetId} theme=\"dark\" />\n </Suspense>\n </TwitterContainer>\n )\n}\n\nconst renderInstagramEmbed = (uri: string) => {\n const url = parseUrl(uri)\n if (!url || !INSTAGRAM_HOSTS.has(url.hostname)) return null\n\n const pathname = url.pathname.endsWith('/') ? url.pathname : `${url.pathname}/`\n const embedSrc = `https://www.instagram.com${pathname}embed/`\n const title = uri.includes('/reel/') ? 'Instagram Reel' : 'Instagram Post'\n\n return <InstagramEmbed src={embedSrc} title={title} scrolling=\"no\" allowFullScreen loading=\"lazy\" />\n}\n\nconst renderEmbeddedAsset = (node: Block | Inline, assets: Record<string, ContentfulAsset>) => {\n const assetId = node.data?.target?.sys?.id as string | undefined\n if (assetId && assets[assetId]) {\n const asset = assets[assetId]\n return <EmbeddedImage src={asset.url} alt=\"\" width={asset.width} height={asset.height} loading=\"lazy\" decoding=\"async\" />\n }\n\n const url = node.data?.target?.fields?.file?.url as string | undefined\n if (url) {\n return <EmbeddedImage src={url.startsWith('//') ? `https:${url}` : url} alt=\"\" loading=\"lazy\" decoding=\"async\" />\n }\n\n return null\n}\n\nconst renderHyperlink = (node: Block | Inline) => {\n const uri = node.data.uri as string\n const content = node.content as Text[]\n const contentValue = content[0]?.value\n\n // Only embed when the link text IS the URL (author-paste-embed pattern)\n if (contentValue === uri) {\n const youtubeId = getYouTubeVideoId(uri)\n if (youtubeId) return renderYouTubeEmbed(youtubeId)\n\n const twitterEmbed = renderTwitterEmbed(uri)\n if (twitterEmbed) return twitterEmbed\n\n const parsedUri = parseUrl(uri)\n if (parsedUri && INSTAGRAM_HOSTS.has(parsedUri.hostname)) {\n return renderInstagramEmbed(uri)\n }\n\n if (parsedUri && LINKEDIN_HOSTS.has(parsedUri.hostname)) {\n return <LinkedInEmbed src={uri} title=\"Embedded Linkedin Post\" loading=\"lazy\" />\n }\n }\n\n // Check if this is an internal blog link (e.g. https://decentraland.org/blog/...)\n const blogBaseUrl = getEnv('BLOG_BASE_URL') || ''\n const isInternalBlogLink = uri.startsWith(blogBaseUrl)\n const isAnchorLink = uri.startsWith('#')\n\n if (isInternalBlogLink) {\n // Extract the path starting from /blog/...\n const internalPath = new URL(uri, window.location.origin).pathname\n return <InternalLink to={internalPath}>{contentValue}</InternalLink>\n }\n\n if (isAnchorLink) {\n return (\n <Hyperlink href={uri} target=\"_self\">\n {contentValue}\n </Hyperlink>\n )\n }\n\n return (\n <Hyperlink href={uri} target=\"_blank\" rel=\"noopener noreferrer\">\n {contentValue}\n </Hyperlink>\n )\n}\n\nexport { renderEmbeddedAsset, renderHyperlink }\n","import { useMemo } from 'react'\nimport type { ReactNode } from 'react'\nimport { type Options, documentToReactComponents } from '@contentful/rich-text-react-renderer'\nimport { BLOCKS, type Document, INLINES } from '@contentful/rich-text-types'\nimport type { ContentfulAsset } from '../../../shared/blog/types/blog.domain'\nimport { renderEmbeddedAsset, renderHyperlink } from './RichText.renderers'\nimport {\n Blockquote,\n Heading1,\n Heading2,\n Heading3,\n Heading4,\n Heading5,\n Heading6,\n ListItem,\n OrderedList,\n Paragraph,\n UnorderedList\n} from './RichText.styled'\n\ninterface RichTextProps {\n document: Document\n assets?: Record<string, ContentfulAsset>\n}\n\nconst createRichTextOptions = (assets: Record<string, ContentfulAsset>): Options => ({\n renderNode: {\n [BLOCKS.PARAGRAPH]: (_node, children) => <Paragraph>{children}</Paragraph>,\n [BLOCKS.HEADING_1]: (_node, children) => <Heading1>{children}</Heading1>,\n [BLOCKS.HEADING_2]: (_node, children) => <Heading2>{children}</Heading2>,\n [BLOCKS.HEADING_3]: (_node, children) => <Heading3>{children}</Heading3>,\n [BLOCKS.HEADING_4]: (_node, children) => <Heading4>{children}</Heading4>,\n [BLOCKS.HEADING_5]: (_node, children) => <Heading5>{children}</Heading5>,\n [BLOCKS.HEADING_6]: (_node, children) => <Heading6>{children}</Heading6>,\n [BLOCKS.UL_LIST]: (_node, children) => <UnorderedList>{children}</UnorderedList>,\n [BLOCKS.OL_LIST]: (_node, children) => <OrderedList>{children}</OrderedList>,\n [BLOCKS.LIST_ITEM]: (_node, children) => <ListItem>{children}</ListItem>,\n [BLOCKS.QUOTE]: (_node, children) => <Blockquote>{children}</Blockquote>,\n [BLOCKS.EMBEDDED_ASSET]: node => renderEmbeddedAsset(node, assets),\n [INLINES.HYPERLINK]: node => renderHyperlink(node)\n }\n})\n\nconst RichText = ({ document, assets = {} }: RichTextProps): ReactNode => {\n if (!document || !document.content) {\n return null\n }\n\n const options = useMemo(() => createRichTextOptions(assets), [assets])\n\n return <>{documentToReactComponents(document, options)}</>\n}\n\nexport { RichText }\n","/* eslint-disable @typescript-eslint/naming-convention */\nimport { Link } from 'react-router-dom'\nimport { Box, Typography, dclColors, styled } from 'decentraland-ui2'\n\nconst CenteredBox = styled(Box)(({ theme }) => ({\n textAlign: 'center',\n paddingTop: theme.spacing(8),\n paddingBottom: theme.spacing(8)\n}))\n\nconst ContentContainer = styled(Box)(({ theme }) => ({\n maxWidth: theme.spacing(96),\n width: '100%',\n margin: '0 auto',\n padding: 0,\n [theme.breakpoints.down('xs')]: {\n padding: `${theme.spacing(4)} ${theme.spacing(2)}`\n }\n}))\n\nconst HeaderBox = styled(Box)(({ theme }) => ({\n marginBottom: theme.spacing(5)\n}))\n\nconst MetaText = styled(Typography)(({ theme }) => ({\n ...theme.typography.caption,\n color: theme.palette.text.primary,\n letterSpacing: theme.typography.caption.letterSpacing,\n textTransform: 'uppercase',\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(1)\n}))\n\nconst MetaSeparator = styled('span')(({ theme }) => ({\n color: theme.palette.text.secondary\n}))\n\nconst CategoryMetaLink = styled(Link)(({ theme }) => ({\n color: dclColors.neutral.gray3,\n textDecoration: 'none',\n WebkitTapHighlightColor: 'transparent',\n '&:hover': {\n textDecoration: 'underline'\n },\n '&:focus-visible': {\n outline: `2px solid ${theme.palette.primary.main}`,\n outlineOffset: 2\n }\n}))\n\nconst TitleBox = styled(Box)(({ theme }) => ({\n marginTop: theme.spacing(1.5)\n}))\n\nconst TitleText = styled(Typography)(({ theme }) => ({\n color: theme.palette.text.primary\n}))\n\nconst SubtitleText = styled(Typography)(({ theme }) => ({\n color: theme.palette.text.primary,\n marginTop: theme.spacing(1)\n}))\n\nconst PostImage = styled('img')(({ theme }) => ({\n width: '100%',\n height: 'auto',\n borderRadius: theme.spacing(2),\n marginBottom: theme.spacing(5),\n objectFit: 'cover',\n backgroundColor: theme.palette.background.paper\n}))\n\nconst AuthorBox = styled(Box)(() => ({}))\n\nconst AuthorRow = styled(Box)(({ theme }) => ({\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n marginBottom: theme.spacing(5)\n}))\n\nconst AuthorLink = styled(Link)(({ theme }) => ({\n display: 'inline-flex',\n alignItems: 'center',\n gap: theme.spacing(2),\n textDecoration: 'none',\n color: theme.palette.text.primary,\n WebkitTapHighlightColor: 'transparent',\n '&:focus-visible': {\n outline: `2px solid ${theme.palette.primary.main}`,\n outlineOffset: 2\n }\n}))\n\nconst AuthorAvatar = styled('img')(({ theme }) => ({\n width: theme.spacing(4),\n height: theme.spacing(4),\n borderRadius: '50%',\n objectFit: 'cover',\n backgroundColor: theme.palette.background.default\n}))\n\nconst AuthorName = styled(Typography)(({ theme }) => ({\n ...theme.typography.body1,\n color: theme.palette.text.primary\n}))\n\nconst BodyContainer = styled(Box)(() => ({}))\n\nconst ShareContainer = styled(Box)(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(1.5)\n}))\n\nconst ShareLabel = styled(Typography)(({ theme }) => ({\n ...theme.typography.caption,\n color: theme.palette.text.secondary,\n textTransform: 'uppercase'\n}))\n\nconst ShareLink = styled('a')(({ theme }) => ({\n display: 'inline-flex',\n alignItems: 'center',\n color: theme.palette.text.secondary,\n textDecoration: 'none',\n '&:hover': {\n color: theme.palette.text.primary\n },\n '&:focus-visible': {\n outline: `2px solid ${theme.palette.primary.main}`,\n outlineOffset: 2\n }\n}))\n\nexport {\n AuthorAvatar,\n AuthorBox,\n AuthorLink,\n AuthorName,\n AuthorRow,\n BodyContainer,\n CategoryMetaLink,\n CenteredBox,\n ContentContainer,\n HeaderBox,\n MetaSeparator,\n MetaText,\n PostImage,\n ShareContainer,\n ShareLabel,\n ShareLink,\n SubtitleText,\n TitleBox,\n TitleText\n}\n"],"file":"assets/PostPage.styled-B7Xofl3c.js"}
|
|
1
|
+
{"version":3,"mappings":"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","names":["React","require$$0","richTextTypes","require$$1","appendKeyToValidElement","element","key","nodeListToReactComponents","nodes","options","node","index","nodeToReactComponent","renderNode","renderMark","renderText","preserveWhitespace","nodeValue","match","lines","jsxLines","line","value","mark","children","defaultNodeRenderers","defaultInline","defaultInlineResource","_children","defaultMarkRenderers","text","type","documentToReactComponents","richTextDocument","processedDocument","documentToReactComponents_1","Paragraph","styled","theme","Heading1","Heading2","Heading3","Heading4","Heading5","Heading6","Blockquote","EmbeddedImage","Hyperlink","InternalLink","Link","LinkedInEmbed","TwitterContainer","YouTubeEmbed","InstagramEmbed","ListItem","OrderedList","UnorderedList","LazyTwitterEmbed","lazy","__vitePreload","m","YOUTUBE_HOSTS","TWITTER_HOSTS","INSTAGRAM_HOSTS","LINKEDIN_HOSTS","YOUTUBE_ID_REGEX","parseUrl","uri","getYouTubeVideoId","url","id","renderYouTubeEmbed","videoId","jsx","renderTwitterEmbed","segments","statusIndex","tweetId","Suspense","renderInstagramEmbed","embedSrc","title","renderEmbeddedAsset","assets","assetId","asset","renderHyperlink","contentValue","youtubeId","twitterEmbed","parsedUri","blogBaseUrl","getEnv","isInternalBlogLink","isAnchorLink","internalPath","createRichTextOptions","BLOCKS","_node","INLINES","RichText","document","useMemo","Fragment","CenteredBox","Box","ContentContainer","HeaderBox","MetaText","Typography","MetaSeparator","CategoryMetaLink","dclColors.neutral","TitleBox","TitleText","SubtitleText","PostImage","AuthorBox","AuthorRow","AuthorLink","AuthorAvatar","AuthorName","BodyContainer","ShareContainer","ShareLabel","ShareLink"],"ignoreList":[0],"sources":["../../node_modules/@contentful/rich-text-react-renderer/dist/rich-text-react-renderer.es5.js","../../src/components/blog/RichText/RichText.styled.ts","../../src/components/blog/RichText/RichText.renderers.tsx","../../src/components/blog/RichText/RichText.tsx","../../src/pages/blog/PostPage.styled.ts"],"sourcesContent":["'use strict';\n\nvar React = require('react');\nvar richTextTypes = require('@contentful/rich-text-types');\n\nfunction appendKeyToValidElement(element, key) {\n if (React.isValidElement(element) && element.key === null) {\n return React.cloneElement(element, {\n key\n });\n }\n return element;\n}\n\nfunction nodeListToReactComponents(nodes, options) {\n return nodes.map((node, index)=>{\n return appendKeyToValidElement(nodeToReactComponent(node, options), index);\n });\n}\nfunction nodeToReactComponent(node, options) {\n const { renderNode, renderMark, renderText, preserveWhitespace } = options;\n if (richTextTypes.helpers.isText(node)) {\n let nodeValue = renderText ? renderText(node.value) : node.value;\n if (preserveWhitespace && !renderText) {\n nodeValue = nodeValue.replace(/ {2,}/g, (match)=>'\\u00A0'.repeat(match.length));\n const lines = nodeValue.split('\\n');\n const jsxLines = [];\n lines.forEach((line, index)=>{\n jsxLines.push(line);\n if (index !== lines.length - 1) {\n jsxLines.push(React.createElement(\"br\", null));\n }\n });\n nodeValue = jsxLines;\n }\n return node.marks.reduce((value, mark)=>{\n if (!renderMark[mark.type]) {\n return value;\n }\n return renderMark[mark.type](value);\n }, nodeValue);\n } else {\n const children = nodeListToReactComponents(node.content, options);\n if (!node.nodeType || !renderNode[node.nodeType]) {\n return React.createElement(React.Fragment, null, children);\n }\n return renderNode[node.nodeType](node, children);\n }\n}\n\nconst defaultNodeRenderers = {\n [richTextTypes.BLOCKS.DOCUMENT]: (node, children)=>children,\n [richTextTypes.BLOCKS.PARAGRAPH]: (node, children)=>React.createElement(\"p\", null, children),\n [richTextTypes.BLOCKS.HEADING_1]: (node, children)=>React.createElement(\"h1\", null, children),\n [richTextTypes.BLOCKS.HEADING_2]: (node, children)=>React.createElement(\"h2\", null, children),\n [richTextTypes.BLOCKS.HEADING_3]: (node, children)=>React.createElement(\"h3\", null, children),\n [richTextTypes.BLOCKS.HEADING_4]: (node, children)=>React.createElement(\"h4\", null, children),\n [richTextTypes.BLOCKS.HEADING_5]: (node, children)=>React.createElement(\"h5\", null, children),\n [richTextTypes.BLOCKS.HEADING_6]: (node, children)=>React.createElement(\"h6\", null, children),\n [richTextTypes.BLOCKS.EMBEDDED_ENTRY]: (node, children)=>React.createElement(\"div\", null, children),\n [richTextTypes.BLOCKS.EMBEDDED_RESOURCE]: (node, children)=>React.createElement(\"div\", null, children),\n [richTextTypes.BLOCKS.UL_LIST]: (node, children)=>React.createElement(\"ul\", null, children),\n [richTextTypes.BLOCKS.OL_LIST]: (node, children)=>React.createElement(\"ol\", null, children),\n [richTextTypes.BLOCKS.LIST_ITEM]: (node, children)=>React.createElement(\"li\", null, children),\n [richTextTypes.BLOCKS.QUOTE]: (node, children)=>React.createElement(\"blockquote\", null, children),\n [richTextTypes.BLOCKS.HR]: ()=>React.createElement(\"hr\", null),\n [richTextTypes.BLOCKS.TABLE]: (node, children)=>React.createElement(\"table\", null, React.createElement(\"tbody\", null, children)),\n [richTextTypes.BLOCKS.TABLE_ROW]: (node, children)=>React.createElement(\"tr\", null, children),\n [richTextTypes.BLOCKS.TABLE_HEADER_CELL]: (node, children)=>React.createElement(\"th\", null, children),\n [richTextTypes.BLOCKS.TABLE_CELL]: (node, children)=>React.createElement(\"td\", null, children),\n [richTextTypes.INLINES.ASSET_HYPERLINK]: (node)=>defaultInline(richTextTypes.INLINES.ASSET_HYPERLINK, node),\n [richTextTypes.INLINES.ENTRY_HYPERLINK]: (node)=>defaultInline(richTextTypes.INLINES.ENTRY_HYPERLINK, node),\n [richTextTypes.INLINES.RESOURCE_HYPERLINK]: (node)=>defaultInlineResource(richTextTypes.INLINES.RESOURCE_HYPERLINK, node),\n [richTextTypes.INLINES.EMBEDDED_ENTRY]: (node)=>defaultInline(richTextTypes.INLINES.EMBEDDED_ENTRY, node),\n [richTextTypes.INLINES.EMBEDDED_RESOURCE]: (node, _children)=>defaultInlineResource(richTextTypes.INLINES.EMBEDDED_RESOURCE, node),\n [richTextTypes.INLINES.HYPERLINK]: (node, children)=>React.createElement(\"a\", {\n href: node.data.uri\n }, children)\n};\nconst defaultMarkRenderers = {\n [richTextTypes.MARKS.BOLD]: (text)=>React.createElement(\"b\", null, text),\n [richTextTypes.MARKS.ITALIC]: (text)=>React.createElement(\"i\", null, text),\n [richTextTypes.MARKS.UNDERLINE]: (text)=>React.createElement(\"u\", null, text),\n [richTextTypes.MARKS.CODE]: (text)=>React.createElement(\"code\", null, text),\n [richTextTypes.MARKS.SUPERSCRIPT]: (text)=>React.createElement(\"sup\", null, text),\n [richTextTypes.MARKS.SUBSCRIPT]: (text)=>React.createElement(\"sub\", null, text),\n [richTextTypes.MARKS.STRIKETHROUGH]: (text)=>React.createElement(\"s\", null, text)\n};\nfunction defaultInline(type, node) {\n return React.createElement(\"span\", {\n key: node.data.target.sys.id\n }, \"type: \", node.nodeType, \" id: \", node.data.target.sys.id);\n}\nfunction defaultInlineResource(type, node) {\n return React.createElement(\"span\", {\n key: node.data.target.sys.urn\n }, \"type: \", node.nodeType, \" urn: \", node.data.target.sys.urn);\n}\nfunction documentToReactComponents(richTextDocument, options = {}) {\n if (!richTextDocument) {\n return null;\n }\n let processedDocument = richTextDocument;\n if (options.stripEmptyTrailingParagraph) {\n processedDocument = richTextTypes.helpers.stripEmptyTrailingParagraphFromDocument(richTextDocument);\n }\n return nodeToReactComponent(processedDocument, {\n renderNode: {\n ...defaultNodeRenderers,\n ...options.renderNode\n },\n renderMark: {\n ...defaultMarkRenderers,\n ...options.renderMark\n },\n renderText: options.renderText,\n preserveWhitespace: options.preserveWhitespace\n });\n}\n\nexports.documentToReactComponents = documentToReactComponents;\n//# sourceMappingURL=rich-text-react-renderer.es5.js.map\n","/* eslint-disable @typescript-eslint/naming-convention */\nimport { Link } from 'react-router-dom'\nimport { styled } from 'decentraland-ui2'\n\nconst Paragraph = styled('p')(({ theme }) => ({\n ...theme.typography.body1,\n lineHeight: 2,\n letterSpacing: '-0.2px',\n marginTop: theme.spacing(2.5),\n marginBottom: 0\n}))\n\nconst Heading1 = styled('h1')(({ theme }) => ({\n ...theme.typography.h1,\n fontSize: theme.typography.pxToRem(40),\n fontWeight: 700,\n lineHeight: 1.17,\n marginTop: 0,\n paddingTop: theme.spacing(1.375),\n marginBottom: 0\n}))\n\nconst Heading2 = styled('h2')(({ theme }) => ({\n ...theme.typography.h2,\n fontSize: theme.typography.pxToRem(32),\n fontWeight: 700,\n lineHeight: 1.17,\n marginTop: 0,\n paddingTop: theme.spacing(1.375),\n marginBottom: 0\n}))\n\nconst Heading3 = styled('h3')(({ theme }) => ({\n ...theme.typography.h3,\n fontSize: theme.typography.pxToRem(28),\n fontWeight: 500,\n lineHeight: 1.21,\n marginTop: theme.spacing(8),\n marginBottom: 0\n}))\n\nconst Heading4 = styled('h4')(({ theme }) => ({\n ...theme.typography.h4,\n fontSize: theme.typography.pxToRem(24),\n lineHeight: 1.2,\n letterSpacing: '0.3px',\n marginTop: theme.spacing(4),\n marginBottom: 0\n}))\n\nconst Heading5 = styled('h5')(({ theme }) => ({\n ...theme.typography.h5,\n fontSize: theme.typography.pxToRem(20),\n lineHeight: 1.2,\n letterSpacing: '0.3px',\n marginTop: theme.spacing(2),\n marginBottom: 0\n}))\n\nconst Heading6 = styled(Heading5)(({ theme }) => ({\n fontSize: theme.typography.pxToRem(18)\n}))\n\nconst Blockquote = styled('blockquote')(({ theme }) => ({\n borderLeft: '4px solid',\n borderColor: theme.palette.primary.main,\n paddingLeft: theme.spacing(2),\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n fontStyle: 'italic'\n}))\n\nconst EmbeddedImage = styled('img')(({ theme }) => ({\n maxWidth: '100%',\n height: 'auto',\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(2)\n}))\n\nconst Hyperlink = styled('a')(({ theme }) => ({\n color: theme.palette.primary.main,\n textDecoration: 'none',\n '&:hover': {\n color: theme.palette.primary.dark\n }\n}))\n\nconst InternalLink = styled(Link)(({ theme }) => ({\n color: theme.palette.primary.main,\n textDecoration: 'none',\n '&:hover': {\n color: theme.palette.primary.dark\n }\n}))\n\nconst LinkedInEmbed = styled('iframe')(({ theme }) => ({\n height: 760,\n width: 560,\n border: `thin solid ${theme.palette.divider}`,\n padding: theme.spacing(0.625),\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(2)\n}))\n\nconst TwitterContainer = styled('div')(({ theme }) => ({\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(2)\n}))\n\nconst YouTubeEmbed = styled('iframe')(({ theme }) => ({\n width: 560,\n height: 315,\n border: 0,\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(2)\n}))\n\nconst InstagramEmbed = styled('iframe')(({ theme }) => ({\n width: 400,\n height: 480,\n border: 0,\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(2)\n}))\n\nconst ListItem = styled('li')(() => ({}))\n\nconst OrderedList = styled('ol')(({ theme }) => ({\n marginBottom: theme.spacing(2)\n}))\n\nconst UnorderedList = styled('ul')(({ theme }) => ({\n marginBottom: theme.spacing(2)\n}))\n\nexport {\n Blockquote,\n EmbeddedImage,\n Heading1,\n Heading2,\n Heading3,\n Heading4,\n Heading5,\n Heading6,\n Hyperlink,\n InstagramEmbed,\n InternalLink,\n LinkedInEmbed,\n ListItem,\n OrderedList,\n Paragraph,\n TwitterContainer,\n UnorderedList,\n YouTubeEmbed\n}\n","import { Suspense, lazy } from 'react'\nimport type { Block, Inline, Text } from '@contentful/rich-text-types'\nimport { getEnv } from '../../../config/env'\nimport type { ContentfulAsset } from '../../../shared/blog/types/blog.domain'\nimport { EmbeddedImage, Hyperlink, InstagramEmbed, InternalLink, LinkedInEmbed, TwitterContainer, YouTubeEmbed } from './RichText.styled'\n\n// Lazy-loaded to keep Twitter widgets script off the initial post-page bundle.\nconst LazyTwitterEmbed = lazy(() => import('./TwitterEmbed').then(m => ({ default: m.TwitterEmbed })))\n\n// Strict hostname allowlists — prevents `uri.includes()` bypasses (e.g. evil.com/youtube.com)\nconst YOUTUBE_HOSTS = new Set(['www.youtube.com', 'youtube.com', 'youtu.be'])\nconst TWITTER_HOSTS = new Set(['www.twitter.com', 'twitter.com', 'www.x.com', 'x.com'])\nconst INSTAGRAM_HOSTS = new Set(['www.instagram.com', 'instagram.com'])\nconst LINKEDIN_HOSTS = new Set(['www.linkedin.com', 'linkedin.com'])\n// YouTube video IDs: alphanumeric, hyphens, underscores, 1-20 chars\nconst YOUTUBE_ID_REGEX = /^[\\w-]{1,20}$/\n\nconst parseUrl = (uri: string): URL | null => {\n try {\n return new URL(uri)\n } catch {\n return null\n }\n}\n\nconst getYouTubeVideoId = (uri: string): string | null => {\n const url = parseUrl(uri)\n if (!url || !YOUTUBE_HOSTS.has(url.hostname)) return null\n const id = url.hostname === 'youtu.be' ? url.pathname.slice(1) : url.searchParams.get('v') ?? ''\n return YOUTUBE_ID_REGEX.test(id) ? id : null\n}\n\nconst renderYouTubeEmbed = (videoId: string) => (\n <YouTubeEmbed\n src={`https://www.youtube.com/embed/${videoId}`}\n title=\"YouTube video player\"\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\"\n allowFullScreen\n loading=\"lazy\"\n />\n)\n\nconst renderTwitterEmbed = (uri: string) => {\n const url = parseUrl(uri)\n if (!url || !TWITTER_HOSTS.has(url.hostname)) return null\n const segments = url.pathname.split('/').filter(Boolean)\n // Twitter status URL: /username/status/TWEET_ID\n const statusIndex = segments.indexOf('status')\n const tweetId = statusIndex >= 0 ? segments[statusIndex + 1] : undefined\n if (!tweetId || !/^\\d{1,20}$/.test(tweetId)) return null\n\n return (\n <TwitterContainer>\n <Suspense>\n <LazyTwitterEmbed tweetId={tweetId} theme=\"dark\" />\n </Suspense>\n </TwitterContainer>\n )\n}\n\nconst renderInstagramEmbed = (uri: string) => {\n const url = parseUrl(uri)\n if (!url || !INSTAGRAM_HOSTS.has(url.hostname)) return null\n\n const pathname = url.pathname.endsWith('/') ? url.pathname : `${url.pathname}/`\n const embedSrc = `https://www.instagram.com${pathname}embed/`\n const title = uri.includes('/reel/') ? 'Instagram Reel' : 'Instagram Post'\n\n return <InstagramEmbed src={embedSrc} title={title} scrolling=\"no\" allowFullScreen loading=\"lazy\" />\n}\n\nconst renderEmbeddedAsset = (node: Block | Inline, assets: Record<string, ContentfulAsset>) => {\n const assetId = node.data?.target?.sys?.id as string | undefined\n if (assetId && assets[assetId]) {\n const asset = assets[assetId]\n return <EmbeddedImage src={asset.url} alt=\"\" width={asset.width} height={asset.height} loading=\"lazy\" decoding=\"async\" />\n }\n\n const url = node.data?.target?.fields?.file?.url as string | undefined\n if (url) {\n return <EmbeddedImage src={url.startsWith('//') ? `https:${url}` : url} alt=\"\" loading=\"lazy\" decoding=\"async\" />\n }\n\n return null\n}\n\nconst renderHyperlink = (node: Block | Inline) => {\n const uri = node.data.uri as string\n const content = node.content as Text[]\n const contentValue = content[0]?.value\n\n // Only embed when the link text IS the URL (author-paste-embed pattern)\n if (contentValue === uri) {\n const youtubeId = getYouTubeVideoId(uri)\n if (youtubeId) return renderYouTubeEmbed(youtubeId)\n\n const twitterEmbed = renderTwitterEmbed(uri)\n if (twitterEmbed) return twitterEmbed\n\n const parsedUri = parseUrl(uri)\n if (parsedUri && INSTAGRAM_HOSTS.has(parsedUri.hostname)) {\n return renderInstagramEmbed(uri)\n }\n\n if (parsedUri && LINKEDIN_HOSTS.has(parsedUri.hostname)) {\n return <LinkedInEmbed src={uri} title=\"Embedded Linkedin Post\" loading=\"lazy\" />\n }\n }\n\n // Check if this is an internal blog link (e.g. https://decentraland.org/blog/...)\n const blogBaseUrl = getEnv('BLOG_BASE_URL') || ''\n const isInternalBlogLink = uri.startsWith(blogBaseUrl)\n const isAnchorLink = uri.startsWith('#')\n\n if (isInternalBlogLink) {\n // Extract the path starting from /blog/...\n const internalPath = new URL(uri, window.location.origin).pathname\n return <InternalLink to={internalPath}>{contentValue}</InternalLink>\n }\n\n if (isAnchorLink) {\n return (\n <Hyperlink href={uri} target=\"_self\">\n {contentValue}\n </Hyperlink>\n )\n }\n\n return (\n <Hyperlink href={uri} target=\"_blank\" rel=\"noopener noreferrer\">\n {contentValue}\n </Hyperlink>\n )\n}\n\nexport { renderEmbeddedAsset, renderHyperlink }\n","import { useMemo } from 'react'\nimport type { ReactNode } from 'react'\nimport { type Options, documentToReactComponents } from '@contentful/rich-text-react-renderer'\nimport { BLOCKS, type Document, INLINES } from '@contentful/rich-text-types'\nimport type { ContentfulAsset } from '../../../shared/blog/types/blog.domain'\nimport { renderEmbeddedAsset, renderHyperlink } from './RichText.renderers'\nimport {\n Blockquote,\n Heading1,\n Heading2,\n Heading3,\n Heading4,\n Heading5,\n Heading6,\n ListItem,\n OrderedList,\n Paragraph,\n UnorderedList\n} from './RichText.styled'\n\ninterface RichTextProps {\n document: Document\n assets?: Record<string, ContentfulAsset>\n}\n\nconst createRichTextOptions = (assets: Record<string, ContentfulAsset>): Options => ({\n renderNode: {\n [BLOCKS.PARAGRAPH]: (_node, children) => <Paragraph>{children}</Paragraph>,\n [BLOCKS.HEADING_1]: (_node, children) => <Heading1>{children}</Heading1>,\n [BLOCKS.HEADING_2]: (_node, children) => <Heading2>{children}</Heading2>,\n [BLOCKS.HEADING_3]: (_node, children) => <Heading3>{children}</Heading3>,\n [BLOCKS.HEADING_4]: (_node, children) => <Heading4>{children}</Heading4>,\n [BLOCKS.HEADING_5]: (_node, children) => <Heading5>{children}</Heading5>,\n [BLOCKS.HEADING_6]: (_node, children) => <Heading6>{children}</Heading6>,\n [BLOCKS.UL_LIST]: (_node, children) => <UnorderedList>{children}</UnorderedList>,\n [BLOCKS.OL_LIST]: (_node, children) => <OrderedList>{children}</OrderedList>,\n [BLOCKS.LIST_ITEM]: (_node, children) => <ListItem>{children}</ListItem>,\n [BLOCKS.QUOTE]: (_node, children) => <Blockquote>{children}</Blockquote>,\n [BLOCKS.EMBEDDED_ASSET]: node => renderEmbeddedAsset(node, assets),\n [INLINES.HYPERLINK]: node => renderHyperlink(node)\n }\n})\n\nconst RichText = ({ document, assets = {} }: RichTextProps): ReactNode => {\n if (!document || !document.content) {\n return null\n }\n\n const options = useMemo(() => createRichTextOptions(assets), [assets])\n\n return <>{documentToReactComponents(document, options)}</>\n}\n\nexport { RichText }\n","/* eslint-disable @typescript-eslint/naming-convention */\nimport { Link } from 'react-router-dom'\nimport { Box, Typography, dclColors, styled } from 'decentraland-ui2'\n\nconst CenteredBox = styled(Box)(({ theme }) => ({\n textAlign: 'center',\n paddingTop: theme.spacing(8),\n paddingBottom: theme.spacing(8)\n}))\n\nconst ContentContainer = styled(Box)(({ theme }) => ({\n maxWidth: theme.spacing(96),\n width: '100%',\n margin: '0 auto',\n padding: 0,\n [theme.breakpoints.down('xs')]: {\n padding: `${theme.spacing(4)} ${theme.spacing(2)}`\n }\n}))\n\nconst HeaderBox = styled(Box)(({ theme }) => ({\n marginBottom: theme.spacing(5)\n}))\n\nconst MetaText = styled(Typography)(({ theme }) => ({\n ...theme.typography.caption,\n color: theme.palette.text.primary,\n letterSpacing: theme.typography.caption.letterSpacing,\n textTransform: 'uppercase',\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(1)\n}))\n\nconst MetaSeparator = styled('span')(({ theme }) => ({\n color: theme.palette.text.secondary\n}))\n\nconst CategoryMetaLink = styled(Link)(({ theme }) => ({\n color: dclColors.neutral.gray3,\n textDecoration: 'none',\n WebkitTapHighlightColor: 'transparent',\n '&:hover': {\n textDecoration: 'underline'\n },\n '&:focus-visible': {\n outline: `2px solid ${theme.palette.primary.main}`,\n outlineOffset: 2\n }\n}))\n\nconst TitleBox = styled(Box)(({ theme }) => ({\n marginTop: theme.spacing(1.5)\n}))\n\nconst TitleText = styled(Typography)(({ theme }) => ({\n color: theme.palette.text.primary\n}))\n\nconst SubtitleText = styled(Typography)(({ theme }) => ({\n color: theme.palette.text.primary,\n marginTop: theme.spacing(1)\n}))\n\nconst PostImage = styled('img')(({ theme }) => ({\n width: '100%',\n height: 'auto',\n borderRadius: theme.spacing(2),\n marginBottom: theme.spacing(5),\n objectFit: 'cover',\n backgroundColor: theme.palette.background.paper\n}))\n\nconst AuthorBox = styled(Box)(() => ({}))\n\nconst AuthorRow = styled(Box)(({ theme }) => ({\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n marginBottom: theme.spacing(5)\n}))\n\nconst AuthorLink = styled(Link)(({ theme }) => ({\n display: 'inline-flex',\n alignItems: 'center',\n gap: theme.spacing(2),\n textDecoration: 'none',\n color: theme.palette.text.primary,\n WebkitTapHighlightColor: 'transparent',\n '&:focus-visible': {\n outline: `2px solid ${theme.palette.primary.main}`,\n outlineOffset: 2\n }\n}))\n\nconst AuthorAvatar = styled('img')(({ theme }) => ({\n width: theme.spacing(4),\n height: theme.spacing(4),\n borderRadius: '50%',\n objectFit: 'cover',\n backgroundColor: theme.palette.background.default\n}))\n\nconst AuthorName = styled(Typography)(({ theme }) => ({\n ...theme.typography.body1,\n color: theme.palette.text.primary\n}))\n\nconst BodyContainer = styled(Box)(() => ({}))\n\nconst ShareContainer = styled(Box)(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(1.5)\n}))\n\nconst ShareLabel = styled(Typography)(({ theme }) => ({\n ...theme.typography.caption,\n color: theme.palette.text.secondary,\n textTransform: 'uppercase'\n}))\n\nconst ShareLink = styled('a')(({ theme }) => ({\n display: 'inline-flex',\n alignItems: 'center',\n color: theme.palette.text.secondary,\n textDecoration: 'none',\n '&:hover': {\n color: theme.palette.text.primary\n },\n '&:focus-visible': {\n outline: `2px solid ${theme.palette.primary.main}`,\n outlineOffset: 2\n }\n}))\n\nexport {\n AuthorAvatar,\n AuthorBox,\n AuthorLink,\n AuthorName,\n AuthorRow,\n BodyContainer,\n CategoryMetaLink,\n CenteredBox,\n ContentContainer,\n HeaderBox,\n MetaSeparator,\n MetaText,\n PostImage,\n ShareContainer,\n ShareLabel,\n ShareLink,\n SubtitleText,\n TitleBox,\n TitleText\n}\n"],"file":"assets/PostPage.styled-Dd-3Ce5F.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as l,a as x,z as j,x as v,j as r,v as o}from"./index-
|
|
1
|
+
import{s as l,a as x,z as j,x as v,j as r,v as o}from"./index-_DB-noma.js";import{b as w,r as p}from"./vendor-router-D_36sTKu.js";import"./vendor-ua-D7qqAxdq.js";import{a as B,f as y,B as n}from"./BlogLayout-zeqeF6P_.js";import{C as c,a as T,P as b,H as f,M as C,b as P,T as A,c as N,S as _,A as k,d as E,e as R,B as U,R as D}from"./PostPage.styled-Dd-3Ce5F.js";import{C as I}from"./CircularProgress-COCfVUkZ.js";import"./vendor-crypto-uuuQA3i5.js";import"./vendor-schemas-DJzTSxpO.js";import"./vendor-sentry-BSvWNK4f.js";import"./vendor-intl-D2lXWsDp.js";import"./store-ChFhVM4L.js";import"./events.client-CWWGjxi9.js";const L=l(x)(({theme:s})=>({display:"inline-flex",alignItems:"center",gap:s.spacing(2)})),M=l("span")(()=>({color:j.gray3})),S=l(x)(({theme:s})=>({backgroundColor:s.palette.warning.main,color:s.palette.warning.contrastText,padding:s.spacing(2),borderRadius:s.spacing(1),maxWidth:s.spacing(96),margin:`0 auto ${s.spacing(4)}`,[s.breakpoints.down("xs")]:{margin:`0 ${s.spacing(2)} ${s.spacing(4)}`}})),O="https://preview.contentful.com",$="ea2ybdmmn1kv",Z=()=>{const{t:s}=v(),[a]=w(),i=p.useMemo(()=>({id:a.get("contentful_id")??"",env:a.get("contentful_env")??"",token:a.get("token")??"",previewBaseUrl:O,spaceId:$}),[a]),d=i.id&&i.env&&i.token,{data:e,isLoading:g,error:h}=B(i,{skip:!d}),u=p.useMemo(()=>y(e?.publishedDate),[e?.publishedDate]),t=e?.author,m=!!t&&!!t.title;return d?g?r.jsx(n,{showBlogNavigation:!0,children:r.jsx(c,{children:r.jsx(I,{})})}):h||!e?r.jsx(n,{showBlogNavigation:!0,children:r.jsx(c,{children:r.jsx(o,{color:"error",children:s("error.load_preview")})})}):r.jsxs(n,{showBlogNavigation:!0,children:[r.jsxs(S,{children:[r.jsx(o,{variant:"h6",children:s("preview.mode")}),r.jsx(o,{variant:"body2",children:s("preview.description")})]}),r.jsxs(T,{children:[r.jsx(b,{src:e.image.url,alt:e.title}),r.jsxs(f,{children:[r.jsxs(C,{as:"span",children:[u,r.jsx(P,{children:"•"}),r.jsx(M,{children:e.category.title})]}),r.jsx(A,{children:r.jsx(N,{variant:"h4",children:e.title})}),r.jsx(_,{variant:"h6",children:e.description})]}),m&&r.jsx(k,{children:r.jsxs(L,{children:[t.image?.url&&r.jsx(E,{src:t.image.url,alt:t.title}),r.jsx(R,{variant:"body2",children:t.title})]})}),r.jsx(U,{children:r.jsx(D,{document:e.body,assets:e.bodyAssets})})]})]}):r.jsx(n,{showBlogNavigation:!0,children:r.jsx(c,{children:r.jsx(o,{color:"error",children:s("preview.missing_params")})})})};export{Z as PreviewPage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PreviewPage-
|
|
1
|
+
{"version":3,"file":"PreviewPage-Dcx8YtgK.js","sources":["../../src/pages/blog/PreviewPage.styled.ts","../../src/pages/blog/PreviewPage.tsx"],"sourcesContent":["import { Box, dclColors, styled } from 'decentraland-ui2'\n\nconst AuthorContainer = styled(Box)(({ theme }) => ({\n display: 'inline-flex',\n alignItems: 'center',\n gap: theme.spacing(2)\n}))\n\nconst CategoryText = styled('span')(() => ({\n color: dclColors.neutral.gray3\n}))\n\nconst PreviewBanner = styled(Box)(({ theme }) => ({\n backgroundColor: theme.palette.warning.main,\n color: theme.palette.warning.contrastText,\n padding: theme.spacing(2),\n borderRadius: theme.spacing(1),\n maxWidth: theme.spacing(96),\n margin: `0 auto ${theme.spacing(4)}`,\n [theme.breakpoints.down('xs')]: {\n margin: `0 ${theme.spacing(2)} ${theme.spacing(4)}`\n }\n}))\n\nexport { AuthorContainer, CategoryText, PreviewBanner }\n","import { useMemo } from 'react'\nimport { useSearchParams } from 'react-router-dom'\nimport { useTranslation } from '@dcl/hooks'\nimport { CircularProgress, Typography } from 'decentraland-ui2'\nimport { BlogLayout } from '../../components/blog/BlogLayout'\nimport { RichText } from '../../components/blog/RichText'\nimport { useGetBlogPostPreviewQuery } from '../../features/blog/blog.client'\nimport { formatUtcDate } from '../../shared/blog/utils/date'\nimport {\n AuthorAvatar,\n AuthorBox,\n AuthorName,\n BodyContainer,\n CenteredBox,\n ContentContainer,\n HeaderBox,\n MetaSeparator,\n MetaText,\n PostImage,\n SubtitleText,\n TitleBox,\n TitleText\n} from './PostPage.styled'\nimport { AuthorContainer, CategoryText, PreviewBanner } from './PreviewPage.styled'\n\nconst CONTENTFUL_PREVIEW_URL = 'https://preview.contentful.com'\nconst CONTENTFUL_SPACE_ID = 'ea2ybdmmn1kv'\n\nexport const PreviewPage = () => {\n const { t } = useTranslation()\n const [searchParams] = useSearchParams()\n\n const previewOptions = useMemo(\n () => ({\n id: searchParams.get('contentful_id') ?? '',\n env: searchParams.get('contentful_env') ?? '',\n token: searchParams.get('token') ?? '',\n previewBaseUrl: CONTENTFUL_PREVIEW_URL,\n spaceId: CONTENTFUL_SPACE_ID\n }),\n [searchParams]\n )\n\n const isValidParams = previewOptions.id && previewOptions.env && previewOptions.token\n\n const { data: post, isLoading, error } = useGetBlogPostPreviewQuery(previewOptions, { skip: !isValidParams })\n\n const publishedDateUtc = useMemo(() => formatUtcDate(post?.publishedDate), [post?.publishedDate])\n const author = post?.author\n const showAuthor = !!author && !!author.title\n\n if (!isValidParams) {\n return (\n <BlogLayout showBlogNavigation={true}>\n <CenteredBox>\n <Typography color=\"error\">{t('preview.missing_params')}</Typography>\n </CenteredBox>\n </BlogLayout>\n )\n }\n\n if (isLoading) {\n return (\n <BlogLayout showBlogNavigation={true}>\n <CenteredBox>\n <CircularProgress />\n </CenteredBox>\n </BlogLayout>\n )\n }\n\n if (error || !post) {\n return (\n <BlogLayout showBlogNavigation={true}>\n <CenteredBox>\n <Typography color=\"error\">{t('error.load_preview')}</Typography>\n </CenteredBox>\n </BlogLayout>\n )\n }\n\n return (\n <BlogLayout showBlogNavigation={true}>\n <PreviewBanner>\n <Typography variant=\"h6\">{t('preview.mode')}</Typography>\n <Typography variant=\"body2\">{t('preview.description')}</Typography>\n </PreviewBanner>\n\n <ContentContainer>\n <PostImage src={post.image.url} alt={post.title} />\n\n <HeaderBox>\n <MetaText as=\"span\">\n {publishedDateUtc}\n <MetaSeparator>•</MetaSeparator>\n <CategoryText>{post.category.title}</CategoryText>\n </MetaText>\n <TitleBox>\n <TitleText variant=\"h4\">{post.title}</TitleText>\n </TitleBox>\n <SubtitleText variant=\"h6\">{post.description}</SubtitleText>\n </HeaderBox>\n\n {showAuthor && (\n <AuthorBox>\n <AuthorContainer>\n {author.image?.url && <AuthorAvatar src={author.image.url} alt={author.title} />}\n <AuthorName variant=\"body2\">{author.title}</AuthorName>\n </AuthorContainer>\n </AuthorBox>\n )}\n\n <BodyContainer>\n <RichText document={post.body} assets={post.bodyAssets} />\n </BodyContainer>\n </ContentContainer>\n </BlogLayout>\n )\n}\n"],"names":["AuthorContainer","styled","Box","theme","CategoryText","dclColors.neutral","PreviewBanner","CONTENTFUL_PREVIEW_URL","CONTENTFUL_SPACE_ID","PreviewPage","t","useTranslation","searchParams","useSearchParams","previewOptions","useMemo","isValidParams","post","isLoading","error","useGetBlogPostPreviewQuery","publishedDateUtc","formatUtcDate","author","showAuthor","jsx","BlogLayout","CenteredBox","CircularProgress","Typography","jsxs","ContentContainer","PostImage","HeaderBox","MetaText","MetaSeparator","TitleBox","TitleText","SubtitleText","AuthorBox","AuthorAvatar","AuthorName","BodyContainer","RichText"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{x as _,g as A,j as t}from"./index-
|
|
1
|
+
import{x as _,g as A,j as t}from"./index-_DB-noma.js";import{H as T}from"./BlogLayout-zeqeF6P_.js";import"./vendor-router-D_36sTKu.js";import"./vendor-ua-D7qqAxdq.js";var n=(o=>(o.WEBSITE="website",o.ARTICLE="article",o.PROFILE="profile",o))(n||{});const f="https://cms-images.decentraland.org/ea2ybdmmn1kv/7tYISdowuJYIbSIDqij87H/f3524d454d8e29702792a6b674f5550d/GI_Landscape.Small.png",c="Decentraland",S="en_US",D=o=>{const{t:E}=_(),h={url:f,width:1200,height:630,alt:E("seo.default_image_alt"),type:"image/jpeg"},{title:p,description:i,image:s=h,type:a=n.WEBSITE,url:u,locale:w=S,author:l,publishedTime:g,modifiedTime:d,section:j,tags:L}=o,I=A("BLOG_BASE_URL")||"",m=p?`${p} | ${c}`:c,r=u||I,x=r&&!/^https?:\/\//.test(r)&&typeof window<"u"?new URL(r,window.location.origin).toString():r,e=typeof s=="string"?{url:s}:s;return t.jsxs(T,{children:[t.jsx("title",{children:m}),t.jsx("meta",{name:"description",content:i}),t.jsx("link",{rel:"canonical",href:x}),t.jsx("meta",{property:"og:site_name",content:c}),t.jsx("meta",{property:"og:title",content:m}),t.jsx("meta",{property:"og:description",content:i}),t.jsx("meta",{property:"og:type",content:a}),t.jsx("meta",{property:"og:url",content:x}),t.jsx("meta",{property:"og:locale",content:w}),t.jsx("meta",{property:"og:image",content:e.url}),e.width&&t.jsx("meta",{property:"og:image:width",content:String(e.width)}),e.height&&t.jsx("meta",{property:"og:image:height",content:String(e.height)}),e.alt&&t.jsx("meta",{property:"og:image:alt",content:e.alt}),e.type&&t.jsx("meta",{property:"og:image:type",content:e.type}),t.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),t.jsx("meta",{name:"twitter:title",content:m}),t.jsx("meta",{name:"twitter:description",content:i}),t.jsx("meta",{name:"twitter:image",content:e.url}),e.alt&&t.jsx("meta",{name:"twitter:image:alt",content:e.alt}),a===n.ARTICLE&&l&&t.jsx("meta",{property:"article:author",content:l}),a===n.ARTICLE&&g&&t.jsx("meta",{property:"article:published_time",content:g}),a===n.ARTICLE&&d&&t.jsx("meta",{property:"article:modified_time",content:d}),a===n.ARTICLE&&j&&t.jsx("meta",{property:"article:section",content:j}),a===n.ARTICLE&&L?.map(y=>t.jsx("meta",{property:"article:tag",content:y},y))]})};export{n as O,D as S};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SEO-
|
|
1
|
+
{"version":3,"file":"SEO-CwFoEftO.js","sources":["../../src/components/blog/SEO/SEO.types.ts","../../src/components/blog/SEO/SEO.tsx"],"sourcesContent":["enum OGType {\n WEBSITE = 'website',\n ARTICLE = 'article',\n PROFILE = 'profile'\n}\n\ninterface OGImage {\n url: string\n width?: number\n height?: number\n alt?: string\n type?: string\n}\n\ninterface SEOProps {\n title?: string\n description?: string\n image?: OGImage | string\n type?: OGType\n url?: string\n locale?: string\n author?: string\n publishedTime?: string\n modifiedTime?: string\n section?: string\n tags?: string[]\n}\n\nexport { OGType }\nexport type { OGImage, SEOProps }\n","import { Helmet } from 'react-helmet-async'\nimport { useTranslation } from '@dcl/hooks'\nimport { getEnv } from '../../../config/env'\nimport { OGType } from './SEO.types'\nimport type { OGImage, SEOProps } from './SEO.types'\n\nconst DEFAULT_IMAGE_URL =\n 'https://cms-images.decentraland.org/ea2ybdmmn1kv/7tYISdowuJYIbSIDqij87H/f3524d454d8e29702792a6b674f5550d/GI_Landscape.Small.png'\n\nconst SITE_NAME = 'Decentraland'\nconst DEFAULT_LOCALE = 'en_US'\n\nconst SEO = (props: SEOProps) => {\n const { t } = useTranslation()\n\n const DEFAULT_IMAGE: OGImage = {\n url: DEFAULT_IMAGE_URL,\n width: 1200,\n height: 630,\n alt: t('seo.default_image_alt'),\n type: 'image/jpeg'\n }\n\n const {\n title,\n description,\n image = DEFAULT_IMAGE,\n type = OGType.WEBSITE,\n url,\n locale = DEFAULT_LOCALE,\n author,\n publishedTime,\n modifiedTime,\n section,\n tags\n } = props\n\n const baseUrl = getEnv('BLOG_BASE_URL') || ''\n const fullTitle = title ? `${title} | ${SITE_NAME}` : SITE_NAME\n\n // Canonical must be absolute (HTML spec + Lighthouse SEO audit). If the\n // env's BLOG_BASE_URL is relative (e.g. \"/blog\" in dev to mirror prod's\n // path structure), resolve it against the current origin at render time.\n const rawUrl = url || baseUrl\n const canonicalUrl =\n rawUrl && !/^https?:\\/\\//.test(rawUrl) && typeof window !== 'undefined' ? new URL(rawUrl, window.location.origin).toString() : rawUrl\n\n const imageData: OGImage = typeof image === 'string' ? { url: image } : image\n\n return (\n <Helmet>\n <title>{fullTitle}</title>\n <meta name=\"description\" content={description} />\n <link rel=\"canonical\" href={canonicalUrl} />\n\n {/* Open Graph - Basic */}\n <meta property=\"og:site_name\" content={SITE_NAME} />\n <meta property=\"og:title\" content={fullTitle} />\n <meta property=\"og:description\" content={description} />\n <meta property=\"og:type\" content={type} />\n <meta property=\"og:url\" content={canonicalUrl} />\n <meta property=\"og:locale\" content={locale} />\n\n {/* Open Graph - Image structured properties */}\n <meta property=\"og:image\" content={imageData.url} />\n {imageData.width && <meta property=\"og:image:width\" content={String(imageData.width)} />}\n {imageData.height && <meta property=\"og:image:height\" content={String(imageData.height)} />}\n {imageData.alt && <meta property=\"og:image:alt\" content={imageData.alt} />}\n {imageData.type && <meta property=\"og:image:type\" content={imageData.type} />}\n\n {/* Twitter Card */}\n <meta name=\"twitter:card\" content=\"summary_large_image\" />\n <meta name=\"twitter:title\" content={fullTitle} />\n <meta name=\"twitter:description\" content={description} />\n <meta name=\"twitter:image\" content={imageData.url} />\n {imageData.alt && <meta name=\"twitter:image:alt\" content={imageData.alt} />}\n\n {/* Article specific meta tags */}\n {type === OGType.ARTICLE && author && <meta property=\"article:author\" content={author} />}\n {type === OGType.ARTICLE && publishedTime && <meta property=\"article:published_time\" content={publishedTime} />}\n {type === OGType.ARTICLE && modifiedTime && <meta property=\"article:modified_time\" content={modifiedTime} />}\n {type === OGType.ARTICLE && section && <meta property=\"article:section\" content={section} />}\n {type === OGType.ARTICLE && tags?.map(tag => <meta key={tag} property=\"article:tag\" content={tag} />)}\n </Helmet>\n )\n}\n\nexport { SEO }\nexport { OGType } from './SEO.types'\n"],"names":["OGType","DEFAULT_IMAGE_URL","SITE_NAME","DEFAULT_LOCALE","SEO","props","t","useTranslation","DEFAULT_IMAGE","title","description","image","type","url","locale","author","publishedTime","modifiedTime","section","tags","baseUrl","getEnv","fullTitle","rawUrl","canonicalUrl","imageData","Helmet","jsx","tag"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as e,a as r,v as p,j as s,x as P,g as W,B as H}from"./index-
|
|
1
|
+
import{s as e,a as r,v as p,j as s,x as P,g as W,B as H}from"./index-_DB-noma.js";import{L as A,b as D,r as c}from"./vendor-router-D_36sTKu.js";import"./vendor-ua-D7qqAxdq.js";import{c as S,d as I,B as M}from"./BlogLayout-zeqeF6P_.js";import{S as h}from"./Skeleton-yDn4B-G5.js";import{S as O}from"./SEO-CwFoEftO.js";import"./vendor-crypto-uuuQA3i5.js";import"./vendor-schemas-DJzTSxpO.js";import"./vendor-sentry-BSvWNK4f.js";import"./vendor-intl-D2lXWsDp.js";import"./store-ChFhVM4L.js";import"./events.client-CWWGjxi9.js";const k=e(r)(({theme:t})=>({margin:t.spacing(0,0,2),listStyleType:"none",flexGrow:1,borderRadius:t.spacing(1),backgroundColor:t.palette.background.paper,border:"transparent",position:"relative",display:"flex",alignItems:"flex-start",transition:"transform 250ms ease, box-shadow 250ms ease",boxShadow:t.shadows[1],height:"150px","& > a":{display:"flex",width:"100%",height:"100%",textDecoration:"none"},"&:hover":{transform:"translate(0, -4px)",boxShadow:t.shadows[2]},[t.breakpoints.down("sm")]:{height:"100px"}})),v=e(r)(()=>({display:"flex",width:"100%",height:"100%"})),q=e("img")(({theme:t})=>({flexShrink:0,width:"232px",height:"100%",objectFit:"cover",borderRadius:`${t.shape.borderRadius}px 0 0 ${t.shape.borderRadius}px`,[t.breakpoints.down("sm")]:{width:"33%"}})),B=e(r)(({theme:t})=>({padding:t.spacing(2.75,2.5,3,2.5),width:"100%",display:"flex",flexDirection:"column",justifyContent:"flex-start",overflow:"hidden","& em":{fontStyle:"normal",fontWeight:700,color:t.palette.primary.main},[t.breakpoints.down("sm")]:{padding:t.spacing(1.75)}})),_=e(p)(({theme:t})=>({margin:`0 0 ${t.spacing(.5)}`,fontSize:t.typography.pxToRem(20),lineHeight:"28px",fontWeight:500,color:t.palette.text.primary,overflow:"hidden",textOverflow:"ellipsis",display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",[t.breakpoints.down("sm")]:{fontSize:t.typography.pxToRem(15),lineHeight:"18px"}})),R=e(p)(({theme:t})=>({lineHeight:"24px",padding:0,margin:0,fontSize:t.typography.pxToRem(15),color:t.palette.text.secondary,textAlign:"left",overflow:"hidden",textOverflow:"ellipsis",display:"-webkit-box",WebkitLineClamp:3,WebkitBoxOrient:"vertical",[t.breakpoints.down("sm")]:{display:"none"}})),z=e(h)(({theme:t})=>({width:"232px",height:"100%",borderRadius:`${t.shape.borderRadius}px 0 0 ${t.shape.borderRadius}px`,flexShrink:0,[t.breakpoints.down("sm")]:{width:"33%"}})),G=e(h)(({theme:t})=>({width:"80%",height:t.spacing(3.5),marginBottom:t.spacing(1)})),U=e(h)(({theme:t})=>({width:"100%",height:t.spacing(3),[t.breakpoints.down("sm")]:{display:"none"}})),F=e(h)(({theme:t})=>({width:"60%",height:t.spacing(3),[t.breakpoints.down("sm")]:{display:"none"}})),f=t=>{const{result:i,loading:l}=t;return l?s.jsx(k,{children:s.jsxs(v,{children:[s.jsx(z,{variant:"rectangular"}),s.jsxs(B,{children:[s.jsx(G,{variant:"text"}),s.jsx(U,{variant:"text"}),s.jsx(F,{variant:"text"})]})]})}):i?s.jsx(k,{children:s.jsx(A,{to:i.url,children:s.jsxs(v,{children:[i.image&&s.jsx(q,{src:i.image,alt:"",loading:"lazy",decoding:"async"}),s.jsxs(B,{children:[typeof i.title=="string"?s.jsx(_,{dangerouslySetInnerHTML:{__html:S(i.title)}}):s.jsx(_,{children:i.title}),typeof i.description=="string"?s.jsx(R,{dangerouslySetInnerHTML:{__html:S(i.description)}}):s.jsx(R,{children:i.description})]})]})})}):null},N=e(p)(({theme:t})=>({margin:t.spacing(4.5,0,3),...t.typography.h4,fontWeight:400,padding:t.spacing(0,2),"& span":{fontWeight:700}})),Q=e(r)(({theme:t})=>({marginBottom:t.spacing(3)})),J=e(r)(({theme:t})=>({textAlign:"center",paddingTop:t.spacing(4),paddingBottom:t.spacing(4)})),m=e(r)(()=>({display:"flex",flexDirection:"column"})),K=e(r)(({theme:t})=>({display:"flex",justifyContent:"center",marginTop:t.spacing(4)})),V=10,dt=()=>{const{t}=P(),[i]=D(),[l,y]=c.useState(0),[g,x]=c.useState([]),o=c.useMemo(()=>i.get("q")||"",[i]),{data:a,isLoading:u,isFetching:w}=I({query:o,hitsPerPage:V,page:l},{skip:o.length<3});c.useEffect(()=>{y(0),x([])},[o]),c.useEffect(()=>{a?.results&&x(l===0?a.results:n=>[...n,...a.results])},[a,l]);const C=()=>{y(n=>n+1),setTimeout(()=>window.scrollBy({top:500,left:0,behavior:"smooth"}),0)},j=g.length>0,L=!u&&o.length>=3&&g.length===0&&a?.results.length===0,T=u&&g.length===0,$=a?.hasMore??!1,E=o?t("search.description_with_query",{query:o}):t("search.description"),b=W("BLOG_BASE_URL")||"";return s.jsxs(M,{showBlogNavigation:!0,children:[s.jsx(O,{title:o?t("search.title_with_query",{query:o}):t("search.title"),description:E,url:o?`${b}/search?q=${encodeURIComponent(o)}`:`${b}/search`}),o.length>=3&&s.jsx(Q,{children:s.jsxs(N,{children:[t("search.results_for")," ",s.jsxs("span",{children:["“",o,"”"]})]})}),T&&s.jsx(m,{children:Array.from({length:5},(n,d)=>s.jsx(f,{loading:!0},d))}),j&&s.jsx(m,{children:g.map((n,d)=>s.jsx(f,{result:n},`${n.url}-${d}`))}),w&&!u&&s.jsx(m,{children:Array.from({length:3},(n,d)=>s.jsx(f,{loading:!0},`loading-more-${d}`))}),$&&j&&!w&&s.jsx(K,{children:s.jsx(H,{variant:"contained",onClick:C,children:t("blog.load_more")})}),L&&s.jsxs(J,{children:[s.jsx(p,{variant:"h5",gutterBottom:!0,children:t("blog.nothing_to_show")}),s.jsxs(p,{color:"textSecondary",children:[t("search.no_results_for")," “",o,"”"]})]})]})};export{dt as SearchPage};
|