{"version":3,"file":"Feed-DlXtaST2.js","sources":["../../node_modules/@mantine/hooks/esm/use-hover/use-hover.mjs","../../node_modules/@tabler/icons-react/dist/esm/icons/IconBell.mjs","../../node_modules/@tabler/icons-react/dist/esm/icons/IconLogin2.mjs","../../node_modules/@tabler/icons-react/dist/esm/icons/IconRss.mjs","../../node_modules/@tabler/icons-react/dist/esm/icons/IconWorld.mjs","../../src/assets/l1Feed/l1FeedBanner.jpg","../../src/hooks/useFeed.ts","../../src/assets/icons/items_blue.svg","../../src/assets/icons/items_green.svg","../../src/components/Discover/Feed/PostHeader.tsx","../../src/components/Discover/Feed/Content.tsx","../../src/components/Discover/Feed/MembersList.tsx","../../src/components/Discover/Feed/SpacesInfo.tsx","../../src/components/Discover/Feed/Feed.tsx"],"sourcesContent":["'use client';\nimport { useState, useRef, useCallback, useEffect } from 'react';\n\nfunction useHover() {\n const [hovered, setHovered] = useState(false);\n const ref = useRef(null);\n const onMouseEnter = useCallback(() => setHovered(true), []);\n const onMouseLeave = useCallback(() => setHovered(false), []);\n useEffect(() => {\n if (ref.current) {\n ref.current.addEventListener(\"mouseenter\", onMouseEnter);\n ref.current.addEventListener(\"mouseleave\", onMouseLeave);\n return () => {\n ref.current?.removeEventListener(\"mouseenter\", onMouseEnter);\n ref.current?.removeEventListener(\"mouseleave\", onMouseLeave);\n };\n }\n return void 0;\n }, [ref.current]);\n return { ref, hovered };\n}\n\nexport { useHover };\n//# sourceMappingURL=use-hover.mjs.map\n","/**\n * @license @tabler/icons-react v3.22.0 - MIT\n *\n * This source code is licensed under the MIT license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createReactComponent from '../createReactComponent.mjs';\n\nvar IconBell = createReactComponent(\"outline\", \"bell\", \"IconBell\", [[\"path\", { \"d\": \"M10 5a2 2 0 1 1 4 0a7 7 0 0 1 4 6v3a4 4 0 0 0 2 3h-16a4 4 0 0 0 2 -3v-3a7 7 0 0 1 4 -6\", \"key\": \"svg-0\" }], [\"path\", { \"d\": \"M9 17v1a3 3 0 0 0 6 0v-1\", \"key\": \"svg-1\" }]]);\n\nexport { IconBell as default };\n//# sourceMappingURL=IconBell.mjs.map\n","/**\n * @license @tabler/icons-react v3.22.0 - MIT\n *\n * This source code is licensed under the MIT license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createReactComponent from '../createReactComponent.mjs';\n\nvar IconLogin2 = createReactComponent(\"outline\", \"login-2\", \"IconLogin2\", [[\"path\", { \"d\": \"M9 8v-2a2 2 0 0 1 2 -2h7a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-7a2 2 0 0 1 -2 -2v-2\", \"key\": \"svg-0\" }], [\"path\", { \"d\": \"M3 12h13l-3 -3\", \"key\": \"svg-1\" }], [\"path\", { \"d\": \"M13 15l3 -3\", \"key\": \"svg-2\" }]]);\n\nexport { IconLogin2 as default };\n//# sourceMappingURL=IconLogin2.mjs.map\n","/**\n * @license @tabler/icons-react v3.22.0 - MIT\n *\n * This source code is licensed under the MIT license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createReactComponent from '../createReactComponent.mjs';\n\nvar IconRss = createReactComponent(\"outline\", \"rss\", \"IconRss\", [[\"path\", { \"d\": \"M5 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0\", \"key\": \"svg-0\" }], [\"path\", { \"d\": \"M4 4a16 16 0 0 1 16 16\", \"key\": \"svg-1\" }], [\"path\", { \"d\": \"M4 11a9 9 0 0 1 9 9\", \"key\": \"svg-2\" }]]);\n\nexport { IconRss as default };\n//# sourceMappingURL=IconRss.mjs.map\n","/**\n * @license @tabler/icons-react v3.22.0 - MIT\n *\n * This source code is licensed under the MIT license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createReactComponent from '../createReactComponent.mjs';\n\nvar IconWorld = createReactComponent(\"outline\", \"world\", \"IconWorld\", [[\"path\", { \"d\": \"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0\", \"key\": \"svg-0\" }], [\"path\", { \"d\": \"M3.6 9h16.8\", \"key\": \"svg-1\" }], [\"path\", { \"d\": \"M3.6 15h16.8\", \"key\": \"svg-2\" }], [\"path\", { \"d\": \"M11.5 3a17 17 0 0 0 0 18\", \"key\": \"svg-3\" }], [\"path\", { \"d\": \"M12.5 3a17 17 0 0 1 0 18\", \"key\": \"svg-4\" }]]);\n\nexport { IconWorld as default };\n//# sourceMappingURL=IconWorld.mjs.map\n","export default \"__VITE_ASSET__BF2Nzcc2__\"","import { useCallback, useEffect, useState } from 'react'\n\nimport { STUDIO_BOT } from '@/constants/blockchain'\nimport { CustomError } from '@/utils/helpers'\nimport { get, post } from '@/utils/utils'\n\nimport useSpacesAuth from './useSpacesAuth'\n\n// Request / Response types\n\n// Unauthenticated routes\n\n// Size\n// POST /feed/size\ntype SizeRequest = {\n id: string\n}\n\ntype SizeResponse = {\n valid: boolean\n members: number\n error?: string\n}\n\n// Members\n// POST /feed/members\ntype MembersRequest = {\n id: string\n}\n\ntype MembersResponse = {\n valid: boolean\n members: string[]\n error?: string\n}\n\n// Authenticated routes\n\n// Join\n// POST /feed/auth/join\ntype JoinRequest = {\n id: string\n email?: string\n}\n\ntype JoinResponse = {\n valid: boolean\n error?: string\n}\n\n// Leave\n// POST /feed/auth/leave\ntype LeaveRequest = {\n id: string\n}\n\ntype LeaveResponse = {\n valid: boolean\n error?: string\n}\n\n// Joined\n// GET /feed/auth/joined\n\ntype UserSpace = {\n id: string\n email: string\n}\n\ntype JoinedResponse = {\n valid: boolean\n joined: UserSpace[]\n error?: string\n}\n\n// Email routes\n\n// Set\n// POST /feed/auth/email/set\ntype EmailSetRequest = {\n email: string\n}\n\ntype EmailSetResponse = {\n valid: boolean\n error?: string\n}\n\n// Get\n// GET /feed/auth/email/get\ntype EmailGetResponse = {\n valid: boolean\n email: string\n error?: string\n}\n\n// Delete\n// POST /feed/auth/email/delete\ntype EmailDeleteResponse = {\n valid: boolean\n error?: string\n}\n\n// Notifications\n\nconst useFeed = (spaceId: string) => {\n // Hooks\n const { token } = useSpacesAuth()\n\n // State\n const [loading, setLoading] = useState(false)\n const [size, setSize] = useState(0)\n const [members, setMembers] = useState([])\n const [joined, setJoined] = useState([])\n const [defaultEmail, setDefaultEmail] = useState('')\n const [error, setError] = useState({\n call: 'feed',\n msg: '',\n isError: false,\n })\n\n // Fetch size for space\n const fetchSize = useCallback(async () => {\n try {\n const req: SizeRequest = { id: spaceId }\n const retval = (await post(`${STUDIO_BOT}/feed/size`, JSON.stringify(req))) as SizeResponse\n // Set error if response not valid\n if (!retval.valid) {\n setError({\n call: 'feed.size',\n msg: retval.error || 'Error connecting to Spaces Server',\n isError: true,\n })\n } else {\n setSize(retval.members)\n }\n } catch (err: any) {\n setError({ call: 'feed.size', msg: err.message, isError: true })\n }\n }, [spaceId])\n\n // Fetch members for space\n const fetchMembers = useCallback(async () => {\n try {\n const req: MembersRequest = { id: spaceId }\n const retval = (await post(\n `${STUDIO_BOT}/feed/members`,\n JSON.stringify(req)\n )) as MembersResponse\n // Set error if response not valid\n if (!retval.valid) {\n setError({\n call: 'feed.members',\n msg: retval.error || 'Error connecting to Spaces Server',\n isError: true,\n })\n } else {\n setMembers(retval.members)\n }\n } catch (err: any) {\n setError({ call: 'feed.members', msg: err.message, isError: true })\n }\n }, [spaceId])\n\n // Fetch joined for address\n const fetchJoined = useCallback(async () => {\n if (!token) return\n try {\n const retval = (await get(`${STUDIO_BOT}/feed/auth/joined`, token)) as JoinedResponse\n // Set error if response not valid\n if (!retval.valid) {\n setError({\n call: 'feed.joined',\n msg: retval.error || 'Error connecting to Spaces Server',\n isError: true,\n })\n } else {\n setJoined(retval.joined)\n }\n } catch (err: any) {\n setError({ call: 'feed.joined', msg: err.message, isError: true })\n }\n }, [token])\n\n // Fetch default email\n const fetchEmail = useCallback(async () => {\n if (!token) return\n try {\n const retval = (await get(`${STUDIO_BOT}/feed/auth/email/get`, token)) as EmailGetResponse\n // Set error if response not valid\n if (!retval.valid) {\n setError({\n call: 'feed.email.get',\n msg: retval.error || 'Error connecting to Spaces Server',\n isError: true,\n })\n } else {\n setDefaultEmail(retval.email)\n }\n } catch (err: any) {\n setError({ call: 'feed.email.get', msg: err.message, isError: true })\n }\n }, [token])\n\n // Update on changes\n useEffect(() => {\n // Always update size + members when have spaceId\n if (spaceId) {\n const promises = [fetchSize, fetchMembers]\n // Update joined + email when have token\n if (token) {\n promises.push(fetchJoined)\n promises.push(fetchEmail)\n } else {\n // Reset user specific data\n setJoined([])\n setDefaultEmail('')\n }\n setLoading(true)\n Promise.all(promises.map(p => p()))\n .then(() => setLoading(false))\n .catch(() => setLoading(false))\n }\n }, [spaceId, token, fetchSize, fetchMembers, fetchJoined])\n\n // Join the space\n const joinSpace = useCallback(\n async (userEmail: string = '') => {\n if (!token) return\n // Make request\n try {\n const req: JoinRequest = {\n id: spaceId,\n email: userEmail,\n }\n const retval = (await post(\n `${STUDIO_BOT}/feed/auth/join`,\n JSON.stringify(req),\n token\n )) as JoinResponse\n // Set error if response not valid\n if (!retval.valid) {\n setError({\n call: 'feed.join',\n msg: retval.error || 'Error connecting to Spaces Server',\n isError: true,\n })\n } else {\n // Update data\n fetchJoined()\n fetchSize()\n fetchMembers()\n }\n } catch (err: any) {\n setError({ call: 'feed.join', msg: err.message, isError: true })\n }\n },\n [spaceId, token]\n )\n\n // Leave the space\n const leaveSpace = useCallback(async () => {\n if (!token) return\n // Make request\n try {\n const req: LeaveRequest = { id: spaceId }\n const retval = (await post(\n `${STUDIO_BOT}/feed/auth/leave`,\n JSON.stringify(req),\n token\n )) as LeaveResponse\n // Set error if response not valid\n if (!retval.valid) {\n setError({\n call: 'feed.leave',\n msg: retval.error || 'Error connecting to Spaces Server',\n isError: true,\n })\n } else {\n // Update data\n fetchJoined()\n fetchSize()\n fetchMembers()\n }\n } catch (err: any) {\n setError({ call: 'feed.leave', msg: err.message, isError: true })\n }\n }, [spaceId, token])\n\n // Set default email\n const saveEmail = useCallback(\n async (userEmail: string) => {\n if (!token) return\n // Make request\n try {\n const req: EmailSetRequest = { email: userEmail }\n const retval = (await post(\n `${STUDIO_BOT}/feed/auth/email/set`,\n JSON.stringify(req),\n token\n )) as EmailSetResponse\n // Set error if response not valid\n if (!retval.valid) {\n setError({\n call: 'feed.email.set',\n msg: retval.error || 'Error connecting to Spaces Server',\n isError: true,\n })\n } else {\n // Update email\n setDefaultEmail(userEmail)\n }\n } catch (err: any) {\n setError({ call: 'feed.email.set', msg: err.message, isError: true })\n }\n },\n [token]\n )\n\n // Delete default email\n const deleteEmail = useCallback(async () => {\n if (!token) return\n // Make request\n try {\n const retval = (await post(\n `${STUDIO_BOT}/feed/auth/email/delete`,\n '',\n token\n )) as EmailDeleteResponse\n // Set error if response not valid\n if (!retval.valid) {\n setError({\n call: 'feed.email.delete',\n msg: retval.error || 'Error connecting to Spaces Server',\n isError: true,\n })\n } else {\n // Update email\n setDefaultEmail('')\n }\n } catch (err: any) {\n setError({ call: 'feed.email.delete', msg: err.message, isError: true })\n }\n }, [token])\n\n return {\n size,\n members,\n joined,\n defaultEmail,\n joinSpace,\n leaveSpace,\n saveEmail,\n deleteEmail,\n loading,\n error,\n }\n}\n\nexport default useFeed\n","export default \"data:image/svg+xml,%3csvg%20width='12'%20height='14'%20viewBox='0%200%2012%2014'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20id='Screen%20Shot%202023-06-23%20at%206.43%201%20(Traced)'%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M3.25921%201.58617C1.78291%202.46848%200.594156%203.22255%200.617609%203.26163C0.695748%203.39203%205.8548%206.41927%205.99907%206.41927C6.14357%206.41927%2011.3032%203.39157%2011.3801%203.26163C11.4152%203.20215%206.2416%200.055618%206.01741%200.000105531C5.97673%20-0.00997734%204.73562%200.703754%203.25921%201.58617ZM5.67591e-05%207.51445L0.00305787%2010.781L1.30607%2011.544C2.02266%2011.9636%203.24665%2012.6879%204.02615%2013.1535L5.44332%2014V10.7286V7.45724L2.8125%205.89031C1.36554%205.02851%200.140106%204.3064%200.0893106%204.28566C0.0385149%204.26482%20-0.00172165%205.71777%205.67591e-05%207.51445ZM9.24922%205.86494L6.55482%207.46302V10.7315V14L7.97199%2013.1554C8.75149%2012.6909%209.97637%2011.9667%2010.694%2011.5459L11.9988%2010.781L12%207.52385C12.0006%205.7325%2011.9882%204.26675%2011.9724%204.26675C11.9565%204.26675%2010.7311%204.98591%209.24922%205.86494Z'%20fill='%230000FF'%20/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='12'%20height='14'%20viewBox='0%200%2012%2014'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20id='Screen%20Shot%202023-06-23%20at%206.43%201%20(Traced)'%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M3.25921%201.58617C1.78291%202.46848%200.594156%203.22255%200.617609%203.26163C0.695748%203.39203%205.8548%206.41927%205.99907%206.41927C6.14357%206.41927%2011.3032%203.39157%2011.3801%203.26163C11.4152%203.20215%206.2416%200.055618%206.01741%200.000105531C5.97673%20-0.00997734%204.73562%200.703754%203.25921%201.58617ZM5.67591e-05%207.51445L0.00305787%2010.781L1.30607%2011.544C2.02266%2011.9636%203.24665%2012.6879%204.02615%2013.1535L5.44332%2014V10.7286V7.45724L2.8125%205.89031C1.36554%205.02851%200.140106%204.3064%200.0893106%204.28566C0.0385149%204.26482%20-0.00172165%205.71777%205.67591e-05%207.51445ZM9.24922%205.86494L6.55482%207.46302V10.7315V14L7.97199%2013.1554C8.75149%2012.6909%209.97637%2011.9667%2010.694%2011.5459L11.9988%2010.781L12%207.52385C12.0006%205.7325%2011.9882%204.26675%2011.9724%204.26675C11.9565%204.26675%2010.7311%204.98591%209.24922%205.86494Z'%20fill='%2301FE57'%20/%3e%3c/svg%3e\"","import { Box, Stack, Text, Tooltip } from '@mantine/core'\nimport React from 'react'\n\nimport UserDetails from '@/components/Details/UserDetails/UserDetails'\nimport { LAMINA1_OFFICIAL_ADDRESS } from '@/constants/blockchain'\nimport { formattedDateTime } from '@/utils/utils'\n\nimport { AccessConditions } from './Content'\nimport classes from './style.module.css'\n\ninterface PostHeaderProps {\n timestamp?: string\n accessConditions?: AccessConditions\n}\n\nconst PostHeader: React.FC = ({ timestamp, accessConditions }) => (\n \n \n \n \n \n {accessConditions &&\n (Object.keys(accessConditions) as (keyof AccessConditions)[]).map(key => {\n const condition = accessConditions[key]\n return (\n condition.display && (\n \n \n {condition.approved ? condition.hasAccess.icon : condition.getAccess.icon}\n \n \n )\n )\n })}\n \n {timestamp && (\n \n {formattedDateTime(timestamp)}\n \n )}\n \n \n \n \n)\n\nexport default PostHeader\n","import { useQuery } from '@apollo/client'\nimport {\n ActionIcon,\n Box,\n Divider,\n SimpleGrid,\n Stack,\n Text,\n Title,\n Tooltip,\n useMantineTheme,\n} from '@mantine/core'\nimport { useDisclosure, useHover } from '@mantine/hooks'\nimport { IconLockFilled, IconLogin2, IconRss, IconWorld } from '@tabler/icons-react'\nimport React, { useCallback, useMemo, useRef, useState } from 'react'\nimport { useNavigate } from 'react-router'\n\nimport itemIconBlack from '@/assets/icons/items_black.svg'\nimport itemIconBlue from '@/assets/icons/items_blue.svg'\nimport itemIconGreen from '@/assets/icons/items_green.svg'\nimport itemIconWhite from '@/assets/icons/items_white.svg'\nimport RootButton from '@/components/Buttons/RootButton'\nimport Web3Button from '@/components/Buttons/Web3Button'\nimport ParseRichText from '@/components/Contentful/ParseRichText'\nimport CollectionsCard from '@/components/Items/CollectionsCard'\nimport ItemsCard from '@/components/Items/ItemsCard'\nimport IconWrapper from '@/components/MediaWrappers/IconWrapper'\nimport ImageWrapper from '@/components/MediaWrappers/ImageWrapper'\nimport ModalSkeleton from '@/components/Modals/ModalSkeleton'\nimport optionMenuClasses from '@/components/OptionsMenu.module.css'\nimport { useAuth } from '@/plugins/auth'\nimport { saveLocation } from '@/plugins/auth/RouteRedirectors/utils'\nimport { RichText } from '@/plugins/contentful/api'\nimport { GetCollectionsByIds, QUERY_GET_COLLECTIONS_BY_IDS } from '@/schemas/collections.schema'\nimport {\n GetContentAuth,\n GetItemsByIds,\n QUERY_GET_CONTENT_AUTH,\n QUERY_GET_ITEMS_BY_IDS,\n} from '@/schemas/tokens.schema'\nimport { replaceYoutubeLinkEndpoint } from '@/utils/utils'\n\nimport PostHeader from './PostHeader'\nimport classes from './style.module.css'\n\ninterface NftsRequiredListProps {\n collectionsIds: string[]\n andItemsIds: string[]\n orItemsIds: string[]\n}\n\nconst NftsRequiredList: React.FC = ({\n collectionsIds,\n andItemsIds,\n orItemsIds,\n}) => {\n const parentRef = useRef(null)\n const { data } = useQuery(QUERY_GET_COLLECTIONS_BY_IDS, {\n variables: {\n ids: collectionsIds,\n },\n })\n\n // get nfts by ids\n const { data: items } = useQuery(QUERY_GET_ITEMS_BY_IDS, {\n variables: {\n ids: andItemsIds,\n },\n skip: andItemsIds.length === 0,\n })\n\n const { data: orItems } = useQuery(QUERY_GET_ITEMS_BY_IDS, {\n variables: {\n ids: orItemsIds,\n },\n skip: orItemsIds.length === 0,\n })\n\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\n const sortedDataItems = andItemsIds\n // map the ids to the nfts\n .map(id => items?.tokens.find(nft => nft.id === id))\n // filter out the undefined values\n .filter(nft => nft !== undefined)\n\n const sortedDataOrItems = orItemsIds\n // map the ids to the nfts\n .map(id => orItems?.tokens.find(nft => nft.id === id))\n // filter out the undefined values\n .filter(nft => nft !== undefined)\n return (\n \n {collectionsIds.length > 0 && (\n Have an item from the following collections\n )}\n \n {sortedData.map(collection => (\n \n ))}\n \n {andItemsIds.length > 0 && Have all of these items}\n \n {sortedDataItems.map(item => (\n \n ))}\n \n {orItemsIds.length > 0 && Have one of these items}\n \n {sortedDataOrItems.map(item => (\n \n ))}\n \n \n )\n}\n\ninterface ContentProps {\n item: any\n index: number\n hasJoined: boolean\n handleJoinSpace?: () => void\n}\n\ninterface AccessSpecs {\n display: boolean\n approved: boolean\n requirement: string\n getAccess: {\n tooltip: string | React.ReactNode\n icon: React.ReactNode\n }\n hasAccess: {\n tooltip: string | React.ReactNode\n icon: React.ReactNode\n }\n cta?: React.ReactNode\n}\n\nexport interface AccessConditions {\n open: AccessSpecs\n login: AccessSpecs\n join: AccessSpecs\n nfts: AccessSpecs\n}\n\nconst Content: React.FC = ({ item, index, hasJoined, handleJoinSpace }) => {\n const theme = useMantineTheme()\n const { status, connect, address } = useAuth()\n const navigate = useNavigate()\n const {\n timestamp,\n description,\n image,\n videoLink,\n thumbnailLock,\n buttonText,\n buttonLink,\n contentAuth,\n } = item.fields || {}\n const { file, title } = image?.fields || {}\n const { ref } = useHover()\n const [opened, { open, close }] = useDisclosure(false)\n const [lockHovered, setLockHovered] = useState(false)\n\n const [checkFlags, setCheckFlags] = useState({\n anyFromCollection: false,\n allFromTokenList: false,\n someFromTokenList: false,\n })\n\n const variables = useMemo(() => {\n const baseConditions = [\n { account: { _eq: address ? address.toLowerCase() : '' } },\n { token: { collection: { collection_type: { _neq: 'ERC20' } } } },\n ]\n\n // Function to generate conditions based on contentAuth's \"nft\" structure\n const generateNftConditions = (nft: any) => {\n const collectionConditions: any = []\n const andConditions: any = []\n const orConditions: any = []\n\n if (!nft) return {}\n\n // 1. Check if has collectionIds array, if so, user must have at least one token from that collection (assuming tokenIds array is empty)\n const anyFromCollection =\n nft.collectionIds && nft.collectionIds.length > 0 && nft.tokenIds?.length === 0\n if (anyFromCollection) {\n collectionConditions.push({\n token: { collection: { id: { _in: nft.collectionIds } } },\n })\n }\n\n // 2. Check if has tokenIds array, if so, user must have all or some of the tokenIds specified in the array from that collection (depending on the condition)\n const allFromTokenList = nft.tokenIds && nft.tokenIds.length > 0 && nft.tokenIds[0].length > 0\n if (allFromTokenList) {\n nft.tokenIds[0].forEach((tokenId: string) => {\n andConditions.push({\n token: { id: { _eq: tokenId } },\n })\n })\n }\n\n const someFromTokenList =\n nft.tokenIds && nft.tokenIds.length > 0 && nft.tokenIds[1].length > 0\n if (someFromTokenList) {\n nft.tokenIds[1].forEach((tokenId: string) => {\n orConditions.push({\n token: { id: { _eq: tokenId } },\n })\n })\n }\n\n setCheckFlags({\n anyFromCollection,\n allFromTokenList,\n someFromTokenList,\n })\n\n return {\n collection: collectionConditions,\n and: andConditions,\n or: orConditions,\n }\n }\n\n // Add the generated conditions to the base conditions\n const contentAuthConditions = contentAuth?.nft ? generateNftConditions(contentAuth.nft) : {}\n\n // create a false condition to avoid returning all items\n const falseCondition = {\n _and: [{ id: { _eq: 'false' } }],\n }\n\n const whereCollectionConditions =\n contentAuthConditions.collection.length > 0\n ? {\n _and: [...baseConditions, ...contentAuthConditions.collection].filter(Boolean),\n }\n : falseCondition\n\n const whereAndConditions =\n contentAuthConditions.and.length > 0\n ? {\n _and: [...baseConditions, ...contentAuthConditions.and].filter(Boolean),\n }\n : falseCondition\n\n const whereOrConditions =\n contentAuthConditions.or.length > 0\n ? {\n _and: [...baseConditions].filter(Boolean),\n _or: [...contentAuthConditions.or].filter(Boolean),\n }\n : falseCondition\n\n return {\n whereCollection: whereCollectionConditions,\n whereAnd: whereAndConditions,\n whereOr: whereOrConditions,\n }\n }, [address, contentAuth])\n\n const { loading, error, data, refetch } = useQuery(QUERY_GET_CONTENT_AUTH, {\n variables,\n })\n\n const hasNftsRequired = useMemo(() => {\n if (!data || loading || error) return false\n const nAndConditions =\n (contentAuth?.nft?.tokenIds?.length !== 0 && contentAuth?.nft?.tokenIds?.[0].length) || 0\n\n const hasTokenFromCollection = checkFlags.anyFromCollection ? data.collection.length > 0 : true\n\n const hasAllTokensFromList = checkFlags.allFromTokenList\n ? nAndConditions === data.and.length\n : true\n\n const hasSomeTokensFromList = checkFlags.someFromTokenList ? data.or.length > 0 : true\n\n return hasTokenFromCollection && hasAllTokensFromList && hasSomeTokensFromList\n }, [data, loading, error, contentAuth, checkFlags])\n\n const hasAccess = useMemo(() => {\n // 1. Everyone can access content, logged in or not\n if (contentAuth.method === 'open') {\n return true\n }\n // 2. User is logged in and can access content\n if (contentAuth.method === 'loggedIn') {\n return (status === 'connected' && hasNftsRequired) || false\n }\n // 3. User is logged in and has to have joined the space\n if (contentAuth.method === 'joined') {\n return status === 'connected' && hasJoined && hasNftsRequired\n }\n\n return false\n }, [contentAuth, status, hasNftsRequired, hasJoined])\n\n const accessConditions: AccessConditions = useMemo(() => {\n const access = {\n open: {\n display: contentAuth?.method === 'open',\n approved: true,\n requirement: 'none',\n getAccess: {\n tooltip: 'No requirements to unlock this content',\n icon: ,\n },\n hasAccess: {\n tooltip: 'Everyone has access to this content',\n icon: ,\n },\n },\n login: {\n display:\n contentAuth?.method === 'loggedIn' ||\n contentAuth?.method === 'joined' ||\n (contentAuth?.nft && Object.keys(contentAuth.nft).length > 0),\n approved: status === 'connected' && !!address,\n requirement: 'Signed in',\n getAccess: {\n tooltip: 'Sign in to unlock this content',\n icon: ,\n },\n hasAccess: {\n tooltip: 'You are already signed in',\n icon: ,\n },\n cta:\n status === 'connected' ? (\n \n Signed In\n \n ) : (\n \n ),\n },\n join: {\n display: contentAuth?.method === 'joined',\n approved: status === 'connected' && hasJoined,\n requirement: 'Space membership',\n getAccess: {\n tooltip: 'Join the space to unlock this content',\n icon: ,\n },\n hasAccess: {\n tooltip: 'You are a member of this space',\n icon: ,\n },\n cta: hasJoined ? (\n \n Joined\n \n ) : (\n \n \n \n Join Space\n \n \n \n ),\n },\n nfts: {\n display:\n contentAuth?.method !== 'open' &&\n contentAuth?.nft &&\n Object.keys(contentAuth.nft).length > 0,\n approved: status === 'connected' && hasNftsRequired,\n requirement: 'Items required',\n getAccess: {\n tooltip:\n 'Own specific items to unlock this content. Click on the unlock button to find out more',\n icon: (\n \n ),\n },\n hasAccess: {\n tooltip: 'You own the required items',\n icon: (\n \n ),\n },\n cta: (\n \n ),\n },\n }\n\n return access\n }, [address, hasJoined, data, status, hasNftsRequired, contentAuth])\n\n const handleNavigation = useCallback(() => {\n if (status !== 'connected' && connect) {\n saveLocation(buttonLink)\n connect()\n } else if (buttonLink.startsWith('/')) {\n saveLocation(buttonLink)\n navigate(buttonLink)\n } else {\n window.open(buttonLink, '_blank')\n }\n }, [status, buttonLink, navigate])\n\n const descriptionWithoutAccess = useMemo(() => {\n // rnadomize wich sentence is returned from a list of phrases\n const randomPhrase = (phrases: string[]) => phrases[Math.floor(Math.random() * phrases.length)]\n\n const phrases = [\n 'You need to unlock this content to view the description.',\n 'Don`t try to be sneaky! You need to unlock this content to view the description.',\n 'You thought that was going to work? 😅 The only way you are going to see this content is by following the necessary requirements!',\n 'You need to unlock this content to view the description. No shortcuts here!',\n 'You thought you were gaining access to premium content without following the rules? 😏 Sneaky sneaky, don`t be like that. Try to follow the requirements and unlock this content!',\n ]\n\n return randomPhrase(phrases)\n }, [])\n\n return (\n \n {index !== 0 && }\n \n \n {hasAccess && description && }\n {!hasAccess && description && (\n {descriptionWithoutAccess}\n )}\n \n {buttonText && buttonLink && (\n \n {buttonText}\n \n )}\n {image && (\n \n )}\n {videoLink &&\n (hasAccess ? (\n \n ) : (\n \n \n \n ))}\n {!hasAccess && (\n \n setLockHovered(true)}\n onMouseLeave={() => setLockHovered(false)}\n onClick={() => {\n refetch()\n open()\n }}\n >\n \n \n \n )}\n \n \n {Object.keys(accessConditions)\n .filter(key => key !== 'open')\n .map(\n key =>\n accessConditions[key as keyof AccessConditions].display && (\n \n \n \n {accessConditions[key as keyof AccessConditions].approved\n ? accessConditions[key as keyof AccessConditions]?.hasAccess.icon\n : accessConditions[key as keyof AccessConditions]?.getAccess.icon}\n {accessConditions[key as keyof AccessConditions].requirement}\n \n {key !== 'nfts' && accessConditions[key as keyof AccessConditions].cta}\n \n {key === 'nfts' && accessConditions[key as keyof AccessConditions].cta}\n \n )\n )}\n \n \n \n )\n}\n\nexport default Content\n","import { ScrollArea, Stack } from '@mantine/core'\nimport React from 'react'\n\nimport UserDetails from '@/components/Details/UserDetails/UserDetails'\n\nimport classes from './MembersList.module.css'\n\ninterface MembersListProps {\n members: string[]\n}\n\nconst MembersList: React.FC = ({ members }) => (\n \n \n {members.map(member => (\n \n \n \n ))}\n \n \n)\n\nexport default MembersList\n","import { Stack, Switch, Text, Title, useMantineTheme } from '@mantine/core'\nimport { useDisclosure } from '@mantine/hooks'\nimport { IconBell } from '@tabler/icons-react'\nimport React, { useCallback, useMemo, useState } from 'react'\nimport { Trans, useTranslation } from 'react-i18next'\n\nimport RootButton from '@/components/Buttons/RootButton'\nimport UserDetails from '@/components/Details/UserDetails/UserDetails'\nimport ModalSkeleton from '@/components/Modals/ModalSkeleton'\nimport OptionsMenu from '@/components/OptionsMenu'\nimport { SpecialInputText } from '@/components/SpecialInputText'\nimport { LAMINA1_OFFICIAL_ADDRESS } from '@/constants/blockchain'\nimport { formatValueToSuffix } from '@/utils/utils'\n\nimport MembersList from './MembersList'\nimport classes from './style.module.css'\n\ninterface SpaceInfoStatsProps {\n title: string\n value: number | string\n onClick?: () => void\n}\n\nconst SpaceInfoStats: React.FC = ({ title, value, onClick }) => (\n \n {value}\n {title}\n \n)\ninterface SpaceInfoProps {\n nMembers: number\n members: string[]\n nPosts: number\n spaceRequiresEmail: boolean\n hasJoined: boolean\n userEmail: string\n joinSpace: (email: string) => void\n leaveSpace: () => void\n}\n\nconst SpacesInfo: React.FC = ({\n nMembers,\n members,\n nPosts,\n spaceRequiresEmail,\n hasJoined,\n userEmail,\n joinSpace,\n leaveSpace,\n}) => {\n const { t } = useTranslation()\n const theme = useMantineTheme()\n const description =\n 'Welcome to the Official Space Page for LAMINA1. Create, manage, and share digital content effortlessly. On this platform, you own your assets, identity, and experiences across diverse platforms and storyworlds. Seamless creation and distribution of next-gen digital content. Join to stay up to date with the latest on LAMINA1.'\n\n const [opened, { open, close }] = useDisclosure(false)\n const [openedLeave, { open: openLeave, close: closeLeave }] = useDisclosure(false)\n const [openedEmail, { open: openEmail, close: closeEmail }] = useDisclosure(false)\n\n // Email settings\n const [emailInput, setEmailInput] = useState('')\n const [deleteToggle, setDeleteToggle] = useState(false)\n\n const handleEmailChange = useCallback((e: React.ChangeEvent) => {\n setEmailInput(e.target.value)\n }, [])\n\n const handleDeleteToggle = useCallback(() => {\n setEmailInput('')\n setDeleteToggle(prev => !prev)\n }, [])\n\n const isEmailValid = useMemo(() => {\n const re = /\\S+@\\S+\\.\\S+/\n return re.test(emailInput)\n }, [emailInput])\n\n const handleLeave = useCallback(() => {\n leaveSpace()\n closeLeave()\n }, [leaveSpace, closeLeave])\n\n const handleCloseEmail = useCallback(() => {\n // Reset always\n setEmailInput('')\n setDeleteToggle(false)\n closeEmail()\n }, [closeEmail])\n\n const handleModifyEmail = useCallback(() => {\n // Modify email\n if (!deleteToggle) {\n joinSpace(emailInput)\n } else if (spaceRequiresEmail) {\n // If deleting, leave space if it requires the user to have an email\n leaveSpace()\n } else {\n // If not, just remove the email\n joinSpace('')\n }\n handleCloseEmail()\n }, [joinSpace, spaceRequiresEmail, emailInput, leaveSpace, handleCloseEmail])\n\n return (\n \n \n \n {t('spaces.spaceInfo.title', 'Description')}\n {hasJoined && (\n \n {t('spaces.spaceInfo.leaveSpace', 'Leave Space')}\n \n {userEmail !== ''\n ? t('spaces.spaceInfo.modifyEmail', 'Modify Email')\n : t('spaces.spaceInfo.addEmail', 'Add Email')}\n \n \n )}\n \n {description}\n \n \n \n \n \n \n Creator\n \n \n \n Owner\n \n \n \n \n \n \n \n \n \n Are you sure you want to leave this space? You will lose access to all the exclusive\n content.\n \n \n \n \n {t('buttons.cancel', 'Cancel')}\n \n \n {t('buttons.confirm', 'Confirm')}\n \n \n \n \n \n \n {userEmail !== '' ? (\n <>\n \n The current email you have provided to this Space is{' '}\n {userEmail}\n \n \n \n You can enter a different email below. Use the toggle to delete the email instead\n of modifying it.\n \n \n {userEmail !== '' && (\n \n )}\n {!deleteToggle && (\n }\n placeholder=\"Enter your email\"\n value={emailInput}\n onChange={handleEmailChange}\n />\n )}\n {deleteToggle && (\n <>\n \n \n Are you sure you want to delete your email from this Space? You might stop\n receiving updates about this Space.\n \n \n {spaceRequiresEmail && (\n \n \n This Space requires an email. If you delete your email, you will be removed\n from the Space.\n \n \n )}\n \n )}\n \n ) : (\n <>\n \n \n Add an email to receive updates about this Space. You can update or remove your\n email at any time.\n \n \n }\n placeholder=\"Enter your email\"\n value={emailInput}\n onChange={handleEmailChange}\n />\n \n )}\n \n \n {t('buttons.cancel', 'Cancel')}\n \n \n {t('buttons.confirm', 'Confirm')}\n \n \n \n \n \n )\n}\n\nexport default SpacesInfo\n","import { Stack, Switch, Text, useMantineTheme } from '@mantine/core'\nimport { useDisclosure, useMediaQuery } from '@mantine/hooks'\nimport { IconBell } from '@tabler/icons-react'\nimport React, { useCallback, useEffect, useMemo, useState } from 'react'\nimport { useParams } from 'react-router-dom'\nimport { toHex } from 'viem'\n\nimport l1FeedBanner from '@/assets/l1Feed/l1FeedBanner.jpg'\nimport RootButton from '@/components/Buttons/RootButton'\nimport ErrorMessage from '@/components/ErrorMessage'\nimport Lamina1Logo from '@/components/Lamina1Logo'\nimport Loading from '@/components/Loading'\nimport ImageWrapper from '@/components/MediaWrappers/ImageWrapper'\nimport ModalSkeleton from '@/components/Modals/ModalSkeleton'\nimport PageSelector from '@/components/PageSelector'\nimport { SpecialInputText } from '@/components/SpecialInputText'\nimport useFeed from '@/hooks/useFeed'\nimport useSessionStorage from '@/hooks/useSessionStorage'\nimport useSpaceRegistry from '@/hooks/useSpaceRegistry'\nimport { useAuth } from '@/plugins/auth'\nimport { Entry, L1_SPACE_FEED_CONTENT_TYPE } from '@/plugins/contentful/api'\nimport client from '@/plugins/contentful/client'\nimport { BodyStack } from '@/styled/components'\n\nimport Header from '../../Header/Header'\nimport Content from './Content'\nimport SpacesInfo from './SpacesInfo'\n\nconst Component: React.FC = () => {\n const { address } = useAuth()\n const { id } = useParams()\n const [content, setContent] = useSessionStorage(`spaceFeed`, [])\n const [isLoading, setIsLoading] = useState(false)\n const [errorContent, setErrorContent] = useState('')\n const theme = useMantineTheme()\n const isMobile = useMediaQuery(`(max-width: ${theme.breakpoints.md})`)\n const [opened, { open, close }] = useDisclosure()\n const [openedErrorJoin, { open: openErrorJoin, close: closeErrorJoin }] = useDisclosure()\n const { loading: loadingSpaces, spacesMetadata } = useSpaceRegistry()\n\n const spaceId = useMemo(() => Number(id) || 1, [id])\n const spaceIdHex = useMemo(() => toHex(spaceId), [spaceId])\n\n const {\n joined,\n size,\n members,\n joinSpace,\n leaveSpace,\n loading: loadingFeed,\n error: errorFeed,\n } = useFeed(spaceIdHex)\n\n const [emailInput, setEmailInput] = useState('')\n\n const spaceRequiresEmail = useMemo(\n () => spacesMetadata[spaceId]?.metadataInfo?.feedSettings?.emailRequired || false,\n [spacesMetadata]\n )\n\n const handleEmailChange = useCallback((e: React.ChangeEvent) => {\n setEmailInput(e.target.value)\n }, [])\n\n const isEmailValid = useMemo(() => {\n const re = /\\S+@\\S+\\.\\S+/\n return re.test(emailInput)\n }, [emailInput])\n\n const [emailToggle, setEmailToggle] = useState(false)\n\n const handleSetEmailToggle = useCallback(() => {\n setEmailInput('')\n setEmailToggle(prev => !prev)\n }, [])\n\n // Scroll to top on page load\n useEffect(() => {\n window.scrollTo(0, 0)\n }, [])\n\n // Loading\n const loading = useMemo(\n () => loadingFeed || loadingSpaces || isLoading,\n [loadingFeed, loadingSpaces, isLoading]\n )\n\n // Error handling\n const error = useMemo(() => {\n if (errorFeed.isError) {\n return errorFeed.msg\n }\n return errorContent\n }, [errorFeed, errorContent])\n\n useEffect(() => {\n if (errorFeed.isError) {\n openErrorJoin()\n }\n }, [errorFeed, openErrorJoin])\n\n const handleClose = useCallback(() => {\n // Reset always\n setEmailInput('')\n setEmailToggle(false)\n close()\n }, [close])\n\n const handleJoinSpace = useCallback(() => {\n joinSpace(emailInput)\n handleClose()\n }, [emailInput, joinSpace, handleClose])\n\n // Get user space status\n const userSpace = useMemo(() => joined.find(({ id: sid }) => sid === String(spaceId)), [joined])\n\n // Check if user has joined space\n const hasJoined = useMemo(() => !!userSpace, [userSpace])\n\n // Get the email stored for this space\n const userEmail = useMemo(() => userSpace?.email || '', [userSpace])\n\n useEffect(() => {\n if (!content.length) {\n setIsLoading(true)\n client\n .getEntries({ content_type: L1_SPACE_FEED_CONTENT_TYPE })\n .then((response: any) => {\n // order responses by timestamp or updatedAt date (if timestamp is not available)\n const sortedResponse = response.items.sort((a: any, b: any) => {\n const aDate = a.fields?.timestamp\n ? new Date(a.fields.timestamp)\n : new Date(a.sys.updatedAt)\n const bDate = b.fields?.timestamp\n ? new Date(b.fields.timestamp)\n : new Date(b.sys.updatedAt)\n return bDate.getTime() - aDate.getTime()\n })\n setContent(sortedResponse)\n })\n .catch((err: any) => {\n setErrorContent(err.message)\n setIsLoading(false)\n })\n .finally(() => {\n setIsLoading(false)\n })\n }\n }, [content])\n\n return (\n
\n \n \n \n \n \n {!loading && address && (\n \n {!hasJoined ? (\n Join Space\n ) : (\n \n Joined\n \n )}\n \n )}\n \n \n {}} style={{ width: 'fit-content' }} />\n \n {loading && }\n {error && }\n {!loading &&\n !errorContent &&\n content &&\n content.length > 0 &&\n content.map((item, index) => (\n \n ))}\n \n \n {!isMobile && (\n \n )}\n \n \n \n \n {spaceRequiresEmail ? (\n \n Email is required to join in order to receive important updates from the Space owner.\n You can update your email at any time after joining.\n \n ) : (\n <>\n \n Your email is optional and will only be used to receive updates from the Space\n owner. You can update or remove your email at any time after joining.\n \n \n \n )}\n {(spaceRequiresEmail || emailToggle) && (\n }\n placeholder=\"Enter your email\"\n value={emailInput}\n onChange={handleEmailChange}\n />\n )}\n \n \n Cancel\n \n \n Confirm\n \n \n \n \n \n \n \n \n \n Close\n \n \n \n \n
\n )\n}\nComponent.displayName = 'Feed'\n\n// eslint-disable-next-line import/prefer-default-export\nexport { Component }\n"],"names":["useHover","hovered","setHovered","useState","ref","useRef","onMouseEnter","useCallback","onMouseLeave","useEffect","_a","_b","IconBell","createReactComponent","IconLogin2","IconRss","IconWorld","l1FeedBanner","useFeed","spaceId","token","useSpacesAuth","loading","setLoading","size","setSize","members","setMembers","joined","setJoined","defaultEmail","setDefaultEmail","error","setError","fetchSize","req","retval","post","STUDIO_BOT","err","fetchMembers","fetchJoined","get","fetchEmail","promises","p","joinSpace","userEmail","leaveSpace","saveEmail","deleteEmail","itemIconBlue","itemIconGreen","PostHeader","timestamp","accessConditions","jsx","Stack","jsxs","UserDetails","LAMINA1_OFFICIAL_ADDRESS","key","condition","Tooltip","Box","Text","classes","formattedDateTime","NftsRequiredList","collectionsIds","andItemsIds","orItemsIds","parentRef","data","useQuery","QUERY_GET_COLLECTIONS_BY_IDS","items","QUERY_GET_ITEMS_BY_IDS","orItems","sortedData","id","nft","sortedDataItems","sortedDataOrItems","Title","SimpleGrid","collection","CollectionsCard","item","ItemsCard","Content","index","hasJoined","handleJoinSpace","theme","useMantineTheme","status","connect","address","useAuth","navigate","useNavigate","description","image","videoLink","thumbnailLock","buttonText","buttonLink","contentAuth","file","title","opened","open","close","useDisclosure","lockHovered","setLockHovered","checkFlags","setCheckFlags","variables","useMemo","baseConditions","generateNftConditions","collectionConditions","andConditions","orConditions","anyFromCollection","allFromTokenList","tokenId","someFromTokenList","contentAuthConditions","falseCondition","whereCollectionConditions","whereAndConditions","whereOrConditions","refetch","QUERY_GET_CONTENT_AUTH","hasNftsRequired","nAndConditions","_d","_c","hasTokenFromCollection","hasAllTokensFromList","hasSomeTokensFromList","hasAccess","RootButton","Web3Button","IconWrapper","itemIconWhite","itemIconBlack","handleNavigation","saveLocation","descriptionWithoutAccess","phrases","Divider","ParseRichText","ImageWrapper","replaceYoutubeLinkEndpoint","ActionIcon","optionMenuClasses","IconLockFilled","ModalSkeleton","MembersList","ScrollArea","member","SpaceInfoStats","value","onClick","SpacesInfo","nMembers","nPosts","spaceRequiresEmail","t","useTranslation","openedLeave","openLeave","closeLeave","openedEmail","openEmail","closeEmail","emailInput","setEmailInput","deleteToggle","setDeleteToggle","handleEmailChange","e","handleDeleteToggle","prev","isEmailValid","handleLeave","handleCloseEmail","handleModifyEmail","OptionsMenu","formatValueToSuffix","Trans","Fragment","Switch","SpecialInputText","Component","useParams","content","setContent","useSessionStorage","isLoading","setIsLoading","errorContent","setErrorContent","isMobile","useMediaQuery","openedErrorJoin","openErrorJoin","closeErrorJoin","loadingSpaces","spacesMetadata","useSpaceRegistry","spaceIdHex","toHex","loadingFeed","errorFeed","emailToggle","setEmailToggle","handleSetEmailToggle","handleClose","userSpace","sid","client","L1_SPACE_FEED_CONTENT_TYPE","response","sortedResponse","a","b","aDate","Header","BodyStack","Lamina1Logo","PageSelector","Loading","ErrorMessage"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4]}