{"version":3,"file":"static/chunks/pages/index-80a8dc936cc9a5b0.js","mappings":"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","sources":["webpack://_N_E/","webpack://_N_E/./node_modules/@heroui/card/dist/chunk-TE6SZS6W.mjs","webpack://_N_E/./components/PersonCard/PersonCard.tsx","webpack://_N_E/./components/PersonCard/PersonWithImages.tsx","webpack://_N_E/./components/AppTabs.tsx","webpack://_N_E/./pages/home/HomeLayout.tsx","webpack://_N_E/./hooks/useFetchProfiles.tsx","webpack://_N_E/./pages/index.tsx","webpack://_N_E/./utils/calculateAge.ts","webpack://_N_E/./node_modules/next/font/google/target.css"],"sourcesContent":["\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/\",\n function () {\n return require(\"private-next-pages/index.tsx\");\n }\n ]);\n if(module.hot) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/\"])\n });\n }\n ","\"use client\";\nimport {\n useCardContext\n} from \"./chunk-XHGGCEVJ.mjs\";\n\n// src/card-footer.tsx\nimport { forwardRef } from \"@heroui/system\";\nimport { useDOMRef } from \"@heroui/react-utils\";\nimport { clsx } from \"@heroui/shared-utils\";\nimport { jsx } from \"react/jsx-runtime\";\nvar CardFooter = forwardRef((props, ref) => {\n var _a;\n const { as, className, children, ...otherProps } = props;\n const Component = as || \"div\";\n const domRef = useDOMRef(ref);\n const { slots, classNames } = useCardContext();\n const footerStyles = clsx(classNames == null ? void 0 : classNames.footer, className);\n return /* @__PURE__ */ jsx(Component, { ref: domRef, className: (_a = slots.footer) == null ? void 0 : _a.call(slots, { class: footerStyles }), ...otherProps, children });\n});\nCardFooter.displayName = \"HeroUI.CardFooter\";\nvar card_footer_default = CardFooter;\n\nexport {\n card_footer_default\n};\n","import {\n Card,\n CardHeader,\n CardBody,\n Image,\n CardFooter,\n Button,\n ModalContent,\n ModalHeader,\n ModalBody, ModalFooter, Modal,\n useDisclosure,\n \n} from \"@heroui/react\";\nimport {Faustina} from 'next/font/google';\nimport {PersonCardProps} from '@/types';\nimport {BsHeart, BsHeartFill, BsPencilSquare} from \"react-icons/bs\";\nimport {SkeletonView} from \"@/components/common/SkeletonView\";\nimport React, {useState} from \"react\";\nimport {useRouter} from \"next/router\";\nimport {router} from \"next/client\";\nimport {getTranslation} from \"@/translations\";\n\nconst additionalFont = Faustina({\n subsets: ['latin'],\n weight: '400',\n display: 'swap',\n});\n\nconst PersonCard: React.FC = ({\n name,\n age,\n location,\n primaryImage,\n secondaryImages,\n description,\n onLike,\n onDislike,\n onReport,\n isItUserItself,\n conversationId,\n previewMode\n }) => {\n const router = useRouter();\n const isLoading = !name || !location || !primaryImage;\n const [liked, setLiked] = useState(false);\n const {isOpen, onOpen, onOpenChange} = useDisclosure();\n const {locale} = useRouter();\n const t = (key: string) => getTranslation(locale, key);\n \n \n function handleLike() {\n if (liked) return;\n \n setLiked(true)\n \n \n setTimeout(() => {\n if (onLike && isItUserItself !== true) {\n onLike()\n }\n }, 2000);\n }\n \n function navigateToConversation() {\n // window.location.assign(`/messages/${conversationId}`);\n router.push(`/messages/${conversationId}`);\n }\n \n \n return (\n <>\n \n \n {(onClose) => (\n <>\n {t('profile.reportHeader')}\n \n

\n {t('profile.reportConfirmation')}\n

\n

\n {t('profile.reportReviewNote')}\n

\n
\n \n \n {\n if (onReport) {\n await onReport().then(onClose)\n } else {\n onClose();\n }\n }}>\n {t('profile.report')}\n \n \n \n )}\n
\n \n \n \n {isLoading ? (\n \n ) : (\n \n
\n \n \n \n \n \n
\n

{location}

\n {age}\n

{name}

\n
\n
\n
\n
\n {secondaryImages.map((imageSrc, index) => (\n {`${name}'s\n ))}\n
\n {conversationId !== null && !isItUserItself && !previewMode ?\n <>\n \n \n \n :\n \n {liked ? : }\n \n }\n
\n
\n )}\n {!isLoading && (\n <>\n \n

{description}

\n
\n \n {conversationId === null &&\n }\n \n
\n \n \n
\n \n )}\n
\n \n );\n};\n\nexport default PersonCard;\n","// components/PersonCard/PersonWithImages.tsx\n\nimport React from \"react\";\nimport {PersonToShow} from \"@/types\";\nimport PersonCard from \"@/components/PersonCard/PersonCard\";\nimport {useS3Images} from \"@/hooks/useS3Images\";\n\ninterface PersonWithImagesProps {\n person: PersonToShow,\n onDoneWithThisPerson: () => void,\n onLike?: () => Promise\n conversationId: string | null;\n onReport?: () => Promise\n previewMode?: boolean;\n}\n\nexport function PersonWithImages({person, onDoneWithThisPerson, onLike, conversationId, onReport, previewMode}: PersonWithImagesProps) {\n const {imageUrls, error: s3Error, refreshImages} = useS3Images(person.s3Id);\n const profileImages = imageUrls.filter((url) => url.includes(\"/profile/\"));\n const otherImages = imageUrls.filter((url) => !url.includes(\"/profile/\"));\n const primaryImage = profileImages[0] || \"\";\n\n \n return (\n \n );\n}","import React, {Key, useEffect, useMemo, useState} from \"react\";\nimport {useRouter} from \"next/router\";\nimport {Tabs, Tab, Badge} from \"@heroui/react\";\nimport {CSSProperties} from 'react'; // Import CSSProperties type for styling\nimport {LuMessageCircle, LuHouse, LuUserRound, LuMenu} from \"react-icons/lu\";\nimport {useProfile} from \"@/components/ProfileWrap\";\n\n\nconst styles: CSSProperties = {\n position: 'fixed', // Keeps the component fixed at the bottom\n bottom: '0px', // Anchors the container to the bottom\n left: '0px', // Starts from the left edge\n right: '0px', // Stretches to the right edge\n zIndex: 48, // Ensures it's above most other elements\n width: '100%', // Ensures the container spans the full width of the viewport\n maxWidth: '660px', // Ensures the container does not exceed 660px in width\n marginLeft: 'auto', // Centers the container\n marginRight: 'auto', // Centers the container\n padding: '1rem',\n};\n\n\nconst tabKeyToRoute: { [key: string]: string } = {\n home: '/',\n messages: '/messages',\n user: '/user',\n settings: '/settings',\n};\n\nconst routeToTabKey: { [key: string]: string } = {\n '/': 'home',\n '/messages': 'messages',\n '/user': 'user',\n '/settings': 'settings',\n};\n\n\n// Helper function to strip out the locale from a path\nfunction stripLocaleFromPath(pathname: string, locale?: string) {\n if (!locale) return pathname;\n \n // Regex to match the locale at the beginning followed by a slash\n const localeWithSlash = new RegExp(`^/${locale}/`);\n \n // Regex to match the locale alone\n const localeAlone = new RegExp(`^/${locale}$`);\n \n if (localeWithSlash.test(pathname)) {\n // Replace the locale with a single slash\n return pathname.replace(localeWithSlash, \"/\");\n } else if (localeAlone.test(pathname)) {\n // If the entire path is the locale, return \"/\"\n return \"/\";\n }\n \n // If the locale is not present at the start, return the pathname as is\n return pathname;\n}\n\ninterface AppTabsProps {\n shouldAnimate?: boolean; // Define the prop explicitly\n}\nconst AppTabs: React.FC = ({ shouldAnimate }) => {\n const router = useRouter();\n const { pathname, locale } = router;\n const { profile, conversationsHeaders } = useProfile();\n \n const currentUserId = profile?.id;\n \n // 1) Remove locale from the pathname for your initial selection\n const sanitizedPathname = stripLocaleFromPath(pathname, locale);\n const initialSelected = routeToTabKey[sanitizedPathname] || \"home\";\n const [selected, setSelected] = useState(initialSelected);\n const [badgeNum, setBadgeNum] = useState(0);\n \n // 2) Compute unread messages count efficiently with useMemo\n const unreadCount = useMemo(() => {\n if (!conversationsHeaders || !currentUserId) return 0;\n \n return conversationsHeaders.filter(\n (conversation) => !conversation.read && conversation.recipient === currentUserId\n ).length;\n }, [conversationsHeaders, currentUserId]);\n \n useEffect(() => {\n const handleRouteChange = (url: string) => {\n const { pathname: newPathname } = new URL(url, window.location.origin);\n \n // 3) Strip the locale from the new pathname\n const sanitized = stripLocaleFromPath(newPathname, locale);\n \n // Map to our tab key\n const key = routeToTabKey[sanitized] || \"home\";\n \n setSelected(key);\n setBadgeNum(unreadCount); // Update badgeNum dynamically based on unread messages\n };\n \n router.events.on(\"routeChangeComplete\", handleRouteChange);\n \n // Run once on mount to sync if needed\n handleRouteChange(router.asPath);\n \n return () => {\n router.events.off(\"routeChangeComplete\", handleRouteChange);\n };\n }, [router, router.events, router.asPath, locale, unreadCount]);\n \n const handleSelectionChange = (key: string) => {\n setSelected(key);\n const route = tabKeyToRoute[key];\n // Ensure a valid route and prevent unnecessary navigation\n if (route && route !== sanitizedPathname) {\n router.push(route, route, { locale });\n }\n };\n \n return (\n
\n
\n handleSelectionChange(String(key))}\n className={\"rounded-3xl\"}\n >\n \n \n
\n }\n />\n \n \n \n \n \n
\n }/>\n \n \n \n \n }/>\n \n \n \n \n }/>\n \n \n \n \n );\n}\nexport default AppTabs;","import React from \"react\";\nimport {NextHeader} from '@/components/NextHeader'\nimport LikeButton from \"./LikeButton\";\nimport AppTabs from \"@/components/AppTabs\";\n\ninterface LayoutProps {\n colorMode: 'light' | 'dark' | 'system',\n setColorMode: React.Dispatch>,\n children: React.ReactNode,\n className?: string\n shouldAnimate?: boolean;\n}\n\nconst styles = {\n container: {\n position: 'fixed' as const,\n bottom: '5rem', // Distance from the bottom\n right: '20px', // Distance from the right\n zIndex: 1000, // Ensures it's above most other elements\n },\n};\n\nconst HomeLayout: React.FC = ({colorMode, setColorMode, children, className, shouldAnimate}) => {\n return (\n
\n\n \n \n {children}\n
\n );\n};\n\nexport default HomeLayout;\n\n\n","// hooks/useFetchProfiles.tsx\nimport { useState, useCallback } from \"react\";\nimport { generateClient } from \"aws-amplify/data\";\nimport { type Schema } from \"@/amplify/data/resource\";\nimport { useProfile } from \"@/components/ProfileWrap\";\nimport { calculateAge } from \"@/utils/calculateAge\";\nimport { PersonToShow } from \"@/types\";\nimport {SUPPORT_TEAM_ID_ENV_VAR} from \"@/components/UserProfileForm\";\n\nexport function useFetchProfiles() {\n const client = generateClient();\n const { profile } = useProfile();\n const filterProfileBySex = profile?.sex === 1 ? 0 : 1;\n \n const [peopleToShow, setPeopleToShow] = useState([]);\n \n const fetchProfiles = useCallback(async () => {\n try {\n const { data: ppl } = await client.models.Profile.listProfileBySex({\n sex: filterProfileBySex,\n });\n \n \n const validProfiles = (ppl ?? []).filter((p) =>\n p.isProfileCompleted &&\n p.isProfilePhotoAdded &&\n !(profile?.stoppedConversations ?? []).includes(p.id) &&\n p.id !== SUPPORT_TEAM_ID_ENV_VAR // Exclude support team profiles\n );\n \n const mappedProfiles: PersonToShow[] = validProfiles\n .map((p) => ({\n s3Id: p.id || \"\",\n name: p.name || \"\",\n age: calculateAge(p.dob) || null,\n location: p.location || \"\",\n description: p.description || \"\",\n primaryImage: \"\",\n secondaryImages: [],\n stoppedConversations: p.stoppedConversations\n }))\n .sort(() => Math.random() - 0.5);\n \n setPeopleToShow(mappedProfiles);\n } catch (errors) {\n console.error(\"Error fetching profiles:\", errors);\n }\n }, [filterProfileBySex, client]);\n \n return {\n fetchProfiles,\n peopleToShow,\n setPeopleToShow,\n };\n}","import React, {useEffect, useMemo, useState} from \"react\";\nimport Layout from \"@/pages/home/HomeLayout\";\nimport {useFetchProfiles} from \"@/hooks/useFetchProfiles\";\nimport {PersonWithImages} from \"@/components/PersonCard/PersonWithImages\";\nimport {Navbar, NavbarContent} from \"@heroui/react\";\nimport NavBarWithBrand from \"@/pages/home/NavBarWithBrand\";\nimport {SkeletonView} from \"@/components/common/SkeletonView\";\n\nimport {generateClient} from \"aws-amplify/data\";\nimport type {Schema} from \"@/amplify/data/resource\";\nimport {Profile, useProfile} from \"@/components/ProfileWrap\";\nimport {v4 as uuidv4} from \"uuid\";\nimport {PersonToShow} from \"@/types\";\nimport {Nullable} from \"@aws-amplify/data-schema\";\nimport InAppNotification from \"@/components/common/InAppNotification\";\nimport {useRouter} from \"next/router\";\nimport {getTranslation} from \"@/translations\";\n\nexport default function HomePage() {\n const [colorMode, setColorMode] = useState<\"light\" | \"dark\" | \"system\">(\"light\");\n const [isLoading, setIsLoading] = useState(true);\n const [shouldAnimate, setShouldAnimate] = useState(false);\n const [currentConversationId, setCurrentConversationId] = useState(null);\n \n const {locale} = useRouter();\n const t = (key: string) => getTranslation(locale, key);\n \n const {fetchProfiles, peopleToShow, setPeopleToShow} = useFetchProfiles();\n \n // We still have access to the user's own profile, for checking conversation IDs.\n const {profile, conversationsHeaders, refetchProfile} = useProfile();\n \n // For writing data to Amplify\n const client = generateClient();\n \n // Current person is the first in `peopleToShow`, or null if none left.\n const currentPerson = peopleToShow.length > 0 ? peopleToShow[0] : null;\n \n /**\n * On mount -> fetch initial profiles.\n * (Same as your original code)\n */\n useEffect(() => {\n async function loadProfiles() {\n setIsLoading(true);\n await fetchProfiles();\n setIsLoading(false);\n }\n \n loadProfiles();\n }, []);\n \n /**\n * Whenever we have a `profile` and a `currentPerson`, find any shared conversation ID.\n * If none is found, conversationId = null\n */\n const conversationId = useMemo(() => {\n if (!profile || !currentPerson || !conversationsHeaders) return null;\n \n // Find a conversation whose author & recipient match these two IDs (in any order)\n const existing = conversationsHeaders.find((conv) => {\n const setOfParticipants = new Set([conv.author, conv.recipient]);\n return (\n setOfParticipants.has(profile.id) &&\n setOfParticipants.has(currentPerson.s3Id)\n );\n });\n \n if (existing) {\n setCurrentConversationId(existing.conversationID);\n return existing.conversationID;\n } else {\n setCurrentConversationId(null);\n return null;\n }\n }, [profile, currentPerson, conversationsHeaders]);\n \n /**\n * Moves on to the next profile in the list; if the list is empty after removal,\n * we fetch a new batch of profiles. (Same logic as your original code.)\n */\n function handleDone() {\n setPeopleToShow((prev) => {\n const newList = prev.slice(1);\n if (newList.length === 0) {\n // If empty -> fetch more\n setIsLoading(true);\n setCurrentConversationId(null);\n fetchProfiles()\n refetchProfile();\n setIsLoading(false);\n }\n window.scrollTo({top: 0, behavior: \"smooth\"});\n return newList;\n });\n }\n \n /**\n * Example of \"like\" flow:\n * - create a conversation record in Amplify\n * - update conversationIDs for both user & currentPerson\n * - move on to the next profile\n */\n async function handleLike() {\n if (!profile?.id) {\n console.error(\"Cannot 'like': no user profile found!\");\n return;\n }\n if (!currentPerson) {\n console.error(\"Cannot 'like': no currentPerson!\");\n return;\n }\n \n try {\n const newConversationId = uuidv4();\n \n // create conversation\n const {data, errors} = await client.models.Conversation.create({\n conversationID: newConversationId,\n timestamp: Date.now(),\n author: profile.id,\n text: `❤️`,\n recipient: currentPerson.s3Id\n });\n if (errors) {\n console.error(\"Error creating conversation:\", errors);\n return;\n }\n \n setCurrentConversationId(newConversationId);\n triggerAnimation()\n } catch (err) {\n console.error(\"Error in handleLike:\", err);\n }\n }\n \n\n function triggerAnimation() {\n setShouldAnimate(true);\n setTimeout(() => setShouldAnimate(false), 1000); // Reset animation after 1s\n }\n \n async function handleReport() {\n setIsLoading(true);\n try {\n if (profile && currentPerson) {\n // ──────────────────────────────────────────────────────────────\n // 1) Prepare updated data for `profile`\n // ──────────────────────────────────────────────────────────────\n const updatedProfileData: {\n conversationIDs?: Nullable[];\n stoppedConversations?: Nullable[];\n } = {};\n \n // Add currentPerson.s3Id to profile's stoppedConversations\n const existingStoppedConvos = profile.stoppedConversations || [];\n updatedProfileData.stoppedConversations = existingStoppedConvos.includes(currentPerson.s3Id)\n ? existingStoppedConvos\n : [...existingStoppedConvos, currentPerson.s3Id];\n \n // Update `profile`\n const { errors: profileUpdateErrors } = await client.models.Profile.update({\n id: profile.id,\n ...updatedProfileData,\n });\n \n if (profileUpdateErrors && profileUpdateErrors.length > 0) {\n throw new Error(\"Error updating profile conversationIDs or stoppedConversations\");\n }\n \n // ──────────────────────────────────────────────────────────────\n // 2) Prepare updated data for `currentPerson`\n // ──────────────────────────────────────────────────────────────\n const updatedCurrentPersonData: {\n conversationIDs?: Nullable[];\n stoppedConversations?: Nullable[];\n } = {};\n \n // Add profile.id to currentPerson’s stoppedConversations\n const existingStoppedConvosPerson = currentPerson.stoppedConversations || [];\n updatedCurrentPersonData.stoppedConversations = existingStoppedConvosPerson.includes(profile.id)\n ? existingStoppedConvosPerson\n : [...existingStoppedConvosPerson, profile.id];\n \n // Update `currentPerson`\n const { errors: currentPersonUpdateErrors } = await client.models.Profile.update({\n // Make sure this is the correct ID field for `currentPerson`\n id: currentPerson.s3Id,\n ...updatedCurrentPersonData,\n });\n \n if (currentPersonUpdateErrors && currentPersonUpdateErrors.length > 0) {\n throw new Error(\"Error updating currentPerson conversationIDs or stoppedConversations\");\n }\n \n // Everything successful\n }\n } catch (error) {\n console.error(\"Failed to stop conversation\", error);\n // Optionally, show some user feedback here\n } finally {\n setIsLoading(false);\n handleDone();\n }\n }\n \n /**\n * Rendering logic:\n * - If loading and no profiles -> show skeleton\n * - Else if we do have a currentPerson -> show them\n * - Else -> \"No more profiles\"\n */\n return (\n <>\n \n \n \n \n \n \n \n \n \n {isLoading && peopleToShow.length === 0 ? (\n \n ) : currentPerson ? (\n
\n \n
\n ) : (\n

{t('home.noMoreProfiles')}

\n )}\n
\n \n );\n}","// utils/calculateAge.ts\nexport const calculateAge = (dob: string): number | null => {\n if (!dob) return null;\n \n const dobDate = new Date(dob); // Parse the string into a Date object\n if (isNaN(dobDate.getTime())) return null; // Check if the date is invalid\n \n const today = new Date();\n let age = today.getFullYear() - dobDate.getFullYear();\n const monthDiff = today.getMonth() - dobDate.getMonth();\n \n if (monthDiff < 0 || (monthDiff === 0 && today.getDate() < dobDate.getDate())) {\n age--;\n }\n \n return age > 99 ? null : age;\n};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"style\":{\"fontFamily\":\"'Faustina', 'Faustina Fallback'\",\"fontWeight\":400,\"fontStyle\":\"normal\"},\"className\":\"__className_5d8d58\"};"],"names":["name","age","PersonCard","location","primaryImage","secondaryImages","description","onLike","onDislike","onReport","isItUserItself","conversationId","previewMode","router","useRouter","isLoading","liked","setLiked","useState","isOpen","onOpen","onOpenChange","useDisclosure","locale","t","getTranslation","key","Modal","placement","backdrop","ModalContent","ModalHeader","className","ModalBody","h1","p","ModalFooter","Button","color","variant","onPress","onClose","then","Card","isBlurred","isFooterBlurred","shadow","SkeletonView","CardHeader","div","CardBody","Image","alt","src","loading","width","height","CardFooter","small","additionalFont","map","imageSrc","index","handleLike","setTimeout","radius","BsHeartFill","BsHeart","navigateToConversation","push","BsPencilSquare","undefined","style","display","justifyContent","alignItems","PersonWithImages","person","onDoneWithThisPerson","imageUrls","error","s3Error","refreshImages","useS3Images","s3Id","profileImages","filter","url","includes","otherImages","styles","position","bottom","left","right","zIndex","maxWidth","marginLeft","marginRight","padding","tabKeyToRoute","home","messages","user","settings","routeToTabKey","stripLocaleFromPath","pathname","localeWithSlash","RegExp","localeAlone","test","replace","AppTabs","shouldAnimate","profile","conversationsHeaders","useProfile","currentUserId","id","sanitizedPathname","initialSelected","selected","setSelected","badgeNum","setBadgeNum","unreadCount","useMemo","read","conversation","recipient","length","useEffect","handleRouteChange","newPathname","URL","window","origin","sanitized","events","on","asPath","off","handleSelectionChange","route","Tabs","aria-label","fullWidth","size","selectedKey","onSelectionChange","String","Tab","title","LuHouse","Badge","content","isInvisible","showOutline","LuMessageCircle","LuUserRound","LuMenu","HomeLayout","colorMode","setColorMode","children","HomePage","setIsLoading","setShouldAnimate","currentConversationId","setCurrentConversationId","fetchProfiles","peopleToShow","setPeopleToShow","useFetchProfiles","client","generateClient","filterProfileBySex","sex","useCallback","data","ppl","models","Profile","listProfileBySex","mappedProfiles","isProfileCompleted","isProfilePhotoAdded","stoppedConversations","SUPPORT_TEAM_ID_ENV_VAR","calculateAge","dob","sort","Math","random","errors","console","refetchProfile","currentPerson","handleDone","newList","prev","slice","scrollTo","top","behavior","newConversationId","uuidv4","Conversation","create","conversationID","timestamp","Date","now","author","text","err","handleReport","updatedProfileData","existingStoppedConvos","profileUpdateErrors","update","updatedCurrentPersonData","existingStoppedConvosPerson","currentPersonUpdateErrors","loadProfiles","existing","find","setOfParticipants","Set","conv","has","Navbar","NavbarContent","justify","NavBarWithBrand","Layout","dobDate","getTime","today","getFullYear","monthDiff","getMonth","getDate"],"sourceRoot":"","ignoreList":[1,9]}