@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
|
-
{"version":3,"file":"index-B-PLjKpI.js","sources":["../../src/components/Create/Learn/PlayIcon.tsx","../../src/components/Create/Learn/Learn.styled.ts","../../src/components/Create/Learn/Learn.tsx"],"sourcesContent":["import { type SVGAttributes, memo, useId } from 'react'\n\ntype PlayIconProps = SVGAttributes<SVGElement>\n\nconst PlayIcon = memo((props: PlayIconProps) => {\n const filterId = useId()\n return (\n <svg {...props} className=\"play-icon\" width=\"120\" height=\"120\" viewBox=\"0 0 120 120\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <g filter={`url(#${filterId})`}>\n <path\n d=\"M60 16C37.9167 16 20 33.9167 20 56C20 78.0833 37.9167 96 60 96C82.0833 96 100 78.0833 100 56C100 33.9167 82.0833 16 60 16ZM76.9983 59.4183L53.665 73.0833C53.0009 73.334 52.3336 73.5 51.6663 73.5C50.9991 73.5 50.3317 73.4154 49.749 72.9987C48.5837 72.3314 47.8317 70.9154 47.8317 69.5807V42.3349C47.8317 40.8342 48.5804 39.5842 49.749 38.9169C50.9143 38.2496 52.4997 38.2496 53.665 38.9169L76.9983 52.5819C78.1637 53.3306 78.9157 54.4992 78.9157 55.9999C78.9157 57.5005 78.167 58.751 76.9983 59.4183Z\"\n fill=\"white\"\n />\n </g>\n <defs>\n <filter id={filterId} x=\"0\" y=\"0\" width=\"120\" height=\"120\" filterUnits=\"userSpaceOnUse\" colorInterpolationFilters=\"sRGB\">\n <feFlood floodOpacity=\"0\" result=\"BackgroundImageFix\" />\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\n <feOffset dy=\"4\" />\n <feGaussianBlur stdDeviation=\"10\" />\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\n <feColorMatrix type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.55 0\" />\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow\" />\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow\" result=\"shape\" />\n </filter>\n </defs>\n </svg>\n )\n})\n\nexport { PlayIcon }\n","import { Box, Typography, styled } from 'decentraland-ui2'\n\nconst LearnSection = styled('section')({\n position: 'relative',\n overflow: 'hidden',\n width: '100%',\n backgroundRepeat: 'no-repeat',\n backgroundPosition: 'center',\n paddingLeft: 0,\n paddingRight: 0\n})\n\nconst LearnTitle = styled(Typography)(({ theme }) => ({\n textAlign: 'center',\n fontSize: 48,\n fontWeight: 600,\n color: '#fcfcfc',\n marginTop: 97,\n marginBottom: 62,\n maxWidth: '80vw',\n marginLeft: 'auto',\n marginRight: 'auto',\n ['& span']: {\n background: 'linear-gradient(244deg, #ff2d55 -11.67%, #ffbc5b 88.23%)',\n backgroundClip: 'text',\n ['WebkitBackgroundClip' as string]: 'text',\n ['WebkitTextFillColor' as string]: 'transparent'\n },\n [theme.breakpoints.down('sm')]: {\n fontSize: 36,\n lineHeight: '40px'\n }\n}))\n\nconst LearnCardsContainer = styled(Box)(({ theme }) => ({\n display: 'flex',\n overflowX: 'auto',\n gap: 20,\n paddingLeft: 100,\n paddingRight: 100,\n scrollbarWidth: 'none',\n ['&::-webkit-scrollbar']: {\n display: 'none'\n },\n [theme.breakpoints.down('sm')]: {\n paddingLeft: 16,\n paddingRight: 16\n }\n}))\n\nconst LearnCard = styled(Box)(({ theme }) => ({\n width: 529,\n minWidth: 529,\n height: 398,\n flexShrink: 0,\n borderRadius: 20,\n overflow: 'hidden',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n boxSizing: 'border-box',\n position: 'relative',\n cursor: 'pointer',\n transition: 'transform 0.35s ease-in-out',\n [theme.breakpoints.down('sm')]: {\n width: 360,\n minWidth: 360,\n maxWidth: 360,\n height: 310\n }\n}))\n\nconst LearnCardVideoImage = styled(Box)(({ theme }) => ({\n width: '100%',\n height: 236,\n position: 'relative',\n cursor: 'pointer',\n flex: 1,\n ['& img']: {\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n borderRadius: '10px 10px 0 0'\n },\n ['& .play-icon']: {\n width: 80,\n height: 80,\n position: 'absolute',\n top: '50%',\n left: '50%',\n transition: 'all 0.35s ease-in-out',\n transform: 'translate(-50%, -50%)',\n opacity: 0.7\n },\n ['&:hover .play-icon']: {\n opacity: 1,\n filter: 'brightness(1.3)'\n },\n [theme.breakpoints.down('sm')]: {\n height: 160\n }\n}))\n\nconst LearnCardInfo = styled(Box)({\n borderRadius: '0 0 20px 20px',\n background: '#242129',\n width: '100%',\n display: 'flex',\n flexDirection: 'column'\n})\n\nconst LearnCardUserRow = styled(Box)({\n display: 'flex',\n flexDirection: 'row',\n padding: '18px 24px',\n width: '100%',\n alignItems: 'center',\n justifyContent: 'space-between'\n})\n\nconst LearnCardUser = styled(Box)({\n cursor: 'pointer',\n display: 'flex',\n alignItems: 'center'\n})\n\nconst LearnCardUserImage = styled(Box)({\n width: 40,\n height: 40,\n borderRadius: '50%',\n overflow: 'hidden',\n ['& img']: {\n width: '100%',\n height: '100%',\n objectFit: 'cover'\n }\n})\n\nconst LearnCardUserName = styled(Typography)(({ theme }) => ({\n color: '#a09ba8',\n fontSize: 18,\n fontWeight: 600,\n marginLeft: 8,\n [theme.breakpoints.down('sm')]: {\n fontSize: 16\n }\n}))\n\nconst LearnCardDate = styled(Typography)(({ theme }) => ({\n color: '#a09ba8',\n fontSize: 18,\n fontWeight: 600,\n textAlign: 'right',\n textTransform: 'uppercase',\n [theme.breakpoints.down('sm')]: {\n fontSize: 16\n }\n}))\n\nconst LearnCardTitle = styled(Typography)(({ theme }) => ({\n fontSize: 20,\n lineHeight: '28px',\n fontWeight: 700,\n padding: '0 24px 40px',\n [theme.breakpoints.down('sm')]: {\n textAlign: 'left',\n fontSize: 18\n }\n}))\n\nconst LearnExtraContainer = styled(Box)(({ theme }) => ({\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n margin: '72px 20px',\n [theme.breakpoints.down('sm')]: {\n flexDirection: 'column',\n margin: 0,\n paddingLeft: 16,\n paddingRight: 16,\n marginTop: 28,\n marginBottom: 32,\n width: 'calc(100% - 16px)'\n }\n}))\n\nconst LearnExtraBlock = styled(Box)(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n color: '#fff',\n textAlign: 'center',\n fontSize: 20,\n fontWeight: 600,\n lineHeight: '48px',\n ['& a']: {\n marginLeft: 16\n },\n [theme.breakpoints.down('lg')]: {\n flexDirection: 'column'\n },\n [theme.breakpoints.down('sm')]: {\n fontSize: 18,\n width: '100%',\n ['& a']: {\n marginLeft: 0,\n width: '100%',\n marginTop: 16\n }\n }\n}))\n\nexport {\n LearnCard,\n LearnCardDate,\n LearnCardInfo,\n LearnCardTitle,\n LearnCardUser,\n LearnCardUserImage,\n LearnCardUserName,\n LearnCardUserRow,\n LearnCardVideoImage,\n LearnCardsContainer,\n LearnExtraBlock,\n LearnExtraContainer,\n LearnSection,\n LearnTitle\n}\n","import { memo, useCallback } from 'react'\nimport { Button } from 'decentraland-ui2'\nimport { useFormatMessage } from '../../../hooks/adapters/useFormatMessage'\nimport { AnimatedSection } from '../AnimatedSection'\nimport { learnCards } from '../data'\nimport { PlayIcon } from './PlayIcon'\nimport {\n LearnCard,\n LearnCardDate,\n LearnCardInfo,\n LearnCardTitle,\n LearnCardUser,\n LearnCardUserImage,\n LearnCardUserName,\n LearnCardUserRow,\n LearnCardVideoImage,\n LearnCardsContainer,\n LearnExtraBlock,\n LearnExtraContainer,\n LearnSection,\n LearnTitle\n} from './Learn.styled'\n\nconst CreatorsLearn = memo(() => {\n const l = useFormatMessage()\n const handleCardClick = useCallback((url: string) => {\n window.open(url, '_blank')\n }, [])\n\n return (\n <AnimatedSection>\n <LearnSection>\n <LearnTitle>\n <span>{l('component.creators_landing.learn.title_highlight')}</span> {l('component.creators_landing.learn.title')}\n </LearnTitle>\n <LearnCardsContainer>\n {learnCards.map(card => (\n <LearnCard key={card.id} onClick={() => handleCardClick(card.url)}>\n <LearnCardVideoImage>\n <img src={card.image} alt={card.title} />\n <PlayIcon />\n </LearnCardVideoImage>\n <LearnCardInfo>\n <LearnCardUserRow>\n <LearnCardUser>\n <LearnCardUserImage>\n <img src={card.userImage} alt={card.name} />\n </LearnCardUserImage>\n <LearnCardUserName>{card.name}</LearnCardUserName>\n </LearnCardUser>\n <LearnCardDate>{card.date}</LearnCardDate>\n </LearnCardUserRow>\n <LearnCardTitle>{card.title}</LearnCardTitle>\n </LearnCardInfo>\n </LearnCard>\n ))}\n </LearnCardsContainer>\n <LearnExtraContainer>\n <LearnExtraBlock sx={{ marginRight: { xs: 0, md: '80px' } }}>\n {l('component.creators_landing.learn.watch_more')}\n <Button\n variant=\"contained\"\n component=\"a\"\n href={l('component.creators_landing.learn.watch_more_target')}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {l('component.creators_landing.learn.watch_more_button')}\n </Button>\n </LearnExtraBlock>\n <LearnExtraBlock sx={{ marginTop: { xs: '33px', md: 0 } }}>\n {l('component.creators_landing.learn.your_tutorial')}\n <Button\n variant=\"outlined\"\n component=\"a\"\n href={l('component.creators_landing.learn.your_tutorial_target')}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n sx={{ backgroundColor: '#fff', color: '#43404a', ['&:hover']: { backgroundColor: '#e0e0e0' } }}\n >\n {l('component.creators_landing.learn.your_tutorial_button')}\n </Button>\n </LearnExtraBlock>\n </LearnExtraContainer>\n </LearnSection>\n </AnimatedSection>\n )\n})\n\nexport { CreatorsLearn }\n"],"names":["PlayIcon","memo","props","filterId","useId","jsxs","jsx","LearnSection","styled","LearnTitle","Typography","theme","LearnCardsContainer","Box","LearnCard","LearnCardVideoImage","LearnCardInfo","LearnCardUserRow","LearnCardUser","LearnCardUserImage","LearnCardUserName","LearnCardDate","LearnCardTitle","LearnExtraContainer","LearnExtraBlock","CreatorsLearn","l","useFormatMessage","handleCardClick","useCallback","url","AnimatedSection","learnCards","card","Button"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index-CM1y4MwR.js","sources":["../../src/components/Create/Learn/PlayIcon.tsx","../../src/components/Create/Learn/Learn.styled.ts","../../src/components/Create/Learn/Learn.tsx"],"sourcesContent":["import { type SVGAttributes, memo, useId } from 'react'\n\ntype PlayIconProps = SVGAttributes<SVGElement>\n\nconst PlayIcon = memo((props: PlayIconProps) => {\n const filterId = useId()\n return (\n <svg {...props} className=\"play-icon\" width=\"120\" height=\"120\" viewBox=\"0 0 120 120\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <g filter={`url(#${filterId})`}>\n <path\n d=\"M60 16C37.9167 16 20 33.9167 20 56C20 78.0833 37.9167 96 60 96C82.0833 96 100 78.0833 100 56C100 33.9167 82.0833 16 60 16ZM76.9983 59.4183L53.665 73.0833C53.0009 73.334 52.3336 73.5 51.6663 73.5C50.9991 73.5 50.3317 73.4154 49.749 72.9987C48.5837 72.3314 47.8317 70.9154 47.8317 69.5807V42.3349C47.8317 40.8342 48.5804 39.5842 49.749 38.9169C50.9143 38.2496 52.4997 38.2496 53.665 38.9169L76.9983 52.5819C78.1637 53.3306 78.9157 54.4992 78.9157 55.9999C78.9157 57.5005 78.167 58.751 76.9983 59.4183Z\"\n fill=\"white\"\n />\n </g>\n <defs>\n <filter id={filterId} x=\"0\" y=\"0\" width=\"120\" height=\"120\" filterUnits=\"userSpaceOnUse\" colorInterpolationFilters=\"sRGB\">\n <feFlood floodOpacity=\"0\" result=\"BackgroundImageFix\" />\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\n <feOffset dy=\"4\" />\n <feGaussianBlur stdDeviation=\"10\" />\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\n <feColorMatrix type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.55 0\" />\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow\" />\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow\" result=\"shape\" />\n </filter>\n </defs>\n </svg>\n )\n})\n\nexport { PlayIcon }\n","import { Box, Typography, styled } from 'decentraland-ui2'\n\nconst LearnSection = styled('section')({\n position: 'relative',\n overflow: 'hidden',\n width: '100%',\n backgroundRepeat: 'no-repeat',\n backgroundPosition: 'center',\n paddingLeft: 0,\n paddingRight: 0\n})\n\nconst LearnTitle = styled(Typography)(({ theme }) => ({\n textAlign: 'center',\n fontSize: 48,\n fontWeight: 600,\n color: '#fcfcfc',\n marginTop: 97,\n marginBottom: 62,\n maxWidth: '80vw',\n marginLeft: 'auto',\n marginRight: 'auto',\n ['& span']: {\n background: 'linear-gradient(244deg, #ff2d55 -11.67%, #ffbc5b 88.23%)',\n backgroundClip: 'text',\n ['WebkitBackgroundClip' as string]: 'text',\n ['WebkitTextFillColor' as string]: 'transparent'\n },\n [theme.breakpoints.down('sm')]: {\n fontSize: 36,\n lineHeight: '40px'\n }\n}))\n\nconst LearnCardsContainer = styled(Box)(({ theme }) => ({\n display: 'flex',\n overflowX: 'auto',\n gap: 20,\n paddingLeft: 100,\n paddingRight: 100,\n scrollbarWidth: 'none',\n ['&::-webkit-scrollbar']: {\n display: 'none'\n },\n [theme.breakpoints.down('sm')]: {\n paddingLeft: 16,\n paddingRight: 16\n }\n}))\n\nconst LearnCard = styled(Box)(({ theme }) => ({\n width: 529,\n minWidth: 529,\n height: 398,\n flexShrink: 0,\n borderRadius: 20,\n overflow: 'hidden',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n boxSizing: 'border-box',\n position: 'relative',\n cursor: 'pointer',\n transition: 'transform 0.35s ease-in-out',\n [theme.breakpoints.down('sm')]: {\n width: 360,\n minWidth: 360,\n maxWidth: 360,\n height: 310\n }\n}))\n\nconst LearnCardVideoImage = styled(Box)(({ theme }) => ({\n width: '100%',\n height: 236,\n position: 'relative',\n cursor: 'pointer',\n flex: 1,\n ['& img']: {\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n borderRadius: '10px 10px 0 0'\n },\n ['& .play-icon']: {\n width: 80,\n height: 80,\n position: 'absolute',\n top: '50%',\n left: '50%',\n transition: 'all 0.35s ease-in-out',\n transform: 'translate(-50%, -50%)',\n opacity: 0.7\n },\n ['&:hover .play-icon']: {\n opacity: 1,\n filter: 'brightness(1.3)'\n },\n [theme.breakpoints.down('sm')]: {\n height: 160\n }\n}))\n\nconst LearnCardInfo = styled(Box)({\n borderRadius: '0 0 20px 20px',\n background: '#242129',\n width: '100%',\n display: 'flex',\n flexDirection: 'column'\n})\n\nconst LearnCardUserRow = styled(Box)({\n display: 'flex',\n flexDirection: 'row',\n padding: '18px 24px',\n width: '100%',\n alignItems: 'center',\n justifyContent: 'space-between'\n})\n\nconst LearnCardUser = styled(Box)({\n cursor: 'pointer',\n display: 'flex',\n alignItems: 'center'\n})\n\nconst LearnCardUserImage = styled(Box)({\n width: 40,\n height: 40,\n borderRadius: '50%',\n overflow: 'hidden',\n ['& img']: {\n width: '100%',\n height: '100%',\n objectFit: 'cover'\n }\n})\n\nconst LearnCardUserName = styled(Typography)(({ theme }) => ({\n color: '#a09ba8',\n fontSize: 18,\n fontWeight: 600,\n marginLeft: 8,\n [theme.breakpoints.down('sm')]: {\n fontSize: 16\n }\n}))\n\nconst LearnCardDate = styled(Typography)(({ theme }) => ({\n color: '#a09ba8',\n fontSize: 18,\n fontWeight: 600,\n textAlign: 'right',\n textTransform: 'uppercase',\n [theme.breakpoints.down('sm')]: {\n fontSize: 16\n }\n}))\n\nconst LearnCardTitle = styled(Typography)(({ theme }) => ({\n fontSize: 20,\n lineHeight: '28px',\n fontWeight: 700,\n padding: '0 24px 40px',\n [theme.breakpoints.down('sm')]: {\n textAlign: 'left',\n fontSize: 18\n }\n}))\n\nconst LearnExtraContainer = styled(Box)(({ theme }) => ({\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n margin: '72px 20px',\n [theme.breakpoints.down('sm')]: {\n flexDirection: 'column',\n margin: 0,\n paddingLeft: 16,\n paddingRight: 16,\n marginTop: 28,\n marginBottom: 32,\n width: 'calc(100% - 16px)'\n }\n}))\n\nconst LearnExtraBlock = styled(Box)(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n color: '#fff',\n textAlign: 'center',\n fontSize: 20,\n fontWeight: 600,\n lineHeight: '48px',\n ['& a']: {\n marginLeft: 16\n },\n [theme.breakpoints.down('lg')]: {\n flexDirection: 'column'\n },\n [theme.breakpoints.down('sm')]: {\n fontSize: 18,\n width: '100%',\n ['& a']: {\n marginLeft: 0,\n width: '100%',\n marginTop: 16\n }\n }\n}))\n\nexport {\n LearnCard,\n LearnCardDate,\n LearnCardInfo,\n LearnCardTitle,\n LearnCardUser,\n LearnCardUserImage,\n LearnCardUserName,\n LearnCardUserRow,\n LearnCardVideoImage,\n LearnCardsContainer,\n LearnExtraBlock,\n LearnExtraContainer,\n LearnSection,\n LearnTitle\n}\n","import { memo, useCallback } from 'react'\nimport { Button } from 'decentraland-ui2'\nimport { useFormatMessage } from '../../../hooks/adapters/useFormatMessage'\nimport { AnimatedSection } from '../AnimatedSection'\nimport { learnCards } from '../data'\nimport { PlayIcon } from './PlayIcon'\nimport {\n LearnCard,\n LearnCardDate,\n LearnCardInfo,\n LearnCardTitle,\n LearnCardUser,\n LearnCardUserImage,\n LearnCardUserName,\n LearnCardUserRow,\n LearnCardVideoImage,\n LearnCardsContainer,\n LearnExtraBlock,\n LearnExtraContainer,\n LearnSection,\n LearnTitle\n} from './Learn.styled'\n\nconst CreatorsLearn = memo(() => {\n const l = useFormatMessage()\n const handleCardClick = useCallback((url: string) => {\n window.open(url, '_blank')\n }, [])\n\n return (\n <AnimatedSection>\n <LearnSection>\n <LearnTitle>\n <span>{l('component.creators_landing.learn.title_highlight')}</span> {l('component.creators_landing.learn.title')}\n </LearnTitle>\n <LearnCardsContainer>\n {learnCards.map(card => (\n <LearnCard key={card.id} onClick={() => handleCardClick(card.url)}>\n <LearnCardVideoImage>\n <img src={card.image} alt={card.title} />\n <PlayIcon />\n </LearnCardVideoImage>\n <LearnCardInfo>\n <LearnCardUserRow>\n <LearnCardUser>\n <LearnCardUserImage>\n <img src={card.userImage} alt={card.name} />\n </LearnCardUserImage>\n <LearnCardUserName>{card.name}</LearnCardUserName>\n </LearnCardUser>\n <LearnCardDate>{card.date}</LearnCardDate>\n </LearnCardUserRow>\n <LearnCardTitle>{card.title}</LearnCardTitle>\n </LearnCardInfo>\n </LearnCard>\n ))}\n </LearnCardsContainer>\n <LearnExtraContainer>\n <LearnExtraBlock sx={{ marginRight: { xs: 0, md: '80px' } }}>\n {l('component.creators_landing.learn.watch_more')}\n <Button\n variant=\"contained\"\n component=\"a\"\n href={l('component.creators_landing.learn.watch_more_target')}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {l('component.creators_landing.learn.watch_more_button')}\n </Button>\n </LearnExtraBlock>\n <LearnExtraBlock sx={{ marginTop: { xs: '33px', md: 0 } }}>\n {l('component.creators_landing.learn.your_tutorial')}\n <Button\n variant=\"outlined\"\n component=\"a\"\n href={l('component.creators_landing.learn.your_tutorial_target')}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n sx={{ backgroundColor: '#fff', color: '#43404a', ['&:hover']: { backgroundColor: '#e0e0e0' } }}\n >\n {l('component.creators_landing.learn.your_tutorial_button')}\n </Button>\n </LearnExtraBlock>\n </LearnExtraContainer>\n </LearnSection>\n </AnimatedSection>\n )\n})\n\nexport { CreatorsLearn }\n"],"names":["PlayIcon","memo","props","filterId","useId","jsxs","jsx","LearnSection","styled","LearnTitle","Typography","theme","LearnCardsContainer","Box","LearnCard","LearnCardVideoImage","LearnCardInfo","LearnCardUserRow","LearnCardUser","LearnCardUserImage","LearnCardUserName","LearnCardDate","LearnCardTitle","LearnExtraContainer","LearnExtraBlock","CreatorsLearn","l","useFormatMessage","handleCardClick","useCallback","url","AnimatedSection","learnCards","card","Button"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as i,a as s,v as r,z as n,w as d,X as c,M as g,j as t,Y as p,U as m}from"./index-
|
|
1
|
+
import{s as i,a as s,v as r,z as n,w as d,X as c,M as g,j as t,Y as p,U as m}from"./index-_DB-noma.js";import{r as k}from"./vendor-router-D_36sTKu.js";import{C as y}from"./Carousel-8PM_J7Qk.js";import"./vendor-crypto-uuuQA3i5.js";import"./vendor-schemas-DJzTSxpO.js";import"./vendor-sentry-BSvWNK4f.js";import"./vendor-ua-D7qqAxdq.js";import"./vendor-intl-D2lXWsDp.js";const u=i(s)({width:"100%",background:"radial-gradient(ellipse at 110% 50%, rgba(148,37,205,1) 0%, rgba(104,20,155,1) 100%)"}),x=i(s)(({theme:e})=>({position:"relative",display:"flex",flexDirection:"column",alignItems:"center",gap:e.spacing(4),padding:`${e.spacing(10)} 0`,width:"100%",maxWidth:1920,margin:"0 auto",overflow:"hidden",[e.breakpoints.down("sm")]:{padding:`${e.spacing(6)} 0`}})),h=i(r)(({theme:e})=>({color:n.white,fontWeight:600,fontSize:48,textAlign:"center",[e.breakpoints.down("sm")]:{fontSize:32}})),b=i("img")({width:"100%",height:"100%",objectFit:"cover",display:"block"}),f=i("img")({display:"block",width:"100%",maxWidth:358,margin:"0 auto",borderRadius:16,objectFit:"cover"}),w=p.cards,j=k.memo(()=>{const e=d(),o=c("(max-width: 599px)"),l=g();return t.jsx(u,{children:t.jsxs(x,{children:[t.jsx(h,{variant:"h3",children:e("page.home.weekly_rituals.title")}),t.jsx(y,{items:w,keyExtractor:a=>a.id,slideAspectRatio:"750 / 370",renderItem:a=>t.jsx("a",{href:a.link,target:"_blank",rel:"noopener noreferrer",draggable:!1,style:{display:"block",height:"100%"},"data-place":m.LANDING_WEEKLY_RITUALS,"data-event":"click","data-card":a.id,onClick:l,children:o?t.jsx(f,{src:a.mobileImageUrl,alt:e(a.titleKey),loading:"lazy",draggable:!1}):t.jsx(b,{src:a.imageUrl,alt:e(a.titleKey),loading:"lazy",draggable:!1})})})]})})});j.displayName="WeeklyRituals";export{j as WeeklyRituals};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-CSbcajOU.js","sources":["../../src/components/Home/WeeklyRituals/WeeklyRituals.styled.ts","../../src/components/Home/WeeklyRituals/WeeklyRituals.tsx"],"sourcesContent":["import { Box, Typography, dclColors, styled } from 'decentraland-ui2'\n\nconst WeeklyRitualsOuter = styled(Box)({\n width: '100%',\n background: 'radial-gradient(ellipse at 110% 50%, rgba(148,37,205,1) 0%, rgba(104,20,155,1) 100%)'\n})\n\nconst WeeklyRitualsContainer = styled(Box)(({ theme }) => ({\n position: 'relative',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n gap: theme.spacing(4),\n padding: `${theme.spacing(10)} 0`,\n width: '100%',\n maxWidth: 1920,\n margin: '0 auto',\n overflow: 'hidden',\n [theme.breakpoints.down('sm')]: {\n padding: `${theme.spacing(6)} 0`\n }\n}))\n\nconst SectionTitle = styled(Typography)(({ theme }) => ({\n color: dclColors.neutral.white,\n fontWeight: 600,\n fontSize: 48,\n textAlign: 'center',\n [theme.breakpoints.down('sm')]: {\n fontSize: 32\n }\n}))\n\nconst CardImage = styled('img')({\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n display: 'block'\n})\n\nconst MobileCardImage = styled('img')({\n display: 'block',\n width: '100%',\n maxWidth: 358,\n margin: '0 auto',\n borderRadius: 16,\n objectFit: 'cover'\n})\n\nexport { CardImage, MobileCardImage, SectionTitle, WeeklyRitualsContainer, WeeklyRitualsOuter }\n","import { memo } from 'react'\nimport { useMediaQuery } from 'decentraland-ui2'\nimport { weeklyRitualsContent } from '../../../data/static-content'\nimport { useFormatMessage } from '../../../hooks/adapters/useFormatMessage'\nimport { useTrackClick } from '../../../hooks/adapters/useTrackLinkContext'\nimport { SectionViewedTrack } from '../../../modules/segment'\nimport { Carousel } from '../../Carousel'\nimport { CardImage, MobileCardImage, SectionTitle, WeeklyRitualsContainer, WeeklyRitualsOuter } from './WeeklyRituals.styled'\n\nconst cards = weeklyRitualsContent.cards\n\nconst WeeklyRituals = memo(() => {\n const l = useFormatMessage()\n const isMobile = useMediaQuery('(max-width: 599px)')\n const onClickHandle = useTrackClick()\n\n return (\n <WeeklyRitualsOuter>\n <WeeklyRitualsContainer>\n <SectionTitle variant=\"h3\">{l('page.home.weekly_rituals.title')}</SectionTitle>\n <Carousel\n items={cards}\n keyExtractor={card => card.id}\n slideAspectRatio=\"750 / 370\"\n renderItem={card => (\n <a\n href={card.link}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n draggable={false}\n style={{ display: 'block', height: '100%' }}\n data-place={SectionViewedTrack.LANDING_WEEKLY_RITUALS}\n data-event=\"click\"\n data-card={card.id}\n onClick={onClickHandle}\n >\n {isMobile ? (\n <MobileCardImage src={card.mobileImageUrl} alt={l(card.titleKey)} loading=\"lazy\" draggable={false} />\n ) : (\n <CardImage src={card.imageUrl} alt={l(card.titleKey)} loading=\"lazy\" draggable={false} />\n )}\n </a>\n )}\n />\n </WeeklyRitualsContainer>\n </WeeklyRitualsOuter>\n )\n})\n\nWeeklyRituals.displayName = 'WeeklyRituals'\n\nexport { WeeklyRituals }\n"],"names":["WeeklyRitualsOuter","styled","Box","WeeklyRitualsContainer","theme","SectionTitle","Typography","dclColors.neutral","CardImage","MobileCardImage","cards","weeklyRitualsContent","WeeklyRituals","memo","l","useFormatMessage","isMobile","useMediaQuery","onClickHandle","useTrackClick","jsx","jsxs","Carousel","card","SectionViewedTrack"],"mappings":"iXAEA,MAAMA,EAAqBC,EAAOC,CAAG,EAAE,CACrC,MAAO,OACP,WAAY,sFACd,CAAC,EAEKC,EAAyBF,EAAOC,CAAG,EAAE,CAAC,CAAE,MAAAE,MAAa,CACzD,SAAU,WACV,QAAS,OACT,cAAe,SACf,WAAY,SACZ,IAAKA,EAAM,QAAQ,CAAC,EACpB,QAAS,GAAGA,EAAM,QAAQ,EAAE,CAAC,KAC7B,MAAO,OACP,SAAU,KACV,OAAQ,SACR,SAAU,SACV,CAACA,EAAM,YAAY,KAAK,IAAI,CAAC,EAAG,CAC9B,QAAS,GAAGA,EAAM,QAAQ,CAAC,CAAC,IAAA,CAEhC,EAAE,EAEIC,EAAeJ,EAAOK,CAAU,EAAE,CAAC,CAAE,MAAAF,MAAa,CACtD,MAAOG,EAAkB,MACzB,WAAY,IACZ,SAAU,GACV,UAAW,SACX,CAACH,EAAM,YAAY,KAAK,IAAI,CAAC,EAAG,CAC9B,SAAU,EAAA,CAEd,EAAE,EAEII,EAAYP,EAAO,KAAK,EAAE,CAC9B,MAAO,OACP,OAAQ,OACR,UAAW,QACX,QAAS,OACX,CAAC,EAEKQ,EAAkBR,EAAO,KAAK,EAAE,CACpC,QAAS,QACT,MAAO,OACP,SAAU,IACV,OAAQ,SACR,aAAc,GACd,UAAW,OACb,CAAC,ECtCKS,EAAQC,EAAqB,MAE7BC,EAAgBC,EAAAA,KAAK,IAAM,CAC/B,MAAMC,EAAIC,EAAA,EACJC,EAAWC,EAAc,oBAAoB,EAC7CC,EAAgBC,EAAA,EAEtB,OACEC,EAAAA,IAACpB,EAAA,CACC,SAAAqB,EAAAA,KAAClB,EAAA,CACC,SAAA,CAAAiB,MAACf,EAAA,CAAa,QAAQ,KAAM,SAAAS,EAAE,gCAAgC,EAAE,EAChEM,EAAAA,IAACE,EAAA,CACC,MAAOZ,EACP,gBAAsBa,EAAK,GAC3B,iBAAiB,YACjB,WAAYA,GACVH,EAAAA,IAAC,IAAA,CACC,KAAMG,EAAK,KACX,OAAO,SACP,IAAI,sBACJ,UAAW,GACX,MAAO,CAAE,QAAS,QAAS,OAAQ,MAAA,EACnC,aAAYC,EAAmB,uBAC/B,aAAW,QACX,YAAWD,EAAK,GAChB,QAASL,EAER,SAAAF,EACCI,EAAAA,IAACX,EAAA,CAAgB,IAAKc,EAAK,eAAgB,IAAKT,EAAES,EAAK,QAAQ,EAAG,QAAQ,OAAO,UAAW,EAAA,CAAO,EAEnGH,EAAAA,IAACZ,EAAA,CAAU,IAAKe,EAAK,SAAU,IAAKT,EAAES,EAAK,QAAQ,EAAG,QAAQ,OAAO,UAAW,EAAA,CAAO,CAAA,CAAA,CAE3F,CAAA,CAEJ,CAAA,CACF,CAAA,CACF,CAEJ,CAAC,EAEDX,EAAc,YAAc"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as e,B as r}from"./index-
|
|
1
|
+
import{j as e,B as r}from"./index-_DB-noma.js";import{r as t}from"./vendor-router-D_36sTKu.js";import{L as o,P as a}from"./LegalPageLayout-DpJoq1IM.js";import"./vendor-crypto-uuuQA3i5.js";import"./vendor-schemas-DJzTSxpO.js";import"./vendor-sentry-BSvWNK4f.js";import"./vendor-ua-D7qqAxdq.js";import"./vendor-intl-D2lXWsDp.js";const i=[],n=t.memo(()=>e.jsxs(o,{title:"Vulnerability Disclosure Procedure",activeSlug:"/security",tableOfContents:i,children:[e.jsx(a,{children:"At Decentraland, we take every measure necessary to ensure the security of the platform. If you are a security researcher and took a look at some of our code, contracts, or websites and found a vulnerability, you're eligible for a bounty for doing a responsible disclosure of that bug."}),e.jsx(r,{component:"a",href:"https://immunefi.com/bounty/decentraland/",target:"_blank",rel:"noopener noreferrer",variant:"contained",children:"Submit a report on Immunefi"})]}));n.displayName="SecurityPage";export{n as SecurityPage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-CWHKL6N8.js","sources":["../../src/pages/security/SecurityPage.tsx"],"sourcesContent":["import { memo } from 'react'\nimport { Button } from 'decentraland-ui2'\nimport { LegalPageLayout, Paragraph } from '../../components/LegalPage'\nimport type { TOCEntry } from '../../components/LegalPage'\n\nconst TABLE_OF_CONTENTS: TOCEntry[] = []\n\nconst SecurityPage = memo(() => (\n <LegalPageLayout title=\"Vulnerability Disclosure Procedure\" activeSlug=\"/security\" tableOfContents={TABLE_OF_CONTENTS}>\n <Paragraph>\n At Decentraland, we take every measure necessary to ensure the security of the platform. If you are a security researcher and took a\n look at some of our code, contracts, or websites and found a vulnerability, you're eligible for a bounty for doing a responsible\n disclosure of that bug.\n </Paragraph>\n <Button component=\"a\" href=\"https://immunefi.com/bounty/decentraland/\" target=\"_blank\" rel=\"noopener noreferrer\" variant=\"contained\">\n Submit a report on Immunefi\n </Button>\n </LegalPageLayout>\n))\n\nSecurityPage.displayName = 'SecurityPage'\n\nexport { SecurityPage }\n"],"names":["TABLE_OF_CONTENTS","SecurityPage","memo","jsxs","LegalPageLayout","jsx","Paragraph","Button"],"mappings":"uUAKA,MAAMA,EAAgC,CAAA,EAEhCC,EAAeC,EAAAA,KAAK,IACxBC,EAAAA,KAACC,EAAA,CAAgB,MAAM,qCAAqC,WAAW,YAAY,gBAAiBJ,EAClG,SAAA,CAAAK,EAAAA,IAACC,GAAU,SAAA,+RAAA,CAIX,EACAD,EAAAA,IAACE,EAAA,CAAO,UAAU,IAAI,KAAK,4CAA4C,OAAO,SAAS,IAAI,sBAAsB,QAAQ,YAAY,SAAA,6BAAA,CAErI,CAAA,EACF,CACD,EAEDN,EAAa,YAAc"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{x as $,ar as q,O as c,t as Y,q as Q,ad as S,j as a,L as G,v as J,U as X}from"./index-_DB-noma.js";import{r as o,b as Z}from"./vendor-router-D_36sTKu.js";import"./vendor-ua-D7qqAxdq.js";import{LandingFooter as tt}from"./index-XKJmyO_p.js";import{u as et,a as st,g as ot,A as W,c as at}from"./downloadWithIdentity-BySK_Bjg.js";import{t as nt}from"./file-Cr_gl9BS.js";import{F as m,a as ct}from"./url-DaZlsYoU.js";import{D as rt,a as dt,b as it,c as lt,d as pt,e as wt,H as ut}from"./DownloadSuccessLayout-CqT-1vfy.js";import"./vendor-crypto-uuuQA3i5.js";import"./vendor-schemas-DJzTSxpO.js";import"./vendor-sentry-BSvWNK4f.js";import"./vendor-intl-D2lXWsDp.js";import"./useAuthIdentity-CvL2aq09.js";import"./index-D_URcwLX.js";import"./CardContent-C2Yp8bGg.js";import"./Paper-DQs--rBO.js";import"./CardMedia-B8io6l5d.js";const gt="https://cdn.decentraland.org/@dcl/landing-site/0.5.1-24696786650.commit-39f76cb/assets/macos_launcher-tAnkzoV6.webp",mt="https://cdn.decentraland.org/@dcl/landing-site/0.5.1-24696786650.commit-39f76cb/assets/macos_launching_decentraland-D20EhlLN.webp",ft="https://cdn.decentraland.org/@dcl/landing-site/0.5.1-24696786650.commit-39f76cb/assets/macos_recent_download-BanUqEgV.webp",Dt="https://cdn.decentraland.org/@dcl/landing-site/0.5.1-24696786650.commit-39f76cb/assets/windows_downloads_folder-BjMDtSd-.webp",St="https://cdn.decentraland.org/@dcl/landing-site/0.5.1-24696786650.commit-39f76cb/assets/windows_launching_decentraland-Bg5TsdCP.webp",ht="https://cdn.decentraland.org/@dcl/landing-site/0.5.1-24696786650.commit-39f76cb/assets/windows_setup-Dzomx64Q.webp",Ot=new Set(["amd64","arm64"]),h="downloadSuccess:autoDownloadKey",xt="downloadSuccess:triggered",yt=o.memo(()=>{const[O]=Z(),{intl:x}=$(),{isInitialized:y,track:A}=q(),i=et(),l=st(),[_,p]=o.useState(!1),[j,f]=o.useState(null),[T,w]=o.useState(!1),D=o.useRef(!1),I=o.useRef(i),L=o.useRef(l),u=o.useRef(y),g=o.useRef(A);I.current=i,L.current=l,u.current=y,g.current=A;const U=O.get("os")||"",n={windows:c.WINDOWS,macos:c.MACOS}[U.toLowerCase()]??c.MACOS,b=n===c.WINDOWS?"amd64":"arm64",C=O.get("arch")||b,r=Ot.has(C)?C:b,v=n===c.WINDOWS?Y:Q,M=n===c.WINDOWS?m[n]?.amd64:m[n]?.[r],t=o.useCallback((e,s)=>x.formatMessage({id:e},s),[x]),E=t("page.download.success.subtitle_action_exploring"),k=o.useMemo(()=>{const e=s=>a.jsx("span",{children:s});return{[c.WINDOWS]:[{title:t("page.download.success.steps.windows.step1.title"),text:t("page.download.success.steps.windows.step1.text",{span:e}),image:Dt},{title:t("page.download.success.steps.windows.step2.title"),text:t("page.download.success.steps.windows.step2.text",{span:e}),image:ht},{title:t("page.download.success.steps.windows.step3.title"),text:t("page.download.success.steps.windows.step3.text",{span:e}),image:St}],[c.MACOS]:[{title:t("page.download.success.steps.macOS.step1.title"),text:t("page.download.success.steps.macOS.step1.text",{span:e}),image:ft},{title:t("page.download.success.steps.macOS.step2.title"),text:t("page.download.success.steps.macOS.step2.text",{span:e}),image:gt},{title:t("page.download.success.steps.macOS.step3.title"),text:t("page.download.success.steps.macOS.step3.text",{span:e}),image:mt}]}},[t]),B=k[n]||k[c.MACOS];o.useEffect(()=>{let e=!1;const s=`${n}:${r}`,N=()=>window.history.state&&typeof window.history.state=="object"?window.history.state:{};return(async()=>{const d=`${xt}:${s}`;if(sessionStorage.getItem(d)){w(!0);return}if(N()[h]===s){w(!0);return}p(!0),f(null),w(!1),u.current&&g.current(S.DOWNLOAD_STARTED);const{url:H,filename:z}=await at({os:n,arch:r,fallbackLinks:m,getIdentityId:I.current});if(e)return;const R=N();if(R[h]!==s&&window.history.replaceState({...R,[h]:s},"",window.location.href),e)return;sessionStorage.setItem(d,"1");const V=ct(H,{[W]:L.current});nt(V),w(!0),u.current&&g.current(S.DOWNLOAD_SUCCESS,{filename:z})})().catch(d=>{e||(console.error("Download error:",d),f(d instanceof Error?d.message:"Download failed"),u.current&&g.current(S.DOWNLOAD_FAILED))}).finally(()=>{e||p(!1)}),()=>{e=!0}},[n,r]);const F=o.useCallback(async e=>{if(e.preventDefault(),!D.current){D.current=!0,p(!0);try{await ot({os:n,arch:r,fallbackLinks:m,queryParams:{[W]:l},getIdentityId:i})}catch(s){console.error("Download error:",s),f(s instanceof Error?s.message:"Download failed")}finally{D.current=!1,p(!1)}}},[n,r,l,i]),P=_||!j&&!T,K=_?a.jsxs(rt,{children:[a.jsx(G,{size:"huge"}),a.jsxs(dt,{children:[a.jsx(it,{variant:"h6",children:t("page.download.downloading")}),a.jsx(lt,{children:a.jsx(pt,{})})]})]}):void 0;return a.jsx(wt,{loading:P,backdropContent:K,osIcon:v,title:t("page.download.success.title"),subtitle:t("page.download.success.subtitle",{action:E}),steps:B,renderCardOverlay:(e,s)=>s===0&&E==="exploring"?a.jsx(ut,{}):null,footer:a.jsx(J,{variant:"body1",children:t("page.download.success.footer",{link:a.jsx("a",{href:M,onClick:F,"data-event":X.DOWNLOAD,children:t("page.download.success.footer_link_label")})})}),afterContent:a.jsx(tt,{})})});yt.displayName="DownloadSuccess";export{yt as DownloadSuccess};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-DJdpP3iF.js","sources":["../../src/images/download/macos_launcher.webp","../../src/images/download/macos_launching_decentraland.webp","../../src/images/download/macos_recent_download.webp","../../src/images/download/windows_downloads_folder.webp","../../src/images/download/windows_launching_decentraland.webp","../../src/images/download/windows_setup.webp","../../src/pages/DownloadSuccess/DownloadSuccess.tsx"],"sourcesContent":["export default \"__VITE_ASSET__DStHG5Mc__\"","export default \"__VITE_ASSET__DWimWUWi__\"","export default \"__VITE_ASSET__vWVoSUUz__\"","export default \"__VITE_ASSET__DhYSbSkN__\"","export default \"__VITE_ASSET__BgHKSzHv__\"","export default \"__VITE_ASSET__BQKnEWYh__\"","import { memo, useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { useSearchParams } from 'react-router-dom'\nimport { useAnalytics, useTranslation } from '@dcl/hooks'\nimport { Logo, Typography } from 'decentraland-ui2'\nimport { LandingFooter } from '../../components/LandingFooter'\nimport { ANON_USER_ID_PARAM, useAnonUserId } from '../../hooks/useAnonUserId'\nimport { useGetIdentityId } from '../../hooks/useGetIdentityId'\nimport appleLogo from '../../images/apple-logo.svg'\nimport macOsLauncher from '../../images/download/macos_launcher.webp'\nimport macOsLaunchingDecentraland from '../../images/download/macos_launching_decentraland.webp'\nimport macOsRecentDownload from '../../images/download/macos_recent_download.webp'\nimport windowsDownloadsFolder from '../../images/download/windows_downloads_folder.webp'\nimport windowsLaunchingDecentraland from '../../images/download/windows_launching_decentraland.webp'\nimport windowsSetup from '../../images/download/windows_setup.webp'\nimport microsoftLogo from '../../images/microsoft-logo.svg'\nimport { calculateDownloadUrl, getDownloadLinkWithIdentity } from '../../modules/downloadWithIdentity'\nimport { triggerFileDownload } from '../../modules/file'\nimport { SectionViewedTrack, SegmentEvent } from '../../modules/segment'\nimport { FALLBACK_CDN_RELEASE_LINKS, addQueryParamsToUrlString } from '../../modules/url'\nimport { Architecture, OperativeSystem } from '../../types/download.types'\nimport { DownloadSuccessLayout } from './DownloadSuccessLayout'\nimport type { DownloadSuccessStep, DownloadSuccessStepsWithOs } from './DownloadSuccess.types'\nimport {\n DownloadBackdropContent,\n DownloadBackdropText,\n DownloadDetailContainer,\n DownloadProgressBar,\n DownloadProgressContainer,\n HighlightAnimation\n} from './DownloadSuccess.styled'\n\nconst VALID_ARCHS = new Set<string>(['amd64', 'arm64'])\nconst AUTO_DOWNLOAD_HISTORY_STATE_KEY = 'downloadSuccess:autoDownloadKey'\nconst AUTO_DOWNLOAD_SESSION_KEY = 'downloadSuccess:triggered'\n\nconst DownloadSuccess = memo(() => {\n const [searchParams] = useSearchParams()\n const { intl } = useTranslation()\n const { isInitialized, track } = useAnalytics()\n const getIdentityId = useGetIdentityId()\n const anonUserId = useAnonUserId()\n\n const [isDownloading, setIsDownloading] = useState(false)\n const [downloadError, setDownloadError] = useState<string | null>(null)\n const [isFileSaved, setIsFileSaved] = useState(false)\n const downloadingRef = useRef(false)\n const getIdentityIdRef = useRef(getIdentityId)\n const anonUserIdRef = useRef(anonUserId)\n const isInitializedRef = useRef(isInitialized)\n const trackRef = useRef(track)\n getIdentityIdRef.current = getIdentityId\n anonUserIdRef.current = anonUserId\n isInitializedRef.current = isInitialized\n trackRef.current = track\n\n const rawOs = searchParams.get('os') || ''\n const osMap: Record<string, OperativeSystem> = {\n windows: OperativeSystem.WINDOWS,\n macos: OperativeSystem.MACOS\n }\n const clientOS = osMap[rawOs.toLowerCase()] ?? OperativeSystem.MACOS\n const defaultArch = clientOS === OperativeSystem.WINDOWS ? 'amd64' : 'arm64'\n const rawArch = searchParams.get('arch') || defaultArch\n const clientArch = (VALID_ARCHS.has(rawArch) ? rawArch : defaultArch) as Architecture\n\n const osIcon = clientOS === OperativeSystem.WINDOWS ? microsoftLogo : appleLogo\n const osLink =\n clientOS === OperativeSystem.WINDOWS ? FALLBACK_CDN_RELEASE_LINKS[clientOS]?.amd64 : FALLBACK_CDN_RELEASE_LINKS[clientOS]?.[clientArch]\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const l = useCallback((id: string, values?: Record<string, any>) => intl.formatMessage({ id }, values), [intl])\n\n const productAction = l('page.download.success.subtitle_action_exploring') as string\n\n const steps: DownloadSuccessStepsWithOs = useMemo(() => {\n const spanTag = (chunks: React.ReactNode) => <span>{chunks}</span>\n\n return {\n [OperativeSystem.WINDOWS]: [\n {\n title: l('page.download.success.steps.windows.step1.title'),\n text: l('page.download.success.steps.windows.step1.text', { span: spanTag }),\n image: windowsDownloadsFolder\n },\n {\n title: l('page.download.success.steps.windows.step2.title'),\n text: l('page.download.success.steps.windows.step2.text', { span: spanTag }),\n image: windowsSetup\n },\n {\n title: l('page.download.success.steps.windows.step3.title'),\n text: l('page.download.success.steps.windows.step3.text', { span: spanTag }),\n image: windowsLaunchingDecentraland\n }\n ],\n [OperativeSystem.MACOS]: [\n {\n title: l('page.download.success.steps.macOS.step1.title'),\n text: l('page.download.success.steps.macOS.step1.text', { span: spanTag }),\n image: macOsRecentDownload\n },\n {\n title: l('page.download.success.steps.macOS.step2.title'),\n text: l('page.download.success.steps.macOS.step2.text', { span: spanTag }),\n image: macOsLauncher\n },\n {\n title: l('page.download.success.steps.macOS.step3.title'),\n text: l('page.download.success.steps.macOS.step3.text', { span: spanTag }),\n image: macOsLaunchingDecentraland\n }\n ]\n }\n }, [l])\n\n const currentSteps: DownloadSuccessStep[] = steps[clientOS] || steps[OperativeSystem.MACOS]\n\n useEffect(() => {\n let cancelled = false\n const autoDownloadKey = `${clientOS}:${clientArch}`\n\n const getHistoryState = (): Record<string, unknown> =>\n window.history.state && typeof window.history.state === 'object' ? (window.history.state as Record<string, unknown>) : {}\n\n const startDownload = async () => {\n const sessionKey = `${AUTO_DOWNLOAD_SESSION_KEY}:${autoDownloadKey}`\n if (sessionStorage.getItem(sessionKey)) {\n setIsFileSaved(true)\n return\n }\n\n const historyState = getHistoryState()\n\n if (historyState[AUTO_DOWNLOAD_HISTORY_STATE_KEY] === autoDownloadKey) {\n setIsFileSaved(true)\n return\n }\n\n setIsDownloading(true)\n setDownloadError(null)\n setIsFileSaved(false)\n\n if (isInitializedRef.current) {\n trackRef.current(SegmentEvent.DOWNLOAD_STARTED)\n }\n\n const { url, filename } = await calculateDownloadUrl({\n os: clientOS,\n arch: clientArch,\n fallbackLinks: FALLBACK_CDN_RELEASE_LINKS,\n getIdentityId: getIdentityIdRef.current\n })\n\n if (cancelled) return\n\n const latestHistoryState = getHistoryState()\n if (latestHistoryState[AUTO_DOWNLOAD_HISTORY_STATE_KEY] !== autoDownloadKey) {\n window.history.replaceState(\n {\n ...latestHistoryState,\n [AUTO_DOWNLOAD_HISTORY_STATE_KEY]: autoDownloadKey\n },\n '',\n window.location.href\n )\n }\n\n if (cancelled) return\n\n sessionStorage.setItem(sessionKey, '1')\n const downloadUrl = addQueryParamsToUrlString(url, { [ANON_USER_ID_PARAM]: anonUserIdRef.current })\n triggerFileDownload(downloadUrl)\n setIsFileSaved(true)\n\n if (isInitializedRef.current) {\n trackRef.current(SegmentEvent.DOWNLOAD_SUCCESS, { filename })\n }\n }\n\n startDownload()\n .catch(error => {\n if (cancelled) return\n console.error('Download error:', error)\n setDownloadError(error instanceof Error ? error.message : 'Download failed')\n if (isInitializedRef.current) {\n trackRef.current(SegmentEvent.DOWNLOAD_FAILED)\n }\n })\n .finally(() => {\n if (!cancelled) {\n setIsDownloading(false)\n }\n })\n\n return () => {\n cancelled = true\n }\n }, [clientOS, clientArch])\n\n const handleDownloadClick = useCallback(\n async (event: React.MouseEvent<HTMLAnchorElement>) => {\n event.preventDefault()\n if (downloadingRef.current) return\n downloadingRef.current = true\n setIsDownloading(true)\n\n try {\n await getDownloadLinkWithIdentity({\n os: clientOS,\n arch: clientArch,\n fallbackLinks: FALLBACK_CDN_RELEASE_LINKS,\n queryParams: { [ANON_USER_ID_PARAM]: anonUserId },\n getIdentityId\n })\n } catch (error) {\n console.error('Download error:', error)\n setDownloadError(error instanceof Error ? error.message : 'Download failed')\n } finally {\n downloadingRef.current = false\n setIsDownloading(false)\n }\n },\n [clientOS, clientArch, anonUserId, getIdentityId]\n )\n\n const showBackdrop = isDownloading || (!downloadError && !isFileSaved)\n\n const backdropContent = isDownloading ? (\n <DownloadBackdropContent>\n <Logo size=\"huge\" />\n <DownloadDetailContainer>\n <DownloadBackdropText variant=\"h6\">{l('page.download.downloading')}</DownloadBackdropText>\n <DownloadProgressContainer>\n <DownloadProgressBar />\n </DownloadProgressContainer>\n </DownloadDetailContainer>\n </DownloadBackdropContent>\n ) : undefined\n\n return (\n <DownloadSuccessLayout\n loading={showBackdrop}\n backdropContent={backdropContent}\n osIcon={osIcon}\n title={l('page.download.success.title')}\n subtitle={l('page.download.success.subtitle', { action: productAction })}\n steps={currentSteps}\n renderCardOverlay={(_step, index) => (index === 0 && productAction === 'exploring' ? <HighlightAnimation /> : null)}\n footer={\n <Typography variant=\"body1\">\n {l('page.download.success.footer', {\n link: (\n <a href={osLink} onClick={handleDownloadClick} data-event={SectionViewedTrack.DOWNLOAD}>\n {l('page.download.success.footer_link_label')}\n </a>\n )\n })}\n </Typography>\n }\n afterContent={<LandingFooter />}\n />\n )\n})\n\nDownloadSuccess.displayName = 'DownloadSuccess'\n\nexport { DownloadSuccess }\n"],"names":["macOsLauncher","macOsLaunchingDecentraland","macOsRecentDownload","windowsDownloadsFolder","windowsLaunchingDecentraland","windowsSetup","VALID_ARCHS","AUTO_DOWNLOAD_HISTORY_STATE_KEY","AUTO_DOWNLOAD_SESSION_KEY","DownloadSuccess","memo","searchParams","useSearchParams","intl","useTranslation","isInitialized","track","useAnalytics","getIdentityId","useGetIdentityId","anonUserId","useAnonUserId","isDownloading","setIsDownloading","useState","downloadError","setDownloadError","isFileSaved","setIsFileSaved","downloadingRef","useRef","getIdentityIdRef","anonUserIdRef","isInitializedRef","trackRef","rawOs","clientOS","OperativeSystem","defaultArch","rawArch","clientArch","osIcon","microsoftLogo","appleLogo","osLink","FALLBACK_CDN_RELEASE_LINKS","l","useCallback","id","values","productAction","steps","useMemo","spanTag","chunks","jsx","currentSteps","useEffect","cancelled","autoDownloadKey","getHistoryState","sessionKey","SegmentEvent","url","filename","calculateDownloadUrl","latestHistoryState","downloadUrl","addQueryParamsToUrlString","ANON_USER_ID_PARAM","triggerFileDownload","error","handleDownloadClick","event","getDownloadLinkWithIdentity","showBackdrop","backdropContent","jsxs","DownloadBackdropContent","Logo","DownloadDetailContainer","DownloadBackdropText","DownloadProgressContainer","DownloadProgressBar","DownloadSuccessLayout","_step","index","HighlightAnimation","Typography","SectionViewedTrack","LandingFooter"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index-CaN3aesa.js","sources":["../../src/images/download/macos_launcher.webp","../../src/images/download/macos_launching_decentraland.webp","../../src/images/download/macos_recent_download.webp","../../src/images/download/windows_downloads_folder.webp","../../src/images/download/windows_launching_decentraland.webp","../../src/images/download/windows_setup.webp","../../src/pages/DownloadSuccess/DownloadSuccess.tsx"],"sourcesContent":["export default \"__VITE_ASSET__DStHG5Mc__\"","export default \"__VITE_ASSET__DWimWUWi__\"","export default \"__VITE_ASSET__vWVoSUUz__\"","export default \"__VITE_ASSET__DhYSbSkN__\"","export default \"__VITE_ASSET__BgHKSzHv__\"","export default \"__VITE_ASSET__BQKnEWYh__\"","import { memo, useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { useSearchParams } from 'react-router-dom'\nimport { useAnalytics, useTranslation } from '@dcl/hooks'\nimport { Logo, Typography } from 'decentraland-ui2'\nimport { LandingFooter } from '../../components/LandingFooter'\nimport { ANON_USER_ID_PARAM, useAnonUserId } from '../../hooks/useAnonUserId'\nimport { useGetIdentityId } from '../../hooks/useGetIdentityId'\nimport appleLogo from '../../images/apple-logo.svg'\nimport macOsLauncher from '../../images/download/macos_launcher.webp'\nimport macOsLaunchingDecentraland from '../../images/download/macos_launching_decentraland.webp'\nimport macOsRecentDownload from '../../images/download/macos_recent_download.webp'\nimport windowsDownloadsFolder from '../../images/download/windows_downloads_folder.webp'\nimport windowsLaunchingDecentraland from '../../images/download/windows_launching_decentraland.webp'\nimport windowsSetup from '../../images/download/windows_setup.webp'\nimport microsoftLogo from '../../images/microsoft-logo.svg'\nimport { calculateDownloadUrl, getDownloadLinkWithIdentity } from '../../modules/downloadWithIdentity'\nimport { triggerFileDownload } from '../../modules/file'\nimport { SectionViewedTrack, SegmentEvent } from '../../modules/segment'\nimport { FALLBACK_CDN_RELEASE_LINKS, addQueryParamsToUrlString } from '../../modules/url'\nimport { Architecture, OperativeSystem } from '../../types/download.types'\nimport { DownloadSuccessLayout } from './DownloadSuccessLayout'\nimport type { DownloadSuccessStep, DownloadSuccessStepsWithOs } from './DownloadSuccess.types'\nimport {\n DownloadBackdropContent,\n DownloadBackdropText,\n DownloadDetailContainer,\n DownloadProgressBar,\n DownloadProgressContainer,\n HighlightAnimation\n} from './DownloadSuccess.styled'\n\nconst VALID_ARCHS = new Set<string>(['amd64', 'arm64'])\nconst AUTO_DOWNLOAD_HISTORY_STATE_KEY = 'downloadSuccess:autoDownloadKey'\nconst AUTO_DOWNLOAD_SESSION_KEY = 'downloadSuccess:triggered'\n\nconst DownloadSuccess = memo(() => {\n const [searchParams] = useSearchParams()\n const { intl } = useTranslation()\n const { isInitialized, track } = useAnalytics()\n const getIdentityId = useGetIdentityId()\n const anonUserId = useAnonUserId()\n\n const [isDownloading, setIsDownloading] = useState(false)\n const [downloadError, setDownloadError] = useState<string | null>(null)\n const [isFileSaved, setIsFileSaved] = useState(false)\n const downloadingRef = useRef(false)\n const getIdentityIdRef = useRef(getIdentityId)\n const anonUserIdRef = useRef(anonUserId)\n const isInitializedRef = useRef(isInitialized)\n const trackRef = useRef(track)\n getIdentityIdRef.current = getIdentityId\n anonUserIdRef.current = anonUserId\n isInitializedRef.current = isInitialized\n trackRef.current = track\n\n const rawOs = searchParams.get('os') || ''\n const osMap: Record<string, OperativeSystem> = {\n windows: OperativeSystem.WINDOWS,\n macos: OperativeSystem.MACOS\n }\n const clientOS = osMap[rawOs.toLowerCase()] ?? OperativeSystem.MACOS\n const defaultArch = clientOS === OperativeSystem.WINDOWS ? 'amd64' : 'arm64'\n const rawArch = searchParams.get('arch') || defaultArch\n const clientArch = (VALID_ARCHS.has(rawArch) ? rawArch : defaultArch) as Architecture\n\n const osIcon = clientOS === OperativeSystem.WINDOWS ? microsoftLogo : appleLogo\n const osLink =\n clientOS === OperativeSystem.WINDOWS ? FALLBACK_CDN_RELEASE_LINKS[clientOS]?.amd64 : FALLBACK_CDN_RELEASE_LINKS[clientOS]?.[clientArch]\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const l = useCallback((id: string, values?: Record<string, any>) => intl.formatMessage({ id }, values), [intl])\n\n const productAction = l('page.download.success.subtitle_action_exploring') as string\n\n const steps: DownloadSuccessStepsWithOs = useMemo(() => {\n const spanTag = (chunks: React.ReactNode) => <span>{chunks}</span>\n\n return {\n [OperativeSystem.WINDOWS]: [\n {\n title: l('page.download.success.steps.windows.step1.title'),\n text: l('page.download.success.steps.windows.step1.text', { span: spanTag }),\n image: windowsDownloadsFolder\n },\n {\n title: l('page.download.success.steps.windows.step2.title'),\n text: l('page.download.success.steps.windows.step2.text', { span: spanTag }),\n image: windowsSetup\n },\n {\n title: l('page.download.success.steps.windows.step3.title'),\n text: l('page.download.success.steps.windows.step3.text', { span: spanTag }),\n image: windowsLaunchingDecentraland\n }\n ],\n [OperativeSystem.MACOS]: [\n {\n title: l('page.download.success.steps.macOS.step1.title'),\n text: l('page.download.success.steps.macOS.step1.text', { span: spanTag }),\n image: macOsRecentDownload\n },\n {\n title: l('page.download.success.steps.macOS.step2.title'),\n text: l('page.download.success.steps.macOS.step2.text', { span: spanTag }),\n image: macOsLauncher\n },\n {\n title: l('page.download.success.steps.macOS.step3.title'),\n text: l('page.download.success.steps.macOS.step3.text', { span: spanTag }),\n image: macOsLaunchingDecentraland\n }\n ]\n }\n }, [l])\n\n const currentSteps: DownloadSuccessStep[] = steps[clientOS] || steps[OperativeSystem.MACOS]\n\n useEffect(() => {\n let cancelled = false\n const autoDownloadKey = `${clientOS}:${clientArch}`\n\n const getHistoryState = (): Record<string, unknown> =>\n window.history.state && typeof window.history.state === 'object' ? (window.history.state as Record<string, unknown>) : {}\n\n const startDownload = async () => {\n const sessionKey = `${AUTO_DOWNLOAD_SESSION_KEY}:${autoDownloadKey}`\n if (sessionStorage.getItem(sessionKey)) {\n setIsFileSaved(true)\n return\n }\n\n const historyState = getHistoryState()\n\n if (historyState[AUTO_DOWNLOAD_HISTORY_STATE_KEY] === autoDownloadKey) {\n setIsFileSaved(true)\n return\n }\n\n setIsDownloading(true)\n setDownloadError(null)\n setIsFileSaved(false)\n\n if (isInitializedRef.current) {\n trackRef.current(SegmentEvent.DOWNLOAD_STARTED)\n }\n\n const { url, filename } = await calculateDownloadUrl({\n os: clientOS,\n arch: clientArch,\n fallbackLinks: FALLBACK_CDN_RELEASE_LINKS,\n getIdentityId: getIdentityIdRef.current\n })\n\n if (cancelled) return\n\n const latestHistoryState = getHistoryState()\n if (latestHistoryState[AUTO_DOWNLOAD_HISTORY_STATE_KEY] !== autoDownloadKey) {\n window.history.replaceState(\n {\n ...latestHistoryState,\n [AUTO_DOWNLOAD_HISTORY_STATE_KEY]: autoDownloadKey\n },\n '',\n window.location.href\n )\n }\n\n if (cancelled) return\n\n sessionStorage.setItem(sessionKey, '1')\n const downloadUrl = addQueryParamsToUrlString(url, { [ANON_USER_ID_PARAM]: anonUserIdRef.current })\n triggerFileDownload(downloadUrl)\n setIsFileSaved(true)\n\n if (isInitializedRef.current) {\n trackRef.current(SegmentEvent.DOWNLOAD_SUCCESS, { filename })\n }\n }\n\n startDownload()\n .catch(error => {\n if (cancelled) return\n console.error('Download error:', error)\n setDownloadError(error instanceof Error ? error.message : 'Download failed')\n if (isInitializedRef.current) {\n trackRef.current(SegmentEvent.DOWNLOAD_FAILED)\n }\n })\n .finally(() => {\n if (!cancelled) {\n setIsDownloading(false)\n }\n })\n\n return () => {\n cancelled = true\n }\n }, [clientOS, clientArch])\n\n const handleDownloadClick = useCallback(\n async (event: React.MouseEvent<HTMLAnchorElement>) => {\n event.preventDefault()\n if (downloadingRef.current) return\n downloadingRef.current = true\n setIsDownloading(true)\n\n try {\n await getDownloadLinkWithIdentity({\n os: clientOS,\n arch: clientArch,\n fallbackLinks: FALLBACK_CDN_RELEASE_LINKS,\n queryParams: { [ANON_USER_ID_PARAM]: anonUserId },\n getIdentityId\n })\n } catch (error) {\n console.error('Download error:', error)\n setDownloadError(error instanceof Error ? error.message : 'Download failed')\n } finally {\n downloadingRef.current = false\n setIsDownloading(false)\n }\n },\n [clientOS, clientArch, anonUserId, getIdentityId]\n )\n\n const showBackdrop = isDownloading || (!downloadError && !isFileSaved)\n\n const backdropContent = isDownloading ? (\n <DownloadBackdropContent>\n <Logo size=\"huge\" />\n <DownloadDetailContainer>\n <DownloadBackdropText variant=\"h6\">{l('page.download.downloading')}</DownloadBackdropText>\n <DownloadProgressContainer>\n <DownloadProgressBar />\n </DownloadProgressContainer>\n </DownloadDetailContainer>\n </DownloadBackdropContent>\n ) : undefined\n\n return (\n <DownloadSuccessLayout\n loading={showBackdrop}\n backdropContent={backdropContent}\n osIcon={osIcon}\n title={l('page.download.success.title')}\n subtitle={l('page.download.success.subtitle', { action: productAction })}\n steps={currentSteps}\n renderCardOverlay={(_step, index) => (index === 0 && productAction === 'exploring' ? <HighlightAnimation /> : null)}\n footer={\n <Typography variant=\"body1\">\n {l('page.download.success.footer', {\n link: (\n <a href={osLink} onClick={handleDownloadClick} data-event={SectionViewedTrack.DOWNLOAD}>\n {l('page.download.success.footer_link_label')}\n </a>\n )\n })}\n </Typography>\n }\n afterContent={<LandingFooter />}\n />\n )\n})\n\nDownloadSuccess.displayName = 'DownloadSuccess'\n\nexport { DownloadSuccess }\n"],"names":["macOsLauncher","macOsLaunchingDecentraland","macOsRecentDownload","windowsDownloadsFolder","windowsLaunchingDecentraland","windowsSetup","VALID_ARCHS","AUTO_DOWNLOAD_HISTORY_STATE_KEY","AUTO_DOWNLOAD_SESSION_KEY","DownloadSuccess","memo","searchParams","useSearchParams","intl","useTranslation","isInitialized","track","useAnalytics","getIdentityId","useGetIdentityId","anonUserId","useAnonUserId","isDownloading","setIsDownloading","useState","downloadError","setDownloadError","isFileSaved","setIsFileSaved","downloadingRef","useRef","getIdentityIdRef","anonUserIdRef","isInitializedRef","trackRef","rawOs","clientOS","OperativeSystem","defaultArch","rawArch","clientArch","osIcon","microsoftLogo","appleLogo","osLink","FALLBACK_CDN_RELEASE_LINKS","l","useCallback","id","values","productAction","steps","useMemo","spanTag","chunks","jsx","currentSteps","useEffect","cancelled","autoDownloadKey","getHistoryState","sessionKey","SegmentEvent","url","filename","calculateDownloadUrl","latestHistoryState","downloadUrl","addQueryParamsToUrlString","ANON_USER_ID_PARAM","triggerFileDownload","error","handleDownloadClick","event","getDownloadLinkWithIdentity","showBackdrop","backdropContent","jsxs","DownloadBackdropContent","Logo","DownloadDetailContainer","DownloadBackdropText","DownloadProgressContainer","DownloadProgressBar","DownloadSuccessLayout","_step","index","HighlightAnimation","Typography","SectionViewedTrack","LandingFooter"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index.umd-a4NuNlT_.js","assets/vendor-router-D_36sTKu.js","assets/vendor-sentry-BSvWNK4f.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{o as e}from"./index-
|
|
2
|
+
import{o as e}from"./index-_DB-noma.js";import{_ as n,a}from"./vendor-intl-D2lXWsDp.js";import"./vendor-router-D_36sTKu.js";import"./vendor-sentry-BSvWNK4f.js";import"./vendor-crypto-uuuQA3i5.js";import"./vendor-schemas-DJzTSxpO.js";import"./vendor-ua-D7qqAxdq.js";function d(i){return n(this,void 0,void 0,function(){var r;return a(this,function(t){switch(t.label){case 0:return[4,e(()=>import("./index.umd-a4NuNlT_.js").then(o=>o.i),__vite__mapDeps([0,1,2]))];case 1:return r=t.sent(),i._plugins=r,[2]}})})}export{d as loadLegacyVideoPlugins};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"mappings":";yQACO,SAASA,EAAuBC,EAAW,CAC9C,OAAOC,EAAU,KAAM,OAAQ,OAAQ,UAAY,CAC/C,IAAIC,EACJ,OAAOC,EAAY,KAAM,SAAUC,EAAI,CACnC,OAAQA,EAAG,MAAK,CACZ,IAAK,GAAG,MAAO,CAAC,EAAYC,EAAA,IAAC,OAEzB,yBAAuD,OAAAC,KAAA,4BAI3E,EACgB,IAAK,GACD,OAAAJ,EAAUE,EAAG,KAAI,EAIjBJ,EAAU,SAAWE,EACd,CAAC,CAAC,CAC7B,CACQ,CAAC,CACL,CAAC,CACL","names":["loadLegacyVideoPlugins","analytics","__awaiter","plugins","__generator","_a","__vitePreload","n"],"ignoreList":[0],"sources":["../../node_modules/@segment/analytics-next/dist/pkg/plugins/legacy-video-plugins/index.js"],"sourcesContent":["import { __awaiter, __generator } from \"tslib\";\nexport function loadLegacyVideoPlugins(analytics) {\n return __awaiter(this, void 0, void 0, function () {\n var plugins;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, import(\n // @ts-expect-error\n '@segment/analytics.js-video-plugins/dist/index.umd.js')\n // This is super gross, but we need to support the `window.analytics.plugins` namespace\n // that is linked in the segment docs in order to be backwards compatible with ajs-classic\n // @ts-expect-error\n ];\n case 1:\n plugins = _a.sent();\n // This is super gross, but we need to support the `window.analytics.plugins` namespace\n // that is linked in the segment docs in order to be backwards compatible with ajs-classic\n // @ts-expect-error\n analytics._plugins = plugins;\n return [2 /*return*/];\n }\n });\n });\n}\n//# sourceMappingURL=index.js.map"],"file":"assets/index-
|
|
1
|
+
{"version":3,"mappings":";yQACO,SAASA,EAAuBC,EAAW,CAC9C,OAAOC,EAAU,KAAM,OAAQ,OAAQ,UAAY,CAC/C,IAAIC,EACJ,OAAOC,EAAY,KAAM,SAAUC,EAAI,CACnC,OAAQA,EAAG,MAAK,CACZ,IAAK,GAAG,MAAO,CAAC,EAAYC,EAAA,IAAC,OAEzB,yBAAuD,OAAAC,KAAA,4BAI3E,EACgB,IAAK,GACD,OAAAJ,EAAUE,EAAG,KAAI,EAIjBJ,EAAU,SAAWE,EACd,CAAC,CAAC,CAC7B,CACQ,CAAC,CACL,CAAC,CACL","names":["loadLegacyVideoPlugins","analytics","__awaiter","plugins","__generator","_a","__vitePreload","n"],"ignoreList":[0],"sources":["../../node_modules/@segment/analytics-next/dist/pkg/plugins/legacy-video-plugins/index.js"],"sourcesContent":["import { __awaiter, __generator } from \"tslib\";\nexport function loadLegacyVideoPlugins(analytics) {\n return __awaiter(this, void 0, void 0, function () {\n var plugins;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, import(\n // @ts-expect-error\n '@segment/analytics.js-video-plugins/dist/index.umd.js')\n // This is super gross, but we need to support the `window.analytics.plugins` namespace\n // that is linked in the segment docs in order to be backwards compatible with ajs-classic\n // @ts-expect-error\n ];\n case 1:\n plugins = _a.sent();\n // This is super gross, but we need to support the `window.analytics.plugins` namespace\n // that is linked in the segment docs in order to be backwards compatible with ajs-classic\n // @ts-expect-error\n analytics._plugins = plugins;\n return [2 /*return*/];\n }\n });\n });\n}\n//# sourceMappingURL=index.js.map"],"file":"assets/index-CeX_Loqr.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as t,a as g,v as G,z as H,w as z,M as B,N,p as T,Z as R,$ as U,a0 as $,q as D,t as y,O as i,j as o,P as s,V as F,a1 as V,a2 as b,a3 as X,a4 as C,a5 as q,a6 as k,a7 as K,U as Q,a8 as Y,a9 as Z,aa as _}from"./index-
|
|
1
|
+
import{s as t,a as g,v as G,z as H,w as z,M as B,N,p as T,Z as R,$ as U,a0 as $,q as D,t as y,O as i,j as o,P as s,V as F,a1 as V,a2 as b,a3 as X,a4 as C,a5 as q,a6 as k,a7 as K,U as Q,a8 as Y,a9 as Z,aa as _}from"./index-_DB-noma.js";import{r as p}from"./vendor-router-D_36sTKu.js";import{A as J}from"./AnimatedBackground-ChAxvzpE.js";import"./vendor-crypto-uuuQA3i5.js";import"./vendor-schemas-DJzTSxpO.js";import"./vendor-sentry-BSvWNK4f.js";import"./vendor-ua-D7qqAxdq.js";import"./vendor-intl-D2lXWsDp.js";const oo=t(g)(({theme:e})=>({position:"relative",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"flex-start",width:"100%",height:800,overflow:"hidden",[e.breakpoints.down("sm")]:{height:480}})),eo=t("img")(({theme:e})=>({position:"absolute",top:"calc(35% - 20px)",left:"50%",transform:"translateX(-50%)",width:"auto",pointerEvents:"none",[e.breakpoints.down("sm")]:{position:"absolute",top:"auto",bottom:-50,left:"50%",transform:"translateX(-50%)",width:"auto",height:"65%",minWidth:"auto",maxWidth:"none"}})),no=t(g)(({theme:e})=>({position:"relative",zIndex:1,display:"flex",flexDirection:"column",alignItems:"center",gap:e.spacing(3),padding:e.spacing(10,8),[e.breakpoints.down("sm")]:{width:"100%",maxWidth:393,padding:e.spacing(6,2),gap:e.spacing(2)}})),to=t(G)(({theme:e})=>({color:H.white,fontWeight:600,fontSize:48,textAlign:"center",letterSpacing:-.5,[e.breakpoints.down("sm")]:{fontSize:32}})),ao=t(g)({display:"flex",alignItems:"center",gap:16,flexWrap:"wrap",justifyContent:"center",position:"relative",zIndex:1}),so=t("span")({display:"flex",alignItems:"center",gap:12,color:"#fff",fontSize:16,fontWeight:400,lineHeight:1.5,whiteSpace:"nowrap",minWidth:210}),lo=t("span")({width:1,height:20,backgroundColor:"rgba(255, 255, 255, 0.3)"}),io=t("span")(({theme:e})=>({display:"flex",gap:8,alignItems:"center","& a":{display:"flex",lineHeight:0},[e.breakpoints.down("sm")]:{"& a":{pointerEvents:"none",color:"inherit",textDecoration:"none"}}})),r=t("img")({width:24,height:24,filter:"brightness(0) invert(1)"});t("img")({width:32,height:32,filter:"brightness(0) invert(1)"});let v=null;const ro=p.memo(()=>{const e=z(),h=B(),{isDownloadModalOpen:O,closeDownloadModal:S,downloadModalProps:A,totalDownloads:I}=N(),[,n]=T(),[m,w]=R(async()=>U.get().getTotalDownloads(),[]),d=!w.loading&&w.loaded&&m?m:null;d&&(v=_(d));const f=$(d),M=f?_(f):v??"+400K",l=n?.os.name,u=!!n?.mobile,W=u&&l==="Android",[x,c]=p.useState(null),E=()=>W?o.jsx(b,{href:X,target:"_blank",rel:"noopener noreferrer",children:o.jsx(C,{src:q,alt:"Get it on Google Play"})}):o.jsx(b,{href:k.appStore,target:"_blank",rel:"noopener noreferrer",children:o.jsx(C,{src:s("/download-on-the-app-store.svg"),alt:"Download on the App Store"})}),L=p.useCallback(a=>{h(a),n&&(window.location.href=`/download_success?os=${n.os.name}`)},[h,n]),j=n?{[i.WINDOWS]:y,[i.MACOS]:D}[n.os.name]:null,P=()=>o.jsxs(o.Fragment,{children:[o.jsxs("div",{style:{display:"flex",gap:24,justifyContent:"center"},children:[o.jsxs(K,{href:n?`/download_success?os=${n.os.name}`:"/download","data-place":Q.LANDING_HERO,"data-event":"click",onClick:L,children:[e("page.download.download_for_short"),j?o.jsx("img",{src:j,alt:n?.os.name??"",width:32,height:32,style:{filter:"brightness(0) invert(1)"}}):o.jsx("span",{style:{display:"block",width:32,height:32,flexShrink:0}})]}),o.jsxs(Y,{href:k.epic,target:"_blank",rel:"noopener noreferrer",children:[e("page.download.download_on"),o.jsx("img",{src:s("/epic_icon.svg"),alt:"Epic Games",width:32,height:32,style:{filter:"brightness(0)"}})]})]}),o.jsxs(ao,{children:[o.jsxs(so,{children:[o.jsx(Z,{})," ",e("page.download.total_downloads",{downloads:M})]}),o.jsx(lo,{}),o.jsxs(io,{children:[l===i.MACOS&&o.jsx("a",{href:"/download_success?os=Windows",children:o.jsx(r,{src:y,alt:"Windows"})}),l===i.WINDOWS&&o.jsx("a",{href:"/download_success?os=macOS",children:o.jsx(r,{src:D,alt:"macOS"})}),!l&&o.jsx("span",{style:{display:"inline-block",width:24,height:24}}),o.jsx("a",{href:"#",onClick:a=>{a.preventDefault(),c("ios")},children:o.jsx(r,{src:s("/ios-logo.svg"),alt:"iOS"})}),o.jsx("a",{href:"#",onClick:a=>{a.preventDefault(),c("android")},children:o.jsx(r,{src:s("/google_play_icon.svg"),alt:"Android"})})]})]})]});return o.jsxs(oo,{children:[o.jsx(J,{variant:"absolute"}),o.jsxs(no,{children:[o.jsx(to,{variant:"h2",children:e("page.home.come_hang_out.title")}),u?E():P()]}),o.jsx(eo,{src:s("/come_hang_out_background.webp"),alt:"","aria-hidden":!0,width:1920,height:840,loading:"lazy"}),o.jsx(F,{open:O,onClose:S,...A}),x&&o.jsx(V,{open:!0,onClose:()=>c(null),os:x,i18n:{totalDownloads:`Total Downloads: ${I}`}})]})});ro.displayName="ComeHangOut";export{ro as ComeHangOut};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-BKY10VNY.js","sources":["../../src/components/Home/ComeHangOut/ComeHangOut.styled.ts","../../src/components/Home/ComeHangOut/ComeHangOut.tsx"],"sourcesContent":["import { Box, Typography, dclColors, styled } from 'decentraland-ui2'\n\nconst ComeHangOutContainer = styled(Box)(({ theme }) => ({\n position: 'relative',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'flex-start',\n width: '100%',\n height: 800,\n overflow: 'hidden',\n [theme.breakpoints.down('sm')]: {\n height: 480\n }\n}))\n\nconst AvatarsImage = styled('img')(({ theme }) => ({\n position: 'absolute',\n top: 'calc(35% - 20px)',\n left: '50%',\n transform: 'translateX(-50%)',\n width: 'auto',\n pointerEvents: 'none',\n [theme.breakpoints.down('sm')]: {\n position: 'absolute',\n top: 'auto',\n bottom: -50,\n left: '50%',\n transform: 'translateX(-50%)',\n width: 'auto',\n height: '65%',\n minWidth: 'auto',\n maxWidth: 'none'\n }\n}))\n\nconst Content = styled(Box)(({ theme }) => ({\n position: 'relative',\n zIndex: 1,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n gap: theme.spacing(3),\n padding: theme.spacing(10, 8),\n [theme.breakpoints.down('sm')]: {\n width: '100%',\n maxWidth: 393,\n padding: theme.spacing(6, 2),\n gap: theme.spacing(2)\n }\n}))\n\nconst Title = styled(Typography)(({ theme }) => ({\n color: dclColors.neutral.white,\n fontWeight: 600,\n fontSize: 48,\n textAlign: 'center',\n letterSpacing: -0.5,\n [theme.breakpoints.down('sm')]: {\n fontSize: 32\n }\n}))\n\nconst DownloadInfo = styled(Box)({\n display: 'flex',\n alignItems: 'center',\n gap: 16,\n flexWrap: 'wrap',\n justifyContent: 'center',\n position: 'relative',\n zIndex: 1\n})\n\nconst DownloadCounts = styled('span')({\n display: 'flex',\n alignItems: 'center',\n gap: 12,\n color: '#fff',\n fontSize: 16,\n fontWeight: 400,\n lineHeight: 1.5,\n whiteSpace: 'nowrap',\n minWidth: 210\n})\n\nconst DownloadSeparator = styled('span')({\n width: 1,\n height: 20,\n backgroundColor: 'rgba(255, 255, 255, 0.3)'\n})\n\nconst PlatformIcons = styled('span')(({ theme }) => ({\n display: 'flex',\n gap: 8,\n alignItems: 'center',\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '& a': {\n display: 'flex',\n lineHeight: 0\n },\n [theme.breakpoints.down('sm')]: {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '& a': {\n pointerEvents: 'none',\n color: 'inherit',\n textDecoration: 'none'\n }\n }\n}))\n\nconst PlatformIcon = styled('img')({\n width: 24,\n height: 24,\n filter: 'brightness(0) invert(1)'\n})\n\nconst OsIcon = styled('img')({\n width: 32,\n height: 32,\n filter: 'brightness(0) invert(1)'\n})\n\nexport {\n AvatarsImage,\n ComeHangOutContainer,\n Content,\n DownloadCounts,\n DownloadInfo,\n DownloadSeparator,\n OsIcon,\n PlatformIcon,\n PlatformIcons,\n Title\n}\nexport { HangOutButton } from '../shared/HangOutButton.styled'\nexport {\n ComingSoonIcon,\n ComingSoonRow,\n ComingSoonText,\n GooglePlayButton,\n GooglePlayImage,\n MobileSubtitle,\n SendLinkButton\n} from '../shared/MobileCTA.styled'\n","import { memo, useCallback, useState } from 'react'\nimport { useAdvancedUserAgentData, useAsyncMemo } from '@dcl/hooks'\nimport { AnimatedBackground, DownloadModal, DownloadQRModal } from 'decentraland-ui2'\nimport { useFormatMessage } from '../../../hooks/adapters/useFormatMessage'\nimport { useTrackClick } from '../../../hooks/adapters/useTrackLinkContext'\nimport { useAnimatedCounter } from '../../../hooks/useAnimatedCounter'\nimport { useHangOutAction } from '../../../hooks/useHangOutAction'\nimport appleLogo from '../../../images/apple-logo.svg'\nimport microsoftLogo from '../../../images/microsoft-logo.svg'\nimport { DOWNLOAD_URLS } from '../../../modules/downloadConstants'\nimport { ExplorerDownloads } from '../../../modules/explorerDownloads'\nimport { formatToShorthand } from '../../../modules/number'\nimport { SectionViewedTrack } from '../../../modules/segment'\nimport { OperativeSystem } from '../../../types/download.types'\nimport { assetUrl } from '../../../utils/assetUrl'\nimport { VerifiedIcon } from '../../Icon/VerifiedIcon'\nimport { DownloadButton, EpicButton } from '../Hero/Hero.styled'\nimport { GOOGLE_PLAY_MOBILE_URL, googlePlayBadge } from '../shared/googlePlay'\nimport {\n AvatarsImage,\n ComeHangOutContainer,\n Content,\n DownloadCounts,\n DownloadInfo,\n DownloadSeparator,\n GooglePlayButton,\n GooglePlayImage,\n PlatformIcon,\n PlatformIcons,\n Title\n} from './ComeHangOut.styled'\n\nlet cachedDownloadCounts: string | null = null\n\nconst ComeHangOut = memo(() => {\n const l = useFormatMessage()\n const onClickHandle = useTrackClick()\n const { isDownloadModalOpen, closeDownloadModal, downloadModalProps, totalDownloads } = useHangOutAction()\n const [, userAgentData] = useAdvancedUserAgentData()\n const [rawDownloads, rawDownloadsStatus] = useAsyncMemo(async () => ExplorerDownloads.get().getTotalDownloads(), [])\n\n const targetDownloads = !rawDownloadsStatus.loading && rawDownloadsStatus.loaded && rawDownloads ? rawDownloads : null\n if (targetDownloads) cachedDownloadCounts = formatToShorthand(targetDownloads)\n const animatedDownloads = useAnimatedCounter(targetDownloads)\n const downloadCountsFormatted = animatedDownloads ? formatToShorthand(animatedDownloads) : cachedDownloadCounts ?? '+400K'\n\n const currentOs = userAgentData?.os.name\n const isMobile = !!userAgentData?.mobile\n const isMobileAndroid = isMobile && currentOs === 'Android'\n\n // Mobile download modal for platform icon clicks\n const [mobileModalOs, setMobileModalOs] = useState<'ios' | 'android' | null>(null)\n\n const renderMobileContent = () => {\n if (isMobileAndroid) {\n return (\n <GooglePlayButton href={GOOGLE_PLAY_MOBILE_URL} target=\"_blank\" rel=\"noopener noreferrer\">\n <GooglePlayImage src={googlePlayBadge} alt=\"Get it on Google Play\" />\n </GooglePlayButton>\n )\n }\n\n return (\n <GooglePlayButton href={DOWNLOAD_URLS.appStore} target=\"_blank\" rel=\"noopener noreferrer\">\n <GooglePlayImage src={assetUrl('/download-on-the-app-store.svg')} alt=\"Download on the App Store\" />\n </GooglePlayButton>\n )\n }\n\n const handleDownloadClick = useCallback(\n (e: React.MouseEvent<HTMLElement>) => {\n onClickHandle(e)\n if (userAgentData) {\n window.location.href = `/download_success?os=${userAgentData.os.name}`\n }\n },\n [onClickHandle, userAgentData]\n )\n\n const osImage = userAgentData\n ? { [OperativeSystem.WINDOWS]: microsoftLogo, [OperativeSystem.MACOS]: appleLogo }[userAgentData.os.name]\n : null\n\n const renderDesktopContent = () => (\n <>\n <div style={{ display: 'flex', gap: 24, justifyContent: 'center' }}>\n <DownloadButton\n href={userAgentData ? `/download_success?os=${userAgentData.os.name}` : '/download'}\n data-place={SectionViewedTrack.LANDING_HERO}\n data-event=\"click\"\n onClick={handleDownloadClick}\n >\n {l('page.download.download_for_short')}\n {osImage ? (\n <img src={osImage} alt={userAgentData?.os.name ?? ''} width={32} height={32} style={{ filter: 'brightness(0) invert(1)' }} />\n ) : (\n <span style={{ display: 'block', width: 32, height: 32, flexShrink: 0 }} />\n )}\n </DownloadButton>\n <EpicButton href={DOWNLOAD_URLS.epic} target=\"_blank\" rel=\"noopener noreferrer\">\n {l('page.download.download_on')}\n <img src={assetUrl('/epic_icon.svg')} alt=\"Epic Games\" width={32} height={32} style={{ filter: 'brightness(0)' }} />\n </EpicButton>\n </div>\n <DownloadInfo>\n <DownloadCounts>\n <VerifiedIcon /> {l('page.download.total_downloads', { downloads: downloadCountsFormatted })}\n </DownloadCounts>\n <DownloadSeparator />\n <PlatformIcons>\n {currentOs === OperativeSystem.MACOS && (\n <a href=\"/download_success?os=Windows\">\n <PlatformIcon src={microsoftLogo} alt=\"Windows\" />\n </a>\n )}\n {currentOs === OperativeSystem.WINDOWS && (\n <a href=\"/download_success?os=macOS\">\n <PlatformIcon src={appleLogo} alt=\"macOS\" />\n </a>\n )}\n {!currentOs && <span style={{ display: 'inline-block', width: 24, height: 24 }} />}\n <a\n href=\"#\"\n onClick={e => {\n e.preventDefault()\n setMobileModalOs('ios')\n }}\n >\n <PlatformIcon src={assetUrl('/ios-logo.svg')} alt=\"iOS\" />\n </a>\n <a\n href=\"#\"\n onClick={e => {\n e.preventDefault()\n setMobileModalOs('android')\n }}\n >\n <PlatformIcon src={assetUrl('/google_play_icon.svg')} alt=\"Android\" />\n </a>\n </PlatformIcons>\n </DownloadInfo>\n </>\n )\n\n return (\n <ComeHangOutContainer>\n <AnimatedBackground variant=\"absolute\" />\n <Content>\n <Title variant=\"h2\">{l('page.home.come_hang_out.title')}</Title>\n {isMobile ? renderMobileContent() : renderDesktopContent()}\n </Content>\n <AvatarsImage src={assetUrl('/come_hang_out_background.webp')} alt=\"\" aria-hidden width={1920} height={840} loading=\"lazy\" />\n <DownloadModal open={isDownloadModalOpen} onClose={closeDownloadModal} {...downloadModalProps} />\n {mobileModalOs && (\n <DownloadQRModal\n open\n onClose={() => setMobileModalOs(null)}\n os={mobileModalOs}\n i18n={{ totalDownloads: `Total Downloads: ${totalDownloads}` }}\n />\n )}\n </ComeHangOutContainer>\n )\n})\n\nComeHangOut.displayName = 'ComeHangOut'\n\nexport { ComeHangOut }\n"],"names":["ComeHangOutContainer","styled","Box","theme","AvatarsImage","Content","Title","Typography","dclColors.neutral","DownloadInfo","DownloadCounts","DownloadSeparator","PlatformIcons","PlatformIcon","cachedDownloadCounts","ComeHangOut","memo","l","useFormatMessage","onClickHandle","useTrackClick","isDownloadModalOpen","closeDownloadModal","downloadModalProps","totalDownloads","useHangOutAction","userAgentData","useAdvancedUserAgentData","rawDownloads","rawDownloadsStatus","useAsyncMemo","ExplorerDownloads","targetDownloads","formatToShorthand","animatedDownloads","useAnimatedCounter","downloadCountsFormatted","currentOs","isMobile","isMobileAndroid","mobileModalOs","setMobileModalOs","useState","renderMobileContent","jsx","GooglePlayButton","GOOGLE_PLAY_MOBILE_URL","GooglePlayImage","googlePlayBadge","DOWNLOAD_URLS","assetUrl","handleDownloadClick","useCallback","e","osImage","OperativeSystem","microsoftLogo","appleLogo","renderDesktopContent","jsxs","Fragment","DownloadButton","SectionViewedTrack","EpicButton","VerifiedIcon","AnimatedBackground","DownloadModal","DownloadQRModal"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index-Cjz0nm3N.js","sources":["../../src/components/Home/ComeHangOut/ComeHangOut.styled.ts","../../src/components/Home/ComeHangOut/ComeHangOut.tsx"],"sourcesContent":["import { Box, Typography, dclColors, styled } from 'decentraland-ui2'\n\nconst ComeHangOutContainer = styled(Box)(({ theme }) => ({\n position: 'relative',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'flex-start',\n width: '100%',\n height: 800,\n overflow: 'hidden',\n [theme.breakpoints.down('sm')]: {\n height: 480\n }\n}))\n\nconst AvatarsImage = styled('img')(({ theme }) => ({\n position: 'absolute',\n top: 'calc(35% - 20px)',\n left: '50%',\n transform: 'translateX(-50%)',\n width: 'auto',\n pointerEvents: 'none',\n [theme.breakpoints.down('sm')]: {\n position: 'absolute',\n top: 'auto',\n bottom: -50,\n left: '50%',\n transform: 'translateX(-50%)',\n width: 'auto',\n height: '65%',\n minWidth: 'auto',\n maxWidth: 'none'\n }\n}))\n\nconst Content = styled(Box)(({ theme }) => ({\n position: 'relative',\n zIndex: 1,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n gap: theme.spacing(3),\n padding: theme.spacing(10, 8),\n [theme.breakpoints.down('sm')]: {\n width: '100%',\n maxWidth: 393,\n padding: theme.spacing(6, 2),\n gap: theme.spacing(2)\n }\n}))\n\nconst Title = styled(Typography)(({ theme }) => ({\n color: dclColors.neutral.white,\n fontWeight: 600,\n fontSize: 48,\n textAlign: 'center',\n letterSpacing: -0.5,\n [theme.breakpoints.down('sm')]: {\n fontSize: 32\n }\n}))\n\nconst DownloadInfo = styled(Box)({\n display: 'flex',\n alignItems: 'center',\n gap: 16,\n flexWrap: 'wrap',\n justifyContent: 'center',\n position: 'relative',\n zIndex: 1\n})\n\nconst DownloadCounts = styled('span')({\n display: 'flex',\n alignItems: 'center',\n gap: 12,\n color: '#fff',\n fontSize: 16,\n fontWeight: 400,\n lineHeight: 1.5,\n whiteSpace: 'nowrap',\n minWidth: 210\n})\n\nconst DownloadSeparator = styled('span')({\n width: 1,\n height: 20,\n backgroundColor: 'rgba(255, 255, 255, 0.3)'\n})\n\nconst PlatformIcons = styled('span')(({ theme }) => ({\n display: 'flex',\n gap: 8,\n alignItems: 'center',\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '& a': {\n display: 'flex',\n lineHeight: 0\n },\n [theme.breakpoints.down('sm')]: {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '& a': {\n pointerEvents: 'none',\n color: 'inherit',\n textDecoration: 'none'\n }\n }\n}))\n\nconst PlatformIcon = styled('img')({\n width: 24,\n height: 24,\n filter: 'brightness(0) invert(1)'\n})\n\nconst OsIcon = styled('img')({\n width: 32,\n height: 32,\n filter: 'brightness(0) invert(1)'\n})\n\nexport {\n AvatarsImage,\n ComeHangOutContainer,\n Content,\n DownloadCounts,\n DownloadInfo,\n DownloadSeparator,\n OsIcon,\n PlatformIcon,\n PlatformIcons,\n Title\n}\nexport { HangOutButton } from '../shared/HangOutButton.styled'\nexport {\n ComingSoonIcon,\n ComingSoonRow,\n ComingSoonText,\n GooglePlayButton,\n GooglePlayImage,\n MobileSubtitle,\n SendLinkButton\n} from '../shared/MobileCTA.styled'\n","import { memo, useCallback, useState } from 'react'\nimport { useAdvancedUserAgentData, useAsyncMemo } from '@dcl/hooks'\nimport { AnimatedBackground, DownloadModal, DownloadQRModal } from 'decentraland-ui2'\nimport { useFormatMessage } from '../../../hooks/adapters/useFormatMessage'\nimport { useTrackClick } from '../../../hooks/adapters/useTrackLinkContext'\nimport { useAnimatedCounter } from '../../../hooks/useAnimatedCounter'\nimport { useHangOutAction } from '../../../hooks/useHangOutAction'\nimport appleLogo from '../../../images/apple-logo.svg'\nimport microsoftLogo from '../../../images/microsoft-logo.svg'\nimport { DOWNLOAD_URLS } from '../../../modules/downloadConstants'\nimport { ExplorerDownloads } from '../../../modules/explorerDownloads'\nimport { formatToShorthand } from '../../../modules/number'\nimport { SectionViewedTrack } from '../../../modules/segment'\nimport { OperativeSystem } from '../../../types/download.types'\nimport { assetUrl } from '../../../utils/assetUrl'\nimport { VerifiedIcon } from '../../Icon/VerifiedIcon'\nimport { DownloadButton, EpicButton } from '../Hero/Hero.styled'\nimport { GOOGLE_PLAY_MOBILE_URL, googlePlayBadge } from '../shared/googlePlay'\nimport {\n AvatarsImage,\n ComeHangOutContainer,\n Content,\n DownloadCounts,\n DownloadInfo,\n DownloadSeparator,\n GooglePlayButton,\n GooglePlayImage,\n PlatformIcon,\n PlatformIcons,\n Title\n} from './ComeHangOut.styled'\n\nlet cachedDownloadCounts: string | null = null\n\nconst ComeHangOut = memo(() => {\n const l = useFormatMessage()\n const onClickHandle = useTrackClick()\n const { isDownloadModalOpen, closeDownloadModal, downloadModalProps, totalDownloads } = useHangOutAction()\n const [, userAgentData] = useAdvancedUserAgentData()\n const [rawDownloads, rawDownloadsStatus] = useAsyncMemo(async () => ExplorerDownloads.get().getTotalDownloads(), [])\n\n const targetDownloads = !rawDownloadsStatus.loading && rawDownloadsStatus.loaded && rawDownloads ? rawDownloads : null\n if (targetDownloads) cachedDownloadCounts = formatToShorthand(targetDownloads)\n const animatedDownloads = useAnimatedCounter(targetDownloads)\n const downloadCountsFormatted = animatedDownloads ? formatToShorthand(animatedDownloads) : cachedDownloadCounts ?? '+400K'\n\n const currentOs = userAgentData?.os.name\n const isMobile = !!userAgentData?.mobile\n const isMobileAndroid = isMobile && currentOs === 'Android'\n\n // Mobile download modal for platform icon clicks\n const [mobileModalOs, setMobileModalOs] = useState<'ios' | 'android' | null>(null)\n\n const renderMobileContent = () => {\n if (isMobileAndroid) {\n return (\n <GooglePlayButton href={GOOGLE_PLAY_MOBILE_URL} target=\"_blank\" rel=\"noopener noreferrer\">\n <GooglePlayImage src={googlePlayBadge} alt=\"Get it on Google Play\" />\n </GooglePlayButton>\n )\n }\n\n return (\n <GooglePlayButton href={DOWNLOAD_URLS.appStore} target=\"_blank\" rel=\"noopener noreferrer\">\n <GooglePlayImage src={assetUrl('/download-on-the-app-store.svg')} alt=\"Download on the App Store\" />\n </GooglePlayButton>\n )\n }\n\n const handleDownloadClick = useCallback(\n (e: React.MouseEvent<HTMLElement>) => {\n onClickHandle(e)\n if (userAgentData) {\n window.location.href = `/download_success?os=${userAgentData.os.name}`\n }\n },\n [onClickHandle, userAgentData]\n )\n\n const osImage = userAgentData\n ? { [OperativeSystem.WINDOWS]: microsoftLogo, [OperativeSystem.MACOS]: appleLogo }[userAgentData.os.name]\n : null\n\n const renderDesktopContent = () => (\n <>\n <div style={{ display: 'flex', gap: 24, justifyContent: 'center' }}>\n <DownloadButton\n href={userAgentData ? `/download_success?os=${userAgentData.os.name}` : '/download'}\n data-place={SectionViewedTrack.LANDING_HERO}\n data-event=\"click\"\n onClick={handleDownloadClick}\n >\n {l('page.download.download_for_short')}\n {osImage ? (\n <img src={osImage} alt={userAgentData?.os.name ?? ''} width={32} height={32} style={{ filter: 'brightness(0) invert(1)' }} />\n ) : (\n <span style={{ display: 'block', width: 32, height: 32, flexShrink: 0 }} />\n )}\n </DownloadButton>\n <EpicButton href={DOWNLOAD_URLS.epic} target=\"_blank\" rel=\"noopener noreferrer\">\n {l('page.download.download_on')}\n <img src={assetUrl('/epic_icon.svg')} alt=\"Epic Games\" width={32} height={32} style={{ filter: 'brightness(0)' }} />\n </EpicButton>\n </div>\n <DownloadInfo>\n <DownloadCounts>\n <VerifiedIcon /> {l('page.download.total_downloads', { downloads: downloadCountsFormatted })}\n </DownloadCounts>\n <DownloadSeparator />\n <PlatformIcons>\n {currentOs === OperativeSystem.MACOS && (\n <a href=\"/download_success?os=Windows\">\n <PlatformIcon src={microsoftLogo} alt=\"Windows\" />\n </a>\n )}\n {currentOs === OperativeSystem.WINDOWS && (\n <a href=\"/download_success?os=macOS\">\n <PlatformIcon src={appleLogo} alt=\"macOS\" />\n </a>\n )}\n {!currentOs && <span style={{ display: 'inline-block', width: 24, height: 24 }} />}\n <a\n href=\"#\"\n onClick={e => {\n e.preventDefault()\n setMobileModalOs('ios')\n }}\n >\n <PlatformIcon src={assetUrl('/ios-logo.svg')} alt=\"iOS\" />\n </a>\n <a\n href=\"#\"\n onClick={e => {\n e.preventDefault()\n setMobileModalOs('android')\n }}\n >\n <PlatformIcon src={assetUrl('/google_play_icon.svg')} alt=\"Android\" />\n </a>\n </PlatformIcons>\n </DownloadInfo>\n </>\n )\n\n return (\n <ComeHangOutContainer>\n <AnimatedBackground variant=\"absolute\" />\n <Content>\n <Title variant=\"h2\">{l('page.home.come_hang_out.title')}</Title>\n {isMobile ? renderMobileContent() : renderDesktopContent()}\n </Content>\n <AvatarsImage src={assetUrl('/come_hang_out_background.webp')} alt=\"\" aria-hidden width={1920} height={840} loading=\"lazy\" />\n <DownloadModal open={isDownloadModalOpen} onClose={closeDownloadModal} {...downloadModalProps} />\n {mobileModalOs && (\n <DownloadQRModal\n open\n onClose={() => setMobileModalOs(null)}\n os={mobileModalOs}\n i18n={{ totalDownloads: `Total Downloads: ${totalDownloads}` }}\n />\n )}\n </ComeHangOutContainer>\n )\n})\n\nComeHangOut.displayName = 'ComeHangOut'\n\nexport { ComeHangOut }\n"],"names":["ComeHangOutContainer","styled","Box","theme","AvatarsImage","Content","Title","Typography","dclColors.neutral","DownloadInfo","DownloadCounts","DownloadSeparator","PlatformIcons","PlatformIcon","cachedDownloadCounts","ComeHangOut","memo","l","useFormatMessage","onClickHandle","useTrackClick","isDownloadModalOpen","closeDownloadModal","downloadModalProps","totalDownloads","useHangOutAction","userAgentData","useAdvancedUserAgentData","rawDownloads","rawDownloadsStatus","useAsyncMemo","ExplorerDownloads","targetDownloads","formatToShorthand","animatedDownloads","useAnimatedCounter","downloadCountsFormatted","currentOs","isMobile","isMobileAndroid","mobileModalOs","setMobileModalOs","useState","renderMobileContent","jsx","GooglePlayButton","GOOGLE_PLAY_MOBILE_URL","GooglePlayImage","googlePlayBadge","DOWNLOAD_URLS","assetUrl","handleDownloadClick","useCallback","e","osImage","OperativeSystem","microsoftLogo","appleLogo","renderDesktopContent","jsxs","Fragment","DownloadButton","SectionViewedTrack","EpicButton","VerifiedIcon","AnimatedBackground","DownloadModal","DownloadQRModal"],"mappings":"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"}
|