{"version":3,"file":"HomePage-DSvJ3J6X.js","sources":["../../src/components/Home/FeaturedCollections.tsx","../../src/components/Home/CreatorsCard.tsx","../../src/components/Home/FeaturedCreators.tsx","../../src/components/Home/FeaturedDapps.tsx","../../src/components/Home/FeaturedItems.tsx","../../src/components/Home/GuidesUpdatesCarousel.tsx","../../node_modules/embla-carousel-autoplay/embla-carousel-autoplay.esm.js","../../src/components/Home/WhatsNew.tsx","../../src/components/Home/HomePage.tsx"],"sourcesContent":["import { useQuery } from '@apollo/client'\nimport { Carousel } from '@mantine/carousel'\nimport { Stack, Title, useMantineTheme } from '@mantine/core'\nimport { useMediaQuery } from '@mantine/hooks'\nimport { IconCaretLeftFilled, IconCaretRightFilled } from '@tabler/icons-react'\nimport { Entry } from 'contentful'\nimport { useCallback, useEffect, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useNavigate } from 'react-router-dom'\n\nimport { explorePageActive } from '@/constants/blockchain'\nimport { useErrorMessages } from '@/constants/content'\nimport useSessionStorage from '@/hooks/useSessionStorage'\nimport { FEATURED_COLLECTIONS_CONTENT_TYPE } from '@/plugins/contentful/api'\nimport client from '@/plugins/contentful/client'\nimport { GetCollectionsByIds, QUERY_GET_COLLECTIONS_BY_IDS } from '@/schemas/collections.schema'\nimport { CollectionWithTotal } from '@/schemas/types'\nimport { ErrorMessageDisplay, shuffleArray } from '@/utils/utils'\n\nimport RootButton from '../Buttons/RootButton'\nimport ErrorMessage from '../ErrorMessage'\nimport CollectionsCard from '../Items/CollectionsCard'\nimport Loading from '../Loading'\n\nconst FeaturedCollections: React.FC = () => {\n const { t } = useTranslation()\n const navigate = useNavigate()\n const theme = useMantineTheme()\n const isMobile = useMediaQuery(`(max-width: ${theme.breakpoints.sm})`)\n\n const errorMessages = useErrorMessages()\n const [isLoading, setIsLoading] = useState(false)\n const [error, setError] = useState()\n const [hasFetched, setHasFetched] = useState(false)\n const [featuredCollectionsContent, setFeaturedCollectionsContent] = useSessionStorage(\n `featuredCollections`,\n []\n )\n\n const [collectionsIds, setCollectionsIds] = useState([])\n const [sortedCollections, setSortedCollections] = useState([])\n\n // Carousel state management\n const [slideNumber, setSlideNumber] = useState(0)\n const handleSlideChange = useCallback((index: number) => {\n setSlideNumber(index)\n }, [])\n\n useEffect(() => {\n if (!featuredCollectionsContent.length && !hasFetched) {\n setIsLoading(true)\n client\n .getEntries({ content_type: FEATURED_COLLECTIONS_CONTENT_TYPE })\n .then((response: any) => {\n setFeaturedCollectionsContent(response.items)\n if (response.items.length < 1) {\n setHasFetched(true)\n }\n })\n .catch((e: any) => {\n setError({\n message: errorMessages.cmsConnection,\n details: e.message,\n })\n setIsLoading(false)\n })\n .finally(() => {\n setIsLoading(false)\n })\n }\n }, [featuredCollectionsContent, setFeaturedCollectionsContent, hasFetched])\n\n const { data } = useQuery(QUERY_GET_COLLECTIONS_BY_IDS, {\n variables: {\n ids: collectionsIds,\n },\n })\n\n // get ids array from contentful\n useEffect(() => {\n if (featuredCollectionsContent.length > 0) {\n const newIds = featuredCollectionsContent.map(\n (item: Entry) => item.fields.collectionID as string\n )\n setCollectionsIds(newIds)\n }\n }, [featuredCollectionsContent])\n\n // make sure the nfts are sorted in the same order as the ids, since graphql doesn't guarantee order\n useEffect(() => {\n if (data) {\n const sortedData = collectionsIds\n // map the ids to the nfts\n .map(id => data.collection.find(nft => nft.id === id))\n // filter out the undefined values\n .filter(nft => nft !== undefined)\n if (sortedData.length > 0) {\n const shuffledCollections = shuffleArray(sortedData)\n setSortedCollections(shuffledCollections)\n }\n }\n }, [data, collectionsIds])\n\n const handleViewAll = useCallback(() => {\n navigate('/explore/collections')\n }, [navigate])\n\n return (\n featuredCollectionsContent.length > 0 && (\n \n \n \n {t(`components.featuredCollections.title`, 'Content Collections')}\n \n {explorePageActive && (\n \n {t(`components.featuredCreators.viewAll`, 'View All')}\n \n )}\n \n {isLoading && }\n {error && }\n {!isLoading && !error && (\n \n }\n nextControlIcon={}\n slidesToScroll=\"auto\"\n onSlideChange={handleSlideChange}\n >\n {collectionsIds.length > 0 &&\n collectionsIds.map(\n (collection, index) =>\n sortedCollections[index] &&\n // only load the items that are in the current slideshow window\n // TODO: make this dynamic based on the screen size (currently 7 item by default)\n (slideNumber + 1) * 7 > index && (\n \n \n \n )\n )}\n \n \n )}\n \n )\n )\n}\n\nexport default FeaturedCollections\n","import { Stack } from '@mantine/core'\nimport React, { useCallback, useMemo } from 'react'\nimport { useNavigate } from 'react-router-dom'\n\nimport useLocalStorage from '@/hooks/useLocalStorage'\nimport useProfilePath from '@/hooks/useProfilePath'\nimport { getDefaultProfileImage } from '@/plugins/auth/AuthProvider/effects/functions'\n\nimport { CreatorProfile, StoredTheme } from '../../utils/utils'\nimport UserDetails from '../Details/UserDetails/UserDetails'\nimport itemCardClasses from '../Items/ItemsCard.module.css'\nimport Loading from '../Loading'\nimport ImageWrapper from '../MediaWrappers/ImageWrapper'\nimport classes from './CreatorsCard.module.css'\n\ninterface CreatorsCardProps {\n elem: CreatorProfile\n imageSize?: number\n}\n\nconst CreatorsCard: React.FC = ({ elem, imageSize = 180 }) => {\n const navigate = useNavigate()\n // default profile images\n const [userTheme] = useLocalStorage('userTheme')\n const defaultPfp = useMemo(() => getDefaultProfileImage(userTheme?.isLightMode), [userTheme])\n const profilePath = useProfilePath(elem.address as `0x${string}`)\n\n const handleNavigation = useCallback(() => {\n if (elem) {\n navigate(profilePath)\n }\n }, [elem])\n\n return (\n \n {elem ? (\n \n ) : (\n \n )}\n\n {elem && elem?.profile?.name && (\n \n \n \n )}\n \n )\n}\n\nexport default CreatorsCard\n","import { Carousel } from '@mantine/carousel'\nimport { Stack, Title, useMantineTheme } from '@mantine/core'\nimport { useMediaQuery } from '@mantine/hooks'\nimport { IconCaretLeftFilled, IconCaretRightFilled } from '@tabler/icons-react'\nimport { Entry } from 'contentful'\nimport { useCallback, useEffect, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useNavigate } from 'react-router'\n\nimport { explorePageActive } from '@/constants/blockchain'\nimport { useErrorMessages } from '@/constants/content'\nimport useL1NS from '@/hooks/useL1NS'\nimport useSessionStorage from '@/hooks/useSessionStorage'\nimport { FEATURED_CREATORS_CONTENT_TYPE } from '@/plugins/contentful/api'\nimport client from '@/plugins/contentful/client'\nimport { CreatorProfile, ErrorMessageDisplay, shuffleArray } from '@/utils/utils'\n\nimport RootButton from '../Buttons/RootButton'\nimport ErrorMessage from '../ErrorMessage'\nimport Loading from '../Loading'\nimport { loadProfile } from '../Profile/metadata'\nimport CreatorsCard from './CreatorsCard'\n\nconst FeaturedCreators: React.FC = () => {\n const { t } = useTranslation()\n const navigate = useNavigate()\n const { getL1nsProfile } = useL1NS()\n const theme = useMantineTheme()\n const isMobile = useMediaQuery(`(max-width: ${theme.breakpoints.sm})`)\n\n const errorMessages = useErrorMessages()\n const [isLoading, setIsLoading] = useState(false)\n const [error, setError] = useState()\n const [hasFetched, setHasFetched] = useState(false)\n const [featuredCreatorsContent, setFeaturedCreatorsContent] = useSessionStorage(\n `featuredCreators`,\n []\n )\n\n const [creatorProfiles, setCreatorProfiles] = useState([])\n\n // Carousel state management\n const [slideNumber, setSlideNumber] = useState(0)\n const handleSlideChange = useCallback((index: number) => {\n setSlideNumber(index)\n }, [])\n\n useEffect(() => {\n if (!featuredCreatorsContent.length && !hasFetched) {\n setIsLoading(true)\n client\n .getEntries({ content_type: FEATURED_CREATORS_CONTENT_TYPE })\n .then((response: any) => {\n setFeaturedCreatorsContent(response.items)\n if (response.items.length < 1) {\n setHasFetched(true)\n }\n })\n .catch((e: any) => {\n setError({\n message: errorMessages.cmsConnection,\n details: e.message,\n })\n setIsLoading(false)\n })\n .finally(() => {\n setIsLoading(false)\n })\n }\n }, [featuredCreatorsContent, setFeaturedCreatorsContent, hasFetched])\n\n const getCreatorProfiles = useCallback(async () => {\n try {\n setIsLoading(true)\n\n const profilePromises = featuredCreatorsContent.map(async item => {\n const { address } = item.fields\n\n // Get profile url from contract\n const profileUrl = await getL1nsProfile(address as string)\n\n // Load profile from IPFS\n if (profileUrl) {\n const p = await loadProfile(profileUrl)\n if (p) {\n return { address: address as string, profile: p }\n }\n }\n return null\n })\n\n const profiles = await Promise.all(profilePromises)\n\n // Filter out null values\n const newProfiles = profiles.filter(Boolean) as CreatorProfile[]\n\n // Shuffle the array\n const shuffledProfiles = shuffleArray(newProfiles)\n\n setCreatorProfiles(shuffledProfiles)\n setIsLoading(false)\n } catch (e: any) {\n console.error(e.message)\n setError({\n message: errorMessages.rpcIdentityConnection,\n details: e.message,\n })\n setIsLoading(false)\n }\n }, [featuredCreatorsContent])\n\n useEffect(() => {\n getCreatorProfiles()\n }, [featuredCreatorsContent])\n\n const handleViewAll = useCallback(() => {\n navigate('/explore/creators')\n }, [navigate])\n\n return (\n featuredCreatorsContent.length > 0 && (\n \n \n \n {t(`components.featuredCreators.title`, 'Featured Creators')}\n \n {explorePageActive && (\n \n {t(`components.featuredCreators.viewAll`, 'View All')}\n \n )}\n \n {isLoading && }\n {error && }\n {!isLoading && !error && (\n \n }\n nextControlIcon={}\n slidesToScroll=\"auto\"\n onSlideChange={handleSlideChange}\n >\n {creatorProfiles.map(\n (creator, index) =>\n creator &&\n // only load the items that are in the current slideshow window\n // TODO: make this dynamic based on the screen size (currently 7 item by default)\n (slideNumber + 1) * 7 > index && (\n \n \n \n )\n )}\n \n \n )}\n \n )\n )\n}\n\nexport default FeaturedCreators\n","import { Carousel } from '@mantine/carousel'\nimport { Stack, Title, useMantineTheme } from '@mantine/core'\nimport { useMediaQuery } from '@mantine/hooks'\nimport { IconCaretLeftFilled, IconCaretRightFilled } from '@tabler/icons-react'\nimport { Entry } from 'contentful'\nimport { useCallback, useEffect, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useNavigate } from 'react-router-dom'\n\nimport { useErrorMessages } from '@/constants/content'\nimport useSessionStorage from '@/hooks/useSessionStorage'\nimport { FEATURED_DAPPS_CONTENT_TYPE } from '@/plugins/contentful/api'\nimport client from '@/plugins/contentful/client'\nimport { ErrorMessageDisplay, shuffleArray } from '@/utils/utils'\n\nimport UserDetails from '../Details/UserDetails/UserDetails'\nimport ErrorMessage from '../ErrorMessage'\nimport itemCardClasses from '../Items/ItemsCard.module.css'\nimport Loading from '../Loading'\nimport ImageWrapper from '../MediaWrappers/ImageWrapper'\nimport classes from './CreatorsCard.module.css'\n\ninterface FeaturedDapp {\n dappName: string\n creatorAddress: string\n url: string\n image: string\n}\n\nconst imageSize = 290\n\nconst FeaturedDapps: React.FC = () => {\n const { t } = useTranslation()\n const navigate = useNavigate()\n const theme = useMantineTheme()\n const isMobile = useMediaQuery(`(max-width: ${theme.breakpoints.sm})`)\n\n const errorMessages = useErrorMessages()\n const [isLoading, setIsLoading] = useState(false)\n const [error, setError] = useState()\n const [hasFetched, setHasFetched] = useState(false)\n const [featuredDappsContent, setFeaturedDappsContent] = useSessionStorage(\n `featuredDapps`,\n []\n )\n\n const [dapps, setDapps] = useState([])\n\n // Carousel state management\n const [slideNumber, setSlideNumber] = useState(0)\n const handleSlideChange = useCallback((index: number) => {\n setSlideNumber(index)\n }, [])\n\n useEffect(() => {\n if (!featuredDappsContent.length && !hasFetched) {\n setIsLoading(true)\n client\n .getEntries({ content_type: FEATURED_DAPPS_CONTENT_TYPE })\n .then((response: any) => {\n setFeaturedDappsContent(response.items)\n if (response.items.length < 1) {\n setHasFetched(true)\n }\n })\n .catch((e: any) => {\n setError({\n message: errorMessages.cmsConnection,\n details: e.message,\n })\n setIsLoading(false)\n })\n .finally(() => {\n setIsLoading(false)\n })\n }\n }, [featuredDappsContent, setFeaturedDappsContent, hasFetched])\n\n const getDappFromCMS = useCallback(async () => {\n try {\n setIsLoading(true)\n\n const featuredDapps = featuredDappsContent.map(async item => {\n const { dappName, creatorAddress, url, image } = item.fields\n\n let imageUrl = ''\n if (\n typeof image === 'object' &&\n image &&\n JSON.parse(JSON.stringify(image))?.fields?.file?.url\n ) {\n imageUrl = JSON.parse(JSON.stringify(image)).fields.file.url\n }\n\n return {\n dappName,\n creatorAddress,\n url,\n image: imageUrl,\n }\n })\n\n // Filter out null values\n const collectionTiles = (await Promise.all(featuredDapps)).filter(Boolean) as FeaturedDapp[]\n\n // Shuffle the array\n const shuffledDappTiles = shuffleArray(collectionTiles)\n setDapps(shuffledDappTiles)\n setIsLoading(false)\n } catch (e: any) {\n console.error(e.message)\n setError({\n message: errorMessages.rpcIdentityConnection,\n details: e.message,\n })\n setIsLoading(false)\n }\n }, [featuredDappsContent])\n\n useEffect(() => {\n getDappFromCMS()\n }, [featuredDappsContent])\n\n const handleNavigation = useCallback(\n (index: number) => {\n const dapp = dapps[index]\n if (dapp) {\n window.open(dapp.url, '_blank')\n }\n },\n [dapps, navigate]\n )\n\n return (\n featuredDappsContent.length > 0 && (\n \n \n {t(`components.featuredDapps.title`, 'On-Chain Projects')}\n \n {isLoading && }\n {error && }\n {!isLoading && !error && (\n \n }\n nextControlIcon={}\n slidesToScroll=\"auto\"\n onSlideChange={handleSlideChange}\n >\n {dapps.map(\n (dapp, index) =>\n dapp &&\n // only load the items that are in the current slideshow window\n // TODO: make this dynamic based on the screen size (currently 7 item by default)\n (slideNumber + 1) * 7 > index && (\n \n handleNavigation(index)}\n className={itemCardClasses.card}\n >\n {dapp.image ? (\n \n ) : (\n \n )}\n {dapp.dappName && (\n \n {dapp.creatorAddress && (\n \n )}\n \n {dapp.dappName}\n \n \n )}\n \n \n )\n )}\n \n \n )}\n \n )\n )\n}\n\nexport default FeaturedDapps\n","import { useQuery } from '@apollo/client'\nimport { Carousel } from '@mantine/carousel'\nimport { Stack, Title, useMantineTheme } from '@mantine/core'\nimport { useMediaQuery } from '@mantine/hooks'\nimport { IconCaretLeftFilled, IconCaretRightFilled } from '@tabler/icons-react'\nimport { Entry } from 'contentful'\nimport { useCallback, useEffect, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useNavigate } from 'react-router'\n\nimport { explorePageActive } from '@/constants/blockchain'\nimport { useErrorMessages } from '@/constants/content'\nimport useSessionStorage from '@/hooks/useSessionStorage'\nimport { FEATURED_ITEMS_CONTENT_TYPE } from '@/plugins/contentful/api'\nimport client from '@/plugins/contentful/client'\nimport { GetItemsByIds, QUERY_GET_ITEMS_BY_IDS } from '@/schemas/tokens.schema'\nimport { TokenBase } from '@/schemas/types'\nimport { shuffleArray } from '@/utils/utils'\n\nimport RootButton from '../Buttons/RootButton'\nimport ErrorMessage from '../ErrorMessage'\nimport ItemsCard from '../Items/ItemsCard'\nimport Loading from '../Loading'\n\nconst FeaturedItems: React.FC = () => {\n const { t } = useTranslation()\n const theme = useMantineTheme()\n const navigate = useNavigate()\n\n const isMobile = useMediaQuery(`(max-width: ${theme.breakpoints.sm})`)\n\n const errorMessages = useErrorMessages()\n const [isLoading, setIsLoading] = useState(false)\n const [error, setError] = useState('')\n const [hasFetched, setHasFetched] = useState(false)\n const [featuredItemsContent, setFeaturedItemsContent] = useSessionStorage(\n `featuredItems`,\n []\n )\n const [itemsIds, setItemsIds] = useState([])\n const [sortedItemsMetadata, setSortedItemsMetadata] = useState([])\n\n // Carousel state management\n const [slideNumber, setSlideNumber] = useState(0)\n const handleSlideChange = useCallback((index: number) => {\n setSlideNumber(index)\n }, [])\n\n // get nfts by ids\n const {\n loading: loadingQuery,\n error: errorQuery,\n data,\n } = useQuery(QUERY_GET_ITEMS_BY_IDS, {\n variables: {\n ids: itemsIds,\n },\n skip: itemsIds.length === 0,\n })\n\n // get ids array from contentful\n useEffect(() => {\n if (featuredItemsContent.length > 0) {\n const newIds = featuredItemsContent.map((item: Entry) => item.fields.itemId as string)\n setItemsIds(newIds)\n }\n }, [featuredItemsContent])\n\n // make sure the nfts are sorted in the same order as the ids, since graphql doesn't guarantee order\n useEffect(() => {\n if (data) {\n const sortedData = itemsIds\n // map the ids to the nfts\n .map(id => data.tokens.find(nft => nft.id === id))\n // filter out the undefined values\n .filter(nft => nft !== undefined)\n if (sortedData.length > 0) {\n const shuffledItems: TokenBase[] = shuffleArray(sortedData)\n setSortedItemsMetadata(shuffledItems)\n }\n }\n }, [data, itemsIds])\n\n useEffect(() => {\n if (!featuredItemsContent.length && !hasFetched) {\n setIsLoading(true)\n console.log('fetching')\n client\n .getEntries({ content_type: FEATURED_ITEMS_CONTENT_TYPE })\n .then((response: any) => {\n setFeaturedItemsContent(response.items)\n if (response.items.length < 1) {\n setHasFetched(true)\n }\n })\n .catch((err: any) => {\n setError(err.message)\n setIsLoading(false)\n })\n .finally(() => {\n setIsLoading(false)\n })\n }\n }, [featuredItemsContent, hasFetched, setFeaturedItemsContent])\n\n const handleViewAll = useCallback(() => {\n navigate('/explore/items')\n }, [navigate])\n\n return (\n featuredItemsContent.length > 0 && (\n \n \n \n {t(`components.featuredItems.title`, 'Must-See Content')}\n \n {explorePageActive && (\n \n {t(`components.featuredCreators.viewAll`, 'View All')}\n \n )}\n \n {(isLoading || loadingQuery) && }\n {error && }\n {errorQuery && (\n \n )}\n {!isLoading && !error && !loadingQuery && !errorQuery && (\n <>\n \n }\n nextControlIcon={}\n slidesToScroll=\"auto\"\n onSlideChange={handleSlideChange}\n >\n {itemsIds.length > 0 &&\n itemsIds.map(\n (creator, index) =>\n sortedItemsMetadata[index] &&\n // only load the items that are in the current slideshow window\n // TODO: make this dynamic based on the screen size (currently 5 item by default)\n (slideNumber + 1) * 5 > index && (\n \n \n \n )\n )}\n \n \n \n )}\n \n )\n )\n}\n\nexport default FeaturedItems\n","import { Carousel } from '@mantine/carousel'\nimport { Center, Stack, Title, useMantineTheme } from '@mantine/core'\nimport { useMediaQuery } from '@mantine/hooks'\nimport { IconCaretLeftFilled, IconCaretRightFilled } from '@tabler/icons-react'\nimport React, { useEffect, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport { useErrorMessages } from '@/constants/content'\nimport useSessionStorage from '@/hooks/useSessionStorage'\nimport { Entry, GUIDES_UPDATES_CONTENT_TYPE } from '@/plugins/contentful/api'\nimport client from '@/plugins/contentful/client'\n\nimport {\n GalleryElementsImagesByEntryId,\n pullGalleryImage,\n wrapData,\n} from '../Discover/DiscoverCarousel'\nimport ErrorMessage from '../ErrorMessage'\nimport { CTACard } from '../GetStarted'\nimport Loading from '../Loading'\n\nconst GuidesUpdatesCarousel: React.FC = () => {\n const {\n t,\n i18n: { language },\n } = useTranslation()\n const theme = useMantineTheme()\n const isMobile = useMediaQuery(`(max-width: ${theme.breakpoints.sm})`)\n\n const errorMessages = useErrorMessages()\n const [isLoading, setIsLoading] = useState(false)\n const [error, setError] = useState('')\n const [hasFetched, setHasFetched] = useState(false)\n const [guidesUpdates, setGuidesUpdates] = useSessionStorage(\n `guidesUpdates-${language}`,\n []\n )\n const [galleryImageByEntry, setGalleryImageByEntry] = useState({})\n\n useEffect(() => {\n if (!guidesUpdates.length && !hasFetched) {\n setIsLoading(true)\n client\n .getEntries({ content_type: GUIDES_UPDATES_CONTENT_TYPE, locale: language })\n .then((response: any) => {\n const sortedContent = response.items.sort(\n (a: Entry, b: Entry) => Number(a.fields.order) - Number(b.fields.order)\n )\n setGuidesUpdates(sortedContent)\n if (response.items.length < 1) {\n setHasFetched(true)\n }\n })\n .catch((err: any) => {\n setError(err.message)\n setIsLoading(false)\n })\n .finally(() => {\n setIsLoading(false)\n })\n }\n }, [guidesUpdates, hasFetched, setGuidesUpdates, t, language])\n\n useEffect(() => {\n if (guidesUpdates) {\n setGalleryImageByEntry(oldGalleryImageByEntry =>\n pullGalleryImage(guidesUpdates, oldGalleryImageByEntry, setGalleryImageByEntry)\n )\n }\n }, [guidesUpdates])\n\n return (\n
\n {isLoading && }\n {error && }\n {!isLoading && !error && (\n \n \n {t(`components.guidesUpdates.titleHomepage`, 'Guides & Updates')}\n \n\n \n }\n nextControlIcon={}\n slidesToScroll=\"auto\"\n >\n {guidesUpdates &&\n guidesUpdates.map((elem, index) => {\n const card = wrapData(elem, galleryImageByEntry)\n return (\n \n \n \n )\n })}\n \n \n \n )}\n
\n )\n}\n\nexport default GuidesUpdatesCarousel\n","import EmblaCarousel from 'embla-carousel';\n\nvar defaultOptions = {\n active: true,\n breakpoints: {},\n delay: 4000,\n jump: false,\n playOnInit: true,\n stopOnInteraction: true,\n stopOnMouseEnter: false,\n stopOnLastSnap: false,\n rootNode: null\n};\n\nfunction Autoplay(userOptions) {\n var optionsHandler = EmblaCarousel.optionsHandler();\n var optionsBase = optionsHandler.merge(defaultOptions, Autoplay.globalOptions);\n var options;\n var carousel;\n var interaction;\n var timer = 0;\n var jump = false;\n function init(embla) {\n carousel = embla;\n options = optionsHandler.atMedia(self.options);\n jump = options.jump;\n interaction = options.stopOnInteraction ? destroy : stop;\n var eventStore = carousel.internalEngine().eventStore;\n var emblaRoot = carousel.rootNode();\n var root = options.rootNode && options.rootNode(emblaRoot) || emblaRoot;\n carousel.on('pointerDown', interaction);\n if (!options.stopOnInteraction) carousel.on('pointerUp', reset);\n if (options.stopOnMouseEnter) {\n eventStore.add(root, 'mouseenter', interaction);\n if (!options.stopOnInteraction) eventStore.add(root, 'mouseleave', reset);\n }\n eventStore.add(document, 'visibilitychange', function () {\n if (document.visibilityState === 'hidden') return stop();\n reset();\n });\n eventStore.add(window, 'pagehide', function (event) {\n if (event.persisted) stop();\n });\n if (options.playOnInit) play();\n }\n function destroy() {\n carousel.off('pointerDown', interaction);\n if (!options.stopOnInteraction) carousel.off('pointerUp', reset);\n stop();\n timer = 0;\n }\n function play(jumpOverride) {\n stop();\n if (typeof jumpOverride !== 'undefined') jump = jumpOverride;\n timer = window.setTimeout(next, options.delay);\n }\n function stop() {\n if (!timer) return;\n window.clearTimeout(timer);\n }\n function reset() {\n if (!timer) return;\n stop();\n play();\n }\n function next() {\n var index = carousel.internalEngine().index;\n var kill = options.stopOnLastSnap && index.get() === index.max;\n if (kill) return destroy();\n if (carousel.canScrollNext()) {\n carousel.scrollNext(jump);\n } else {\n carousel.scrollTo(0, jump);\n }\n play();\n }\n var self = {\n name: 'autoplay',\n options: optionsHandler.merge(optionsBase, userOptions),\n init: init,\n destroy: destroy,\n play: play,\n stop: stop,\n reset: reset\n };\n return self;\n}\nAutoplay.globalOptions = undefined;\n\nexport { Autoplay as default };\n//# sourceMappingURL=embla-carousel-autoplay.esm.js.map\n","import { Carousel } from '@mantine/carousel'\nimport { Stack, Text, Title, useMantineTheme } from '@mantine/core'\nimport { useMediaQuery } from '@mantine/hooks'\nimport { IconCaretLeftFilled, IconCaretRightFilled } from '@tabler/icons-react'\nimport Autoplay from 'embla-carousel-autoplay'\nimport React, { useCallback, useEffect, useRef, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useNavigate } from 'react-router-dom'\n\nimport missingImage from '@/assets/webp_converted/imageOnload.webp'\nimport { useErrorMessages } from '@/constants/content'\nimport useSessionStorage from '@/hooks/useSessionStorage'\nimport { useAuth } from '@/plugins/auth'\nimport { saveLocation } from '@/plugins/auth/RouteRedirectors/utils'\nimport { Entry, WHATS_NEW_CONTENT_TYPE } from '@/plugins/contentful/api'\nimport client from '@/plugins/contentful/client'\n\nimport {\n GalleryElementsImagesByEntryId,\n pullGalleryImage,\n wrapData,\n} from '../Discover/DiscoverCarousel'\nimport ErrorMessage from '../ErrorMessage'\nimport Loading from '../Loading'\n\ninterface NewsCardProps {\n image: string | undefined\n title: string\n description: string\n button: {\n text: string\n link: string\n }\n promptToSignIn?: boolean\n}\n\nexport const NewsCard: React.FC = ({\n image,\n title,\n description,\n button,\n promptToSignIn = false,\n}) => {\n const { connect } = useAuth()\n const theme = useMantineTheme()\n const navigate = useNavigate()\n const isMobile = useMediaQuery(`(max-width: ${theme.breakpoints.sm})`)\n\n const handleNavigation = useCallback(() => {\n if (promptToSignIn && connect) {\n saveLocation(button.link)\n connect()\n } else if (button.link.startsWith('/')) {\n // ! TEMPORARY: to open Claim modal on wallet page on redirect from the carousel\n if (button.link === '/wallet') {\n saveLocation(button.link)\n navigate('/wallet', {\n state: {\n from: 'username',\n },\n })\n } else {\n saveLocation(button.link)\n navigate(button.link)\n }\n } else {\n window.open(button.link, '_blank')\n }\n }, [promptToSignIn, button.link, navigate])\n\n return (\n \n \n {/* These need to be always white independent from dark mode to allow controlled contrast by cms images */}\n \n {title}\n \n \n {description}\n \n \n \n )\n}\n\nconst WhatsNew: React.FC = () => {\n const {\n t,\n i18n: { language },\n } = useTranslation()\n\n const theme = useMantineTheme()\n const isMobile = useMediaQuery(`(max-width: ${theme.breakpoints.sm})`)\n const autoplay = useRef(Autoplay({ delay: 10000 }))\n const { status } = useAuth()\n\n const errorMessages = useErrorMessages()\n const [isLoading, setIsLoading] = useState(false)\n const [error, setError] = useState('')\n const [hasFetched, setHasFetched] = useState(false)\n const [whatsNew, setWhatsNew] = useSessionStorage(`whatsNew-${language}`, [])\n const [galleryImageByEntry, setGalleryImageByEntry] = useState({})\n\n useEffect(() => {\n if (!whatsNew.length && !hasFetched) {\n setIsLoading(true)\n client\n .getEntries({ content_type: WHATS_NEW_CONTENT_TYPE, locale: language })\n .then((response: any) => {\n const sortedContent = response.items.sort(\n (a: Entry, b: Entry) => a.fields.order - b.fields.order\n )\n setWhatsNew(sortedContent)\n if (response.items.length < 1) {\n setHasFetched(true)\n }\n })\n .catch((err: any) => {\n setError(err.message)\n setIsLoading(false)\n })\n .finally(() => {\n setIsLoading(false)\n })\n }\n }, [whatsNew, setWhatsNew, t, language, hasFetched])\n\n useEffect(() => {\n if (whatsNew) {\n setGalleryImageByEntry(oldGalleryImageByEntry =>\n pullGalleryImage(whatsNew, oldGalleryImageByEntry, setGalleryImageByEntry)\n )\n }\n }, [whatsNew])\n\n return (\n \n \n \n {t(`components.whatsNew.mainTitle1`, 'Own, Expand, & Maximize the Value of Your IP')}\n \n \n {t(\n `components.whatsNew.mainTitle2`,\n 'Unlock autonomy, collaborate with fans, and monetize your work on LAMINA1'\n )}\n \n \n {isLoading && }\n {error && }\n {!isLoading && !error && (\n \n }\n nextControlIcon={}\n plugins={[autoplay.current]}\n onMouseEnter={autoplay.current.stop}\n onMouseLeave={autoplay.current.reset}\n style={{\n height: '100%',\n }}\n >\n {whatsNew &&\n whatsNew.map((elem, index) => {\n const card = wrapData(elem, galleryImageByEntry)\n return (\n ((status !== 'connected' && card.signedOut) ||\n (status === 'connected' && card.signedIn)) && (\n \n \n \n )\n )\n })}\n \n \n )}\n \n )\n}\n\nexport default WhatsNew\n","import React from 'react'\n\nimport ConnectMiddleware from '@/plugins/auth/RouteRedirectors/ConnectMiddleware'\nimport { BodyStack } from '@/styled/components'\n\nimport HelpDrawer from '../HelpDrawer/HelpDrawer'\nimport FeaturedCollections from './FeaturedCollections'\nimport FeaturedCreators from './FeaturedCreators'\nimport FeaturedDapps from './FeaturedDapps'\nimport FeaturedItems from './FeaturedItems'\nimport GuidesUpdatesCarousel from './GuidesUpdatesCarousel'\nimport WhatsNew from './WhatsNew'\n\nconst Component: React.FC = () => (\n \n \n \n \n \n \n \n \n \n \n \n)\nComponent.displayName = 'HomePage'\n\n// eslint-disable-next-line import/prefer-default-export\nexport { Component }\n"],"names":["FeaturedCollections","t","useTranslation","navigate","useNavigate","theme","useMantineTheme","isMobile","useMediaQuery","errorMessages","useErrorMessages","isLoading","setIsLoading","useState","error","setError","hasFetched","setHasFetched","featuredCollectionsContent","setFeaturedCollectionsContent","useSessionStorage","collectionsIds","setCollectionsIds","sortedCollections","setSortedCollections","slideNumber","setSlideNumber","handleSlideChange","useCallback","index","useEffect","client","FEATURED_COLLECTIONS_CONTENT_TYPE","response","e","data","useQuery","QUERY_GET_COLLECTIONS_BY_IDS","newIds","item","sortedData","id","nft","shuffledCollections","shuffleArray","handleViewAll","jsxs","Stack","jsx","Title","explorePageActive","RootButton","Loading","ErrorMessage","Carousel","IconCaretLeftFilled","IconCaretRightFilled","collection","CollectionsCard","CreatorsCard","elem","imageSize","userTheme","useLocalStorage","defaultPfp","useMemo","getDefaultProfileImage","profilePath","useProfilePath","handleNavigation","itemCardClasses","ImageWrapper","classes","_a","UserDetails","FeaturedCreators","getL1nsProfile","useL1NS","featuredCreatorsContent","setFeaturedCreatorsContent","creatorProfiles","setCreatorProfiles","FEATURED_CREATORS_CONTENT_TYPE","getCreatorProfiles","profilePromises","address","profileUrl","p","loadProfile","newProfiles","shuffledProfiles","creator","FeaturedDapps","featuredDappsContent","setFeaturedDappsContent","dapps","setDapps","FEATURED_DAPPS_CONTENT_TYPE","getDappFromCMS","featuredDapps","dappName","creatorAddress","url","image","imageUrl","_c","_b","collectionTiles","shuffledDappTiles","dapp","FeaturedItems","featuredItemsContent","setFeaturedItemsContent","itemsIds","setItemsIds","sortedItemsMetadata","setSortedItemsMetadata","loadingQuery","errorQuery","QUERY_GET_ITEMS_BY_IDS","shuffledItems","FEATURED_ITEMS_CONTENT_TYPE","err","Fragment","ItemsCard","GuidesUpdatesCarousel","language","guidesUpdates","setGuidesUpdates","galleryImageByEntry","setGalleryImageByEntry","GUIDES_UPDATES_CONTENT_TYPE","sortedContent","a","b","oldGalleryImageByEntry","pullGalleryImage","Center","card","wrapData","CTACard","defaultOptions","Autoplay","userOptions","optionsHandler","EmblaCarousel","optionsBase","options","carousel","interaction","timer","jump","init","embla","self","destroy","stop","eventStore","emblaRoot","root","reset","event","play","jumpOverride","next","kill","NewsCard","title","description","button","promptToSignIn","connect","useAuth","saveLocation","missingImage","Text","WhatsNew","autoplay","useRef","status","whatsNew","setWhatsNew","WHATS_NEW_CONTENT_TYPE","Component","ConnectMiddleware","BodyStack","HelpDrawer"],"mappings":"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","x_google_ignoreList":[6]}