{"version":3,"file":"static/chunks/9068.3b093f9668550966.js","mappings":"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","sources":["webpack://_N_E/./src/graphql/custom_queries.ts","webpack://_N_E/./components/LoginModal.tsx","webpack://_N_E/./components/Discover.tsx","webpack://_N_E/./data/discover.ts"],"sourcesContent":["import * as APITypes from \"../API\";\ntype GeneratedQuery = string & {\n __generatedQueryInput: InputType;\n __generatedQueryOutput: OutputType;\n};\n\nexport const listArtsCustom = /* GraphQL */ `\n query ListArtsCustom(\n $filter: ModelArtFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listArts(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n user {\n email\n }\n createdAt\n like\n }\n nextToken\n }\n }\n` as GeneratedQuery;\n\nexport const listArtsCustom2 = /* GraphQL */ `\n query listArtsCustom2(\n $filter: ModelArtFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listArts(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n s3Image {\n key\n }\n }\n nextToken\n __typename\n }\n }\n` as GeneratedQuery;\n\nexport const getArtCustom = /* GraphQL */ `\n query getArtCustom($id: ID!) {\n getArt(id: $id) {\n id\n user {\n email\n }\n like\n }\n }\n` as GeneratedQuery;\n\nexport const getArtCustom2 = /* GraphQL */ `\n query getArtCustom2($id: ID!) {\n getArt(id: $id) {\n id\n user {\n username\n email\n }\n createdAt\n subject\n subOption\n feeling\n medium\n styles\n color\n s3Image {\n key\n }\n like\n approve\n deleted\n }\n }\n` as GeneratedQuery;\n\nexport const getArtCustom3 = /* GraphQL */ `\n query getArtCustom3($id: ID!) {\n getArt(id: $id) {\n user {\n username\n }\n createdAt\n subject\n subOption\n feeling\n medium\n styles\n color\n s3Image {\n key\n }\n }\n }\n` as GeneratedQuery;\n\nexport const artsByUserIdAndCreatedAtCustom = /* GraphQL */ `\nquery artsByUserIdAndCreatedAtCustom(\n $userId: ID!\n $sortDirection: ModelSortDirection\n $filter: ModelArtFilterInput\n $limit: Int\n $nextToken: String\n) {\n artsByUserIdAndCreatedAt(\n userId: $userId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n userId\n createdAt\n user {\n id\n email\n username\n identityId\n }\n title\n }\n nextToken\n }\n}\n` as GeneratedQuery<\n APITypes.ArtsByUserIdAndCreatedAtQueryVariables,\n APITypes.ArtsByUserIdAndCreatedAtQuery\n>;\n\nexport const ordersByInvoiceNumberCustom = /* GraphQL */ `\n query ordersByInvoiceNumberCustom(\n $invoiceNumber: String!\n $filter: ModelOrderFilterInput\n ) {\n ordersByInvoiceNumber(\n invoiceNumber: $invoiceNumber\n filter: $filter\n ) {\n items {\n id\n createdAt\n invoiceNumber\n invoiceId\n receiptNumber\n email\n status\n fulfillment_tracking_id\n fulfillment_method\n fulfillment_status\n fulfillment_createdAt\n fulfillment_updatedAt\n fulfillment_completedAt\n }\n }\n }\n` as GeneratedQuery<\n APITypes.OrdersByInvoiceNumberQueryVariables,\n APITypes.OrdersByInvoiceNumberQuery\n>;\n\nexport const usersByEmailCustom = /* GraphQL */ `\n query UsersByEmailCustom(\n $email: String!\n $sortDirection: ModelSortDirection\n $filter: ModelUserFilterInput\n $limit: Int\n $nextToken: String\n ) {\n usersByEmail(\n email: $email\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n createdAt\n email\n emailVerified\n identityId\n credits\n boughtCredits\n creditPurchases {\n items {\n id\n createdAt\n user {\n id\n createdAt\n email\n emailVerified\n identityId\n credits\n boughtCredits\n updatedAt\n __typename\n }\n creditAmount\n checkoutSessionId\n paymentIntentId\n updatedAt\n userCreditPurchasesId\n __typename\n }\n nextToken\n __typename\n }\n orders {\n items {\n id\n createdAt\n user {\n id\n createdAt\n email\n emailVerified\n identityId\n credits\n boughtCredits\n updatedAt\n __typename\n }\n stripeCustomerId\n invoiceNumber\n invoiceId\n receiptNumber\n email\n status\n cost_total\n cost_taxes\n cost_shipping\n couponId\n coupon_amount_off\n coupon_name\n discountId\n discount_amount\n promotionID\n promotion_code\n fulfillment_tracking_id\n fulfillment_method\n fulfillment_status\n fulfillment_createdAt\n fulfillment_updatedAt\n fulfillment_completedAt\n billing_name\n billing_address\n billing_address2\n billing_city\n billing_state\n billing_zip\n billing_country\n shipping_name\n shipping_address\n shipping_address2\n shipping_city\n shipping_state\n shipping_zip\n shipping_country\n shipping_phone\n notes\n vendor\n order_source\n currency\n cancel\n updatedAt\n userOrdersId\n orderCartId\n __typename\n }\n nextToken\n __typename\n }\n updatedAt\n __typename\n }\n nextToken\n __typename\n }\n }\n` as GeneratedQuery<\n APITypes.UsersByEmailQueryVariables,\n APITypes.UsersByEmailQuery\n>;\n\nexport const ordersByEmailAndCreatedAtCustom = /* GraphQL */ `\n query OrdersByEmailAndCreatedAtCustom(\n $email: String!\n $createdAt: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelOrderFilterInput\n $limit: Int\n $nextToken: String\n ) {\n ordersByEmailAndCreatedAt(\n email: $email\n createdAt: $createdAt\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n invoiceNumber\n receiptNumber\n email\n cost_total\n discount_amount\n currency\n userOrdersId\n orderCartId\n __typename\n }\n nextToken\n __typename\n }\n }\n` as GeneratedQuery<\n APITypes.OrdersByEmailAndCreatedAtQueryVariables,\n APITypes.OrdersByEmailAndCreatedAtQuery\n>;\n\nexport const getUserCustom = /* GraphQL */ `\n query GetUserCustom($id: ID!) {\n getUser(id: $id) {\n email\n identityId\n credits\n stripeCustomerId\n }\n }\n` as GeneratedQuery;\n","import {\n Authenticator,\n useAuthenticator,\n View,\n Button,\n CheckboxField,\n} from \"@aws-amplify/ui-react\";\nimport React from \"react\";\nimport Link from \"next/link\";\n\nconst components = {\n SignIn: {\n Footer() {\n const { toForgotPassword } = useAuthenticator();\n\n return (\n \n \n Forgot Password\n \n \n );\n },\n },\n SignUp: {\n Footer() {\n const { toSignIn } = useAuthenticator();\n\n return (\n \n \n Back to Sign In\n \n \n );\n },\n FormFields() {\n const { validationErrors } = useAuthenticator();\n\n return (\n <>\n {/* Re-use default `Authenticator.SignUp.FormFields` */}\n \n\n {/* Append & require Terms & Conditions field to sign up */}\n \n I agree with the{\" \"}\n \n Terms & Conditions\n \n \n }\n />\n \n );\n },\n },\n};\nconst services = {\n async validateCustomSignUp(formData) {\n if (!formData.acknowledgement) {\n return {\n acknowledgement: \"You must agree to the Terms & Conditions\",\n };\n }\n },\n};\n\nexport default function LoginComponent() {\n if (typeof document !== \"undefined\") {\n const headingElement = document.querySelector(\".amplify-heading--4\");\n if (headingElement) {\n headingElement.textContent = \"We Emailed You\";\n }\n }\n\n return (\n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\n// import SearchIcon from \"@mui/icons-material/Search\";\nimport { useRouter } from \"next/router\";\nimport { HiX } from \"react-icons/hi\";\nimport dynamic from \"next/dynamic\";\nimport Image from \"next/image\";\nimport { useAuthenticator, Collection } from \"@aws-amplify/ui-react\";\nimport { generateClient } from \"aws-amplify/api\";\nimport { Loader, Loader2, ButtonLoader } from \"./Loader\";\nimport { categories } from \"../data/storyflow\";\nimport {\n discoverImageIds,\n discoverImageIdentityIds,\n discoverImageUrls,\n} from \"../data/discover\";\nimport { getArtCustom3, listArtsCustom2 } from \"../src/graphql/custom_queries\";\nimport {\n ModelArtFilterInput,\n ModelArtConditionInput,\n ModelBooleanInput,\n listArtsCustom2Query,\n getArtCustom3Query,\n} from \"../src/API\";\nimport LoginComponent from \"./LoginModal\";\n\nconst ImageCard = dynamic(() => import(\"./ImageCard\"));\n\ninterface DiscoverProps {\n id: string;\n}\n\nconst DiscoverComponent: React.FC = ({ id }) => {\n let idIndex: number = null;\n let fromShare: boolean = false;\n let shareId: string;\n if (id !== null) {\n idIndex = -1;\n fromShare = true;\n shareId = id.split(\"/\")[1];\n }\n const router = useRouter();\n const client = generateClient();\n const { authStatus } = useAuthenticator((context) => [context.authStatus]);\n const handleContextMenu = (event: React.MouseEvent) => {\n event.preventDefault();\n };\n const handleDragStart = (event: React.DragEvent) => {\n event.preventDefault();\n };\n const [applyView, setApplyView] = useState(false);\n const [imageSelected, setImageSelected] = useState(fromShare);\n const [selectedIndex, setSelectedIndex] = useState(idIndex);\n const [highQualityUrl, setHighQualityUrl] = useState(\"\");\n const [imageDetails, setImageDetails] = useState({});\n const [imageKeys, setImageKeys] = useState([]);\n const [imageIds, setImageIds] = useState([]);\n const [imageUrls, setImageUrls] = useState([]);\n const [selectedOptions, setSelectedOptions] = useState({});\n const [showCategories, setShowCategories] = useState({}); // Initialize state for toggling each category\n const [loading, setLoading] = useState(true);\n const [loading2, setLoading2] = useState(false);\n const [showLogin, setShowLogin] = useState(false);\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const [browserWindowHeight, setBrowserWindowHeight] = useState(\n typeof window !== \"undefined\" ? window.innerHeight : 0,\n );\n const [browserWindowWidth, setBrowserWindowWidth] = useState(\n typeof window !== \"undefined\" ? window.innerWidth : 0,\n );\n\n // Function to update browserWindowHeight when the window is resized\n const updateBrowserWindowHeight = () => {\n setBrowserWindowHeight(window.innerHeight);\n };\n const updateBrowserWindowWidth = () => {\n setBrowserWindowWidth(window.innerWidth);\n };\n\n // Add an event listener to the window for the \"resize\" event\n useEffect(() => {\n if (typeof window !== \"undefined\") {\n window.addEventListener(\"resize\", updateBrowserWindowHeight);\n window.addEventListener(\"resize\", updateBrowserWindowWidth);\n\n // Cleanup the event listener when the component unmounts\n return () => {\n window.removeEventListener(\"resize\", updateBrowserWindowHeight);\n window.removeEventListener(\"resize\", updateBrowserWindowWidth);\n };\n }\n }, []);\n\n useEffect(() => {\n // If ID is in the search parameters of the URL lets update the metadata\n if (id !== null) {\n console.log(\"Updating meta\");\n // Define meta tags based on the 'id' parameter\n const metaTags = {\n title: \"Page Title for ID 123456\",\n description: \"Description for ID 123456\",\n image: `${highQualityUrl}`,\n imagetype: \"image/png\",\n imagewidth: \"200\",\n imageheight: \"200\",\n };\n\n const updateMetaTag = (property: string, content: string) => {\n let metaTag = document.querySelector(\n `meta[property=\"${property}\"]`,\n ) as HTMLMetaElement | null;\n\n if (!metaTag) {\n // Create a new meta tag if it doesn't exist\n metaTag = document.createElement(\"meta\");\n metaTag.setAttribute(\"property\", property);\n document.head.appendChild(metaTag);\n }\n\n // Set the content of the meta tag\n metaTag.content = content;\n };\n\n // Update meta tags based on the 'id' parameter\n updateMetaTag(\"og:title\", metaTags.title);\n updateMetaTag(\"og:description\", metaTags.description);\n updateMetaTag(\"og:image\", metaTags.image);\n updateMetaTag(\"og:image:type\", metaTags.imagetype);\n updateMetaTag(\"og:image:width\", metaTags.imagewidth);\n updateMetaTag(\"og:image:height\", metaTags.imageheight);\n }\n }, [id, highQualityUrl]);\n\n useEffect(() => {\n async function fetchFirstImages() {\n const filterdeleted: ModelBooleanInput = { ne: true };\n const filterapprove: ModelBooleanInput = { ne: false };\n // const filterlike: ModelBooleanInput = { eq: true };\n const filter: ModelArtFilterInput = {\n deleted: filterdeleted,\n approve: filterapprove,\n // like: filterlike,\n };\n const limit: number = 100;\n\n const request = await client.graphql({\n authMode: \"apiKey\",\n query: listArtsCustom2,\n variables: {\n filter,\n limit,\n },\n });\n return request.data as listArtsCustom2Query;\n }\n async function fetchNextImages(nextToken: string) {\n const filterdeleted: ModelBooleanInput = { ne: true };\n const filterapprove: ModelBooleanInput = { ne: false };\n // const filterlike: ModelBooleanInput = { eq: true };\n const filter: ModelArtFilterInput = {\n deleted: filterdeleted,\n approve: filterapprove,\n // like: filterlike,\n };\n const limit: number = 100;\n\n const request = await client.graphql({\n authMode: \"apiKey\",\n query: listArtsCustom2,\n variables: {\n filter,\n limit,\n nextToken,\n },\n });\n return request.data as listArtsCustom2Query;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n async function getImages() {\n const firstImages: listArtsCustom2Query = await fetchFirstImages();\n let imageItems = firstImages.listArts?.items;\n let ids: string[];\n let identityId: string[];\n let nextImages: listArtsCustom2Query;\n let nexttoken = firstImages.listArts.nextToken;\n let nextids: string[];\n let nextIdentityId: string[];\n if (imageItems) {\n [ids, identityId] = imageItems.reduce(\n (acc, art) => {\n acc[0].push(art.id);\n acc[1].push(art.s3Image.key);\n return acc;\n },\n [[], []],\n );\n }\n while (ids.length < 100) {\n nextImages = await fetchNextImages(nexttoken);\n imageItems = nextImages.listArts.items;\n [nextids, nextIdentityId] = imageItems.reduce(\n (acc, art) => {\n acc[0].push(art.id);\n acc[1].push(art.s3Image.key);\n return acc;\n },\n [[], []],\n );\n ids = ids.concat(nextids);\n identityId = identityId.concat(nextIdentityId);\n nexttoken = nextImages.listArts.nextToken;\n // Break the loop if there are no more next images\n if (!nexttoken) {\n break;\n }\n }\n setImageKeys(identityId);\n setImageIds(ids);\n }\n if (Object.keys(selectedOptions).length === 0) {\n // setApplyView(false);\n // setLoading(true);\n // getImages();\n setImageKeys(discoverImageIdentityIds);\n setImageIds(discoverImageIds);\n setImageUrls(discoverImageUrls);\n setLoading(false);\n }\n }, [client, selectedOptions]);\n\n async function fetchFilterFirst(filter) {\n const limit: number = 100;\n\n const request = await client.graphql({\n authMode: \"apiKey\",\n query: listArtsCustom2,\n variables: {\n filter,\n limit,\n },\n });\n return request.data as listArtsCustom2Query;\n }\n async function fetchFilterNextImages(filter, nextToken: string) {\n const limit: number = 100;\n\n const request = await client.graphql({\n authMode: \"apiKey\",\n query: listArtsCustom2,\n variables: {\n filter,\n limit,\n nextToken,\n },\n });\n return request.data as listArtsCustom2Query;\n }\n\n async function getImagesFilter() {\n setLoading(true);\n const orArraysByKeys: Record> = {};\n\n Object.keys(selectedOptions).forEach((key) => {\n const optionArray = selectedOptions[key];\n if (optionArray && optionArray.length > 0) {\n const conditions = optionArray.map((value) => ({\n [key.toLowerCase()]: { eq: value },\n }));\n orArraysByKeys[key] = conditions;\n }\n });\n\n const filterString = Object.keys(orArraysByKeys).map((key) => {\n const orArray = orArraysByKeys[key];\n const orItems: ModelArtFilterInput = {\n or: orArray,\n };\n return orItems;\n });\n\n const filter: ModelArtFilterInput = {\n deleted: { ne: true },\n approve: { ne: false },\n and: filterString,\n };\n\n const firstImages: listArtsCustom2Query = await fetchFilterFirst(filter);\n let imageItems = firstImages.listArts?.items;\n let ids: string[];\n let identityId: string[];\n let nextImages: listArtsCustom2Query;\n let nexttoken = firstImages.listArts.nextToken;\n let nextids: string[];\n let nextIdentityId: string[];\n if (imageItems) {\n [ids, identityId] = imageItems.reduce(\n (acc, art) => {\n acc[0].push(art.id);\n acc[1].push(art.s3Image.key);\n return acc;\n },\n [[], []],\n );\n }\n while (ids.length < 100) {\n nextImages = await fetchFilterNextImages(filter, nexttoken);\n imageItems = nextImages.listArts.items;\n [nextids, nextIdentityId] = imageItems.reduce(\n (acc, art) => {\n acc[0].push(art.id);\n acc[1].push(art.s3Image.key);\n return acc;\n },\n [[], []],\n );\n ids = ids.concat(nextids);\n identityId = identityId.concat(nextIdentityId);\n nexttoken = nextImages.listArts.nextToken;\n // Break the loop if there are no more next images\n if (!nexttoken) {\n break;\n }\n }\n setImageKeys(identityId);\n setImageIds(ids);\n }\n\n useEffect(() => {\n async function getImageUrl(imageid: string) {\n try {\n // Submit the body to the API\n const res = await fetch(\"/api/getImageUrl\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n email: \"discover@raraity.com\",\n id: imageid,\n }),\n });\n\n // Wait for the response\n const response = await res.json();\n return response;\n } catch (error) {\n if (error instanceof Error) {\n console.error(error.message);\n } else {\n console.error(error);\n }\n return error;\n }\n }\n\n async function fetchImages() {\n try {\n setLoading(true);\n const imagePromises = imageIds.map((imageid) => getImageUrl(imageid));\n const imgUrls = await Promise.all(imagePromises);\n setImageUrls(imgUrls);\n setLoading(false);\n } catch (error) {\n console.error(error);\n setLoading(false);\n }\n }\n if (Object.keys(selectedOptions).length !== 0) fetchImages();\n }, [imageIds, selectedOptions]);\n\n const handleOptionChange = (category, option) => {\n setSelectedOptions((prevSelectedOptions) => {\n const updatedOptions = { ...prevSelectedOptions };\n\n if (Array.isArray(updatedOptions[category])) {\n const index = updatedOptions[category].indexOf(option);\n\n if (index !== -1) {\n // If the option is already selected, remove it\n updatedOptions[category] = [\n ...updatedOptions[category].slice(0, index),\n ...updatedOptions[category].slice(index + 1),\n ];\n\n // If the last option is removed, delete the entire array\n if (updatedOptions[category].length === 0) {\n delete updatedOptions[category];\n }\n } else {\n // If the option is not selected, add it\n updatedOptions[category] = [...updatedOptions[category], option];\n }\n } else {\n // If the category is not an array, it means no option is selected yet\n // Create a new array with the selected option\n updatedOptions[category] = [option];\n }\n\n return updatedOptions;\n });\n };\n\n // Set initial state for each category\n useEffect(() => {\n const initialShowState = {};\n categories.forEach((category) => {\n initialShowState[category.category] = false;\n });\n setShowCategories(initialShowState);\n }, []);\n\n // Function to toggle a specific category\n const toggleCategory = (categoryName) => {\n setShowCategories((prevState) => ({\n ...prevState,\n [categoryName]: !prevState[categoryName],\n }));\n };\n\n useEffect(() => {\n if (Object.keys(selectedOptions).length !== 0) {\n setApplyView(true);\n }\n }, [selectedOptions]);\n\n useEffect(() => {\n async function fetchHighQuality(imageid: string) {\n try {\n // Submit the body to the API\n const res = await fetch(\"/api/getImageUrl\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n email: \"discover@raraity.com\",\n id: imageid,\n bucket: process.env.NEXT_PUBLIC_BUCKET_NAME,\n }),\n });\n\n // Wait for the response\n const response = await res.json();\n return response;\n } catch (error) {\n if (error instanceof Error) {\n console.error(error.message);\n } else {\n console.error(error);\n }\n return error;\n }\n }\n async function fetchImageDetails(imageid) {\n try {\n const variables = { id: imageid };\n const response = await client.graphql({\n authMode: \"apiKey\",\n query: getArtCustom3,\n variables,\n });\n return response.data as getArtCustom3Query;\n } catch (error) {\n console.error(\"Error fetching art:\", error);\n throw error;\n }\n }\n async function storeUrl() {\n if (selectedIndex === -1) {\n const key = `protected/${id}`;\n setHighQualityUrl(await fetchHighQuality(`${key}`));\n } else {\n const key = imageKeys[selectedIndex];\n setHighQualityUrl(await fetchHighQuality(`${key}`));\n }\n }\n async function storeImageDetails() {\n if (selectedIndex === -1) {\n setImageDetails(await fetchImageDetails(shareId));\n } else {\n const imageid = imageIds[selectedIndex];\n setImageDetails(await fetchImageDetails(imageid));\n }\n }\n\n if (selectedIndex !== null) {\n storeUrl();\n storeImageDetails();\n }\n }, [client, id, imageIds, imageKeys, selectedIndex, shareId]);\n\n const createScratch = () => {\n router.push(\"/create-story\");\n };\n\n const createElement = (feeling, subject, medium, styles, color) => {\n const queryParams = new URLSearchParams();\n if (feeling) {\n queryParams.append(\"feeling\", feeling);\n }\n if (subject) {\n queryParams.append(\"subject\", subject);\n }\n // if (subOption) {\n // queryParams.append(\"subOption\", subOption.replace(/\\s/g, \"\"));\n // }\n if (medium) {\n queryParams.append(\"medium\", medium);\n }\n if (styles) {\n queryParams.append(\"styles\", styles);\n }\n if (color) {\n queryParams.append(\"color\", color);\n }\n\n const newUrl = `/create-story?${queryParams.toString()}`;\n router.push(newUrl);\n };\n\n // Event handler for toggling the mounting options visibility\n const toggleDetailsVisibility = () => {\n if (imageSelected) {\n setImageSelected(false);\n setSelectedIndex(null);\n } else {\n setImageSelected(true);\n }\n };\n\n // Create a ref for the popup containers to check if a click occurred inside them\n const imageSelectedRef = useRef(null);\n const buttonRefs = useRef([]);\n\n // Add event listeners to handle clicks outside of popups\n useEffect(() => {\n const handleClickOutside = (event) => {\n // Check if the click occurred inside the popup\n if (\n imageSelectedRef.current &&\n !imageSelectedRef.current.contains(event.target)\n ) {\n // Check if the click occurred on any of the buttons\n const clickedOnButton = buttonRefs.current.some((ref) =>\n ref.current.contains(event.target),\n );\n\n // If the click occurred outside the popup and not on any button, close the popup\n if (!clickedOnButton) {\n setImageSelected(false);\n setShowLogin(false);\n }\n }\n };\n\n // Add the event listener to the document\n document.addEventListener(\"mousedown\", handleClickOutside);\n\n // Clean up the event listener when the component unmounts\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, [imageSelected]);\n\n const showLoginComponent = () => {\n setShowLogin(true);\n };\n\n return (\n
\n
\n {/* Until search is working correctly, we just show Title */}\n

Discover Art

\n {/*
\n \n \n \n \n
*/}\n
\n
\n
\n

\n Filter\n

\n {applyView && (\n <>\n {\n getImagesFilter();\n }}\n >\n Apply\n \n {\n setApplyView(false);\n setSelectedOptions({});\n }}\n >\n Clear\n \n \n )}\n {categories.map((category) => (\n
\n
\n
\n 1536\n ? \"text-lg\"\n : browserWindowWidth > 640\n ? \"text-base\"\n : \"text-sm\"\n }\n >\n {category.category}\n \n \n
\n {showCategories[category.category] && (\n
\n {category.options.map((option) => (\n \n \n handleOptionChange(category.category, option.name)\n }\n disabled={loading}\n id={`${category.category}-${option.name}`}\n />\n 1536\n ? \"1rem\"\n : browserWindowWidth > 640\n ? \"0.875rem\"\n : \"0.75rem\",\n }}\n >\n {option.name}\n \n \n ))}\n
\n )}\n
\n
\n ))}\n
\n {loading ? (\n 1536\n ? \"300px\"\n : browserWindowWidth > 640\n ? \"200px\"\n : \"150px\",\n }}\n >\n {browserWindowWidth > 768 ? : }\n
\n ) : imageUrls.length > 0 ? (\n \n \n {(item: string, index: number) => (\n \n {\n setHighQualityUrl(\"\");\n setSelectedIndex(index);\n toggleDetailsVisibility();\n }}\n disabled={imageSelected}\n aria-label=\"ImageSelect\"\n >\n \n \n
\n )}\n \n \n ) : !loading ? (\n
\n

No Results

\n
\n ) : null}\n \n\n {imageSelected && highQualityUrl && (\n <>\n \n
\n {\n toggleDetailsVisibility();\n }}\n aria-label=\"close\"\n >\n \n \n
\n \n \n {Object.keys(imageDetails).length !== 0 && (\n <>\n
\n
\n

\n @{imageDetails.getArt.user?.username}\n

\n

\n Created:{\" \"}\n {new Date(\n imageDetails.getArt.createdAt,\n ).toLocaleDateString()}\n

\n
\n
\n

Elements

\n
\n

\n {imageDetails.getArt.styles}\n {imageDetails.getArt.styles &&\n (imageDetails.getArt.subject ||\n imageDetails.getArt.feeling ||\n imageDetails.getArt.color ||\n imageDetails.getArt.medium) &&\n \", \"}\n\n {imageDetails.getArt.subject}\n {imageDetails.getArt.subject &&\n (imageDetails.getArt.feeling ||\n imageDetails.getArt.color ||\n imageDetails.getArt.medium) &&\n \", \"}\n\n {imageDetails.getArt.feeling}\n {imageDetails.getArt.feeling &&\n (imageDetails.getArt.color ||\n imageDetails.getArt.medium) &&\n \", \"}\n\n {imageDetails.getArt.color}\n {imageDetails.getArt.color &&\n imageDetails.getArt.medium &&\n \", \"}\n\n {imageDetails.getArt.medium}\n

\n
\n
\n
\n
\n

Ready to Create Your Own?

\n
\n \n authStatus === \"authenticated\"\n ? createScratch()\n : showLoginComponent()\n }\n >\n {loading2 ? : \"Create from scratch\"}\n \n {\n setLoading2(true);\n if (authStatus === \"authenticated\") {\n createElement(\n imageDetails.getArt.feeling,\n imageDetails.getArt.subject,\n imageDetails.getArt.medium,\n imageDetails.getArt.styles,\n imageDetails.getArt.color,\n );\n } else {\n showLoginComponent();\n }\n }}\n >\n {loading2 ? : \"Use These Elements\"}\n \n {showLogin && }\n
\n
\n \n )}\n \n \n \n )}\n \n );\n};\n\nexport default DiscoverComponent;\n\nexport async function getStaticProps() {\n return {\n props: { page: \"Discover\" },\n };\n}\n","export const discoverImageUrls: Array = [\n \"/discover/1887511c-0162-4b20-819e-8bc2f20fe855.png\",\n \"/discover/d83ccc98-c013-4a06-b3d2-0756a449e9e2.png\",\n \"/discover/caa1345d-e1a8-4c07-a61b-4810ac77a7a6.png\",\n \"/discover/1228b56e-d4f8-4105-b147-35ff41970b4b.png\",\n \"/discover/c92fb4ab-97b1-428e-b425-d91acbeb062e.png\",\n \"/discover/aa975132-1d14-4531-bd8d-69741652c176.png\",\n \"/discover/95f63fdc-13be-4535-a404-d8a77afd548a.png\",\n \"/discover/5c36df61-5f4e-437e-a9a1-bd1b386710d1.png\",\n \"/discover/fd26a154-8a43-4d3f-aec2-4f0b86b5098b.png\",\n \"/discover/37cc9b57-a7fa-4e1c-8c7f-77a42244bab1.png\",\n \"/discover/7a4dde1b-a374-4a2d-ac02-a052a3afb53d.png\",\n \"/discover/dab68935-8d91-40b5-ad0b-53e86861d77c.png\",\n \"/discover/962a5129-44d5-4125-87ba-fe7341b1034b.png\",\n \"/discover/fa6d2146-513d-4faa-a1d7-21fa4b2a7fdf.png\",\n \"/discover/b4384a96-d9b3-4a2d-b777-a514defae934.png\",\n \"/discover/e511b0df-7d0e-488f-8518-f632622e29b4.png\",\n];\n\nexport const discoverImageIds: Array = [\n \"1887511c-0162-4b20-819e-8bc2f20fe855\",\n \"d83ccc98-c013-4a06-b3d2-0756a449e9e2\",\n \"caa1345d-e1a8-4c07-a61b-4810ac77a7a6\",\n \"1228b56e-d4f8-4105-b147-35ff41970b4b\",\n \"c92fb4ab-97b1-428e-b425-d91acbeb062e\",\n \"aa975132-1d14-4531-bd8d-69741652c176\",\n \"95f63fdc-13be-4535-a404-d8a77afd548a\",\n \"5c36df61-5f4e-437e-a9a1-bd1b386710d1\",\n \"fd26a154-8a43-4d3f-aec2-4f0b86b5098b\",\n \"37cc9b57-a7fa-4e1c-8c7f-77a42244bab1\",\n \"7a4dde1b-a374-4a2d-ac02-a052a3afb53d\",\n \"dab68935-8d91-40b5-ad0b-53e86861d77c\",\n \"962a5129-44d5-4125-87ba-fe7341b1034b\",\n \"fa6d2146-513d-4faa-a1d7-21fa4b2a7fdf\",\n \"b4384a96-d9b3-4a2d-b777-a514defae934\",\n \"e511b0df-7d0e-488f-8518-f632622e29b4\",\n];\n\nexport const discoverImageIdentityIds: Array = [\n \"protected/us-west-2:ceee7309-0969-47a7-b5bb-c4e8b74b6621/1887511c-0162-4b20-819e-8bc2f20fe855\",\n \"protected/us-west-2:ceee7309-0969-47a7-b5bb-c4e8b74b6621/d83ccc98-c013-4a06-b3d2-0756a449e9e2\",\n \"protected/us-west-2:8ac24a23-bcb2-40e2-bc88-4c49214d6e71/caa1345d-e1a8-4c07-a61b-4810ac77a7a6\",\n \"protected/us-west-2:8ac24a23-bcb2-40e2-bc88-4c49214d6e71/1228b56e-d4f8-4105-b147-35ff41970b4b\",\n \"protected/us-west-2:8ac24a23-bcb2-40e2-bc88-4c49214d6e71/c92fb4ab-97b1-428e-b425-d91acbeb062e\",\n \"protected/us-west-2:8ac24a23-bcb2-40e2-bc88-4c49214d6e71/aa975132-1d14-4531-bd8d-69741652c176\",\n \"protected/us-west-2:8ac24a23-bcb2-40e2-bc88-4c49214d6e71/95f63fdc-13be-4535-a404-d8a77afd548a\",\n \"protected/us-west-2:8ac24a23-bcb2-40e2-bc88-4c49214d6e71/5c36df61-5f4e-437e-a9a1-bd1b386710d1\",\n \"protected/us-west-2:8ac24a23-bcb2-40e2-bc88-4c49214d6e71/fd26a154-8a43-4d3f-aec2-4f0b86b5098b\",\n \"protected/us-west-2:8ac24a23-bcb2-40e2-bc88-4c49214d6e71/37cc9b57-a7fa-4e1c-8c7f-77a42244bab1\",\n \"protected/us-west-2:8ac24a23-bcb2-40e2-bc88-4c49214d6e71/7a4dde1b-a374-4a2d-ac02-a052a3afb53d\",\n \"protected/us-west-2:8ac24a23-bcb2-40e2-bc88-4c49214d6e71/dab68935-8d91-40b5-ad0b-53e86861d77c\",\n \"protected/us-west-2:8ac24a23-bcb2-40e2-bc88-4c49214d6e71/962a5129-44d5-4125-87ba-fe7341b1034b\",\n \"protected/us-west-2:8ac24a23-bcb2-40e2-bc88-4c49214d6e71/fa6d2146-513d-4faa-a1d7-21fa4b2a7fdf\",\n \"protected/us-west-2:60c73e0a-7f29-4f64-89a2-50f91dfdea0e/b4384a96-d9b3-4a2d-b777-a514defae934\",\n \"protected/us-west-2:60c73e0a-7f29-4f64-89a2-50f91dfdea0e/e511b0df-7d0e-488f-8518-f632622e29b4\",\n];\n\nexport const feelingOptions = [\n \"Empowering\",\n \"Dreamy\",\n \"Energetic\",\n \"Simple\",\n \"Joyful\",\n \"Peaceful\",\n \"Nostalgic\",\n \"Transcendent\",\n];\n\nexport const subjectOptions = [\n \"Abstract\",\n \"Figurative\",\n \"Landscape\",\n \"Still Life\",\n];\n\nexport const subjectSubOptions = [\n \"Organic\",\n \"Geometric\",\n \"Single Portrait\",\n \"Family\",\n \"Seascape\",\n \"Cityscape\",\n \"Mountainscape\",\n \"Skyscape\",\n \"Land\",\n \"Flowers\",\n \"Household Items\",\n \"Animals\",\n];\n\nexport const stylesOptions = [\n \"Deconstructivism\",\n \"Pop\",\n \"Abstract Expressionism\",\n \"Surrealism\",\n \"Photorealism\",\n \"Op Art\",\n \"Graffiti\",\n \"Dadaism\",\n \"Minimalism\",\n \"Magic Realism\",\n \"Harlem Renaissance\",\n \"Precisionism\",\n \"Bauhaus\",\n \"Art Deco\",\n \"Cubism\",\n \"German Expressionism\",\n \"Art Nouveau\",\n \"Pointillism\",\n \"Impressionism\",\n \"Realism\",\n \"Vienna Secession\",\n \"Romanticism\",\n \"Luminism\",\n \"Baroque\",\n \"Mannerism\",\n \"Classicism\",\n \"Italian Renaissance\",\n \"Gothic\",\n \"Fauvism\",\n \"Orphism\",\n \"De Stijl\",\n];\n\nexport const mediumOptions = [\"Oil\", \"Watercolor\", \"Pastel\", \"Pencil\", \"Ink\"];\n\nexport const colorOptions = [\n \"Warm\",\n \"Cool\",\n \"Bright\",\n \"Dark\",\n \"Soft\",\n \"Neutral\",\n];\n\nexport const boolOptions = [\"true\", \"false\", \"\"];\n\nexport const boolCategories = [\n { category: \"Approve\", options: [\"true\", \"false\", \"null\"] },\n { category: \"Deleted\", options: [\"true\", \"false\", \"null\"] },\n { category: \"like\", options: [\"true\", \"false\", \"null\"] },\n];\n"],"names":["listArtsCustom2","getArtCustom","getArtCustom2","components","SignIn","Footer","toForgotPassword","useAuthenticator","View","textAlign","Button","fontWeight","className","onClick","size","variation","SignUp","toSignIn","FormFields","validationErrors","Authenticator","CheckboxField","errorMessage","acknowledgement","hasError","name","value","label","Link","href","target","rel","passHref","services","validateCustomSignUp","formData","LoginComponent","document","headingElement","querySelector","textContent","loginMechanisms","signUpAttributes","socialProviders","ImageCard","dynamic","imageDetails","DiscoverComponent","shareId","id","idIndex","fromShare","split","router","useRouter","client","generateClient","authStatus","context","handleContextMenu","event","preventDefault","handleDragStart","applyView","setApplyView","useState","imageSelected","setImageSelected","selectedIndex","setSelectedIndex","highQualityUrl","setHighQualityUrl","setImageDetails","imageKeys","setImageKeys","imageIds","setImageIds","imageUrls","setImageUrls","selectedOptions","setSelectedOptions","showCategories","setShowCategories","setLoading","loading2","setLoading2","showLogin","setShowLogin","browserWindowHeight","setBrowserWindowHeight","window","innerHeight","browserWindowWidth","setBrowserWindowWidth","innerWidth","updateBrowserWindowHeight","updateBrowserWindowWidth","fetchFilterFirst","filter","request","graphql","authMode","query","variables","limit","data","fetchFilterNextImages","nextToken","getImagesFilter","firstImages","ids","identityId","nextImages","nextids","nextIdentityId","orArraysByKeys","Object","keys","forEach","optionArray","key","length","conditions","map","toLowerCase","eq","deleted","ne","approve","and","filterString","or","imageItems","listArts","items","nexttoken","acc","art","push","s3Image","reduce","concat","useEffect","addEventListener","removeEventListener","console","log","metaTags","title","description","image","imagetype","imagewidth","imageheight","updateMetaTag","property","content","metaTag","createElement","setAttribute","head","appendChild","discoverImageIdentityIds","discoverImageIds","discoverImageUrls","getImageUrl","imageid","res","fetch","method","headers","body","JSON","stringify","email","json","error","Error","message","fetchImages","imagePromises","imgUrls","Promise","all","handleOptionChange","category","option","updatedOptions","prevSelectedOptions","Array","isArray","index","indexOf","slice","initialShowState","categories","toggleCategory","prevState","categoryName","fetchHighQuality","bucket","process","fetchImageDetails","response","getArtCustom3","storeUrl","storeImageDetails","createScratch","feeling","subject","medium","styles","color","queryParams","URLSearchParams","append","newUrl","toString","toggleDetailsVisibility","imageSelectedRef","useRef","buttonRefs","handleClickOutside","current","contains","some","ref","showLoginComponent","div","h1","h3","button","type","h2","options","htmlFor","input","checked","includes","onChange","disabled","loading","span","style","fontSize","marginLeft","Loader","Loader2","onContextMenu","onDragStart","Collection","margin","justifyContent","templateColumns","base","large","xl","gap","item","aria-label","zIndex","HiX","Image","width","height","src","alt","sizes","objectFit","placeholder","blurDataURL","p","getArt","user","username","Date","createdAt","toLocaleDateString","maxWidth","ButtonLoader","getStaticProps","props","page","colorOptions"],"sourceRoot":"","ignoreList":[]}