{"version":3,"file":"static/chunks/2230-a0df19f7604e43e3.js","mappings":"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","sources":["webpack://_N_E/./pages/components/HeaderTwo.js","webpack://_N_E/./pages/components/IonSearchOverlay.js","webpack://_N_E/./pages/components/IonSearchOverlay.module.css"],"sourcesContent":["import React, { useState, useRef, useEffect, useContext } from 'react';\nimport { useRouter } from 'next/router';\nimport styles from './styles/HeaderTest.module.css';\nimport { trackButtonClick } from '../../utils/mixpanel';\nimport { AuthContext } from './../../utils/AuthContext';\nimport IonSearchOverlay from './IonSearchOverlay';\nimport Image from 'next/image';\nimport LoginOverlay from './LoginOverlay';\nimport { SearchContext } from '../../utils/SearchContext';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { library } from '@fortawesome/fontawesome-svg-core';\nimport { fas } from '@fortawesome/free-solid-svg-icons';\nimport Link from 'next/link';\n\nlibrary.add(fas);\n\nconst HeaderTwo = ({ onBurgerClick, minimized }) => {\n const { isAuthenticated, logout, authLoading } = useContext(AuthContext);\n\n if (authLoading) {\n return null;\n }\n\n const router = useRouter();\n const [showIonOverlay, setShowIonOverlay] = useState(false);\n const [showLoginOverlay, setShowLoginOverlay] = useState(false);\n const [searchQuery, setSearchQuery] = useState('');\n const [isSearchOpen, setIsSearchOpen] = useState(false);\n const [isVisible, setIsVisible] = useState(true);\n const isVisibleRef = useRef(isVisible);\n const lastScrollY = useRef(0);\n const searchInputRef = useRef(null);\n const containerRef = useRef(null);\n const { performSearch } = useContext(SearchContext);\n const [isSearchClosing, setIsSearchClosing] = useState(false);\n const SCROLL_THRESHOLD = 10;\n\n useEffect(() => {\n isVisibleRef.current = isVisible;\n }, [isVisible]);\n\n useEffect(() => {\n const handleScroll = () => {\n const currentScrollY = window.scrollY;\n\n if (currentScrollY <= SCROLL_THRESHOLD) {\n if (!isVisibleRef.current) {\n setIsVisible(true);\n isVisibleRef.current = true;\n }\n lastScrollY.current = currentScrollY;\n return;\n }\n\n if (currentScrollY < lastScrollY.current) {\n if (!isVisibleRef.current) {\n setIsVisible(true);\n isVisibleRef.current = true;\n }\n } else if (currentScrollY > lastScrollY.current) {\n if (isVisibleRef.current) {\n setIsVisible(false);\n isVisibleRef.current = false;\n }\n }\n\n lastScrollY.current = currentScrollY;\n };\n\n const throttle = (func, limit) => {\n let lastFunc;\n let lastRan;\n return function (...args) {\n const context = this;\n if (!lastRan) {\n func.apply(context, args);\n lastRan = Date.now();\n } else {\n clearTimeout(lastFunc);\n lastFunc = setTimeout(function () {\n if (Date.now() - lastRan >= limit) {\n func.apply(context, args);\n lastRan = Date.now();\n }\n }, limit - (Date.now() - lastRan));\n }\n };\n };\n\n const throttledHandleScroll = throttle(handleScroll, 100);\n window.addEventListener('scroll', throttledHandleScroll);\n return () => window.removeEventListener('scroll', throttledHandleScroll);\n }, []);\n\n const handleLogoutClick = async () => {\n try {\n await logout();\n trackButtonClick('Log Out');\n window.location.href = '/';\n } catch (error) {\n console.error('Logout failed:', error);\n }\n };\n\n const handleButtonClick = (text, action) => {\n console.log(`Button \"${text}\" clicked`);\n trackButtonClick(text);\n action();\n };\n\n const handleSearch = () => {\n if (searchQuery.trim() === '') return;\n performSearch(searchQuery, 1);\n if (router.pathname !== '/search') {\n router.push('/search');\n }\n setIsSearchOpen(false);\n };\n\n const handleSearchChange = (e) => {\n setSearchQuery(e.target.value);\n };\n\n const toggleSearch = () => {\n if (isSearchOpen) {\n setIsSearchClosing(true);\n setTimeout(() => {\n setIsSearchOpen(false);\n setIsSearchClosing(false);\n }, 300);\n } else {\n setIsSearchOpen(true);\n }\n };\n\n useEffect(() => {\n if (isSearchOpen && searchInputRef.current) {\n searchInputRef.current.focus();\n }\n }, [isSearchOpen]);\n\n useEffect(() => {\n const handleClickOutside = (event) => {\n if (containerRef.current && !containerRef.current.contains(event.target)) {\n setIsSearchOpen(false);\n }\n };\n\n if (isSearchOpen) {\n document.addEventListener('mousedown', handleClickOutside);\n } else {\n document.removeEventListener('mousedown', handleClickOutside);\n }\n\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, [isSearchOpen]);\n\n return (\n <>\n \n \n \n \n \n {\n console.log('Burger icon clicked');\n if (onBurgerClick) {\n onBurgerClick();\n }\n }}\n role=\"button\"\n aria-label=\"Toggle Toolbar\"\n tabIndex={0}\n >\n \n \n \n \n \n\n \n \n \n \n \n \n \n\n {isSearchOpen && (\n {\n if (e.key === 'Enter') {\n handleSearch();\n }\n }}\n className={`${styles.searchInput} ${isSearchClosing ? styles.fadeOut : ''}`}\n ref={searchInputRef}\n />\n )}\n \n\n \n {!isAuthenticated && (\n handleButtonClick('Sign up', () => setShowLoginOverlay(true))}\n className={`${styles.button} ${styles.writeButton}`}\n >\n Sign up\n \n )}\n {isAuthenticated ? (\n <>\n\n handleButtonClick('Log Out', handleLogoutClick)}\n className={`${styles.button} ${styles.logintwoButton}`}\n >\n Log Out\n \n >\n ) : (\n handleButtonClick('Log in', () => setShowLoginOverlay(true))}\n className={`${styles.button} ${styles.logintwoButton}`}\n >\n Log in\n \n )}\n \n \n\n setShowLoginOverlay(false)}\n />\n setShowIonOverlay(false)}\n />\n >\n );\n};\n\nexport default HeaderTwo;","import React, { useState, useRef } from 'react';\nimport styles from './IonSearchOverlay.module.css';\n\nconst API_URL = 'http://ion-agentic-env.eba-rq3muvb8.us-east-1.elasticbeanstalk.com/';\n\nconst IonSearchOverlay = ({ isOpen, onClose }) => {\n const [query, setQuery] = useState('');\n const [isLoading, setIsLoading] = useState(false);\n const [searchResults, setSearchResults] = useState(null);\n const inputRef = useRef(null);\n\n const parseMarkdownResults = (markdownString) => {\n // Split into individual results\n const results = markdownString.split('\\n\\n').map(section => {\n const lines = section.split('\\n');\n const resultObj = {};\n \n lines.forEach(line => {\n // Extract number prefix if it exists\n const content = line.replace(/^\\d+\\.\\s*/, '');\n \n if (content.startsWith('**Title:**')) {\n const match = content.match(/\\[(.*?)\\]\\((.*?)\\)/);\n if (match) {\n resultObj.title = match[1];\n resultObj.url = match[2];\n }\n } else if (content.startsWith('**Date:**')) {\n resultObj.date = content.replace('**Date:**', '').trim();\n } else if (content.startsWith('**Writer:**')) {\n const match = content.match(/\\[(.*?)\\]\\((.*?)\\)/);\n if (match) {\n resultObj.writerText = match[1];\n resultObj.writerLink = match[2];\n }\n } else if (content.startsWith('**Preview:**')) {\n resultObj.preview = content.replace('**Preview:**', '').trim();\n } else if (content.startsWith('**Expertise:**')) {\n resultObj.expertise = content.replace('**Expertise:**', '').trim();\n } else if (content.startsWith('**Bio:**')) {\n resultObj.bio = content.replace('**Bio:**', '').trim();\n }\n });\n \n return resultObj;\n });\n \n return results.filter(result => result.title && result.url);\n };\n\n const handleSubmit = async (e) => {\n e.preventDefault();\n if (!query.trim()) return;\n\n setIsLoading(true);\n setSearchResults(null);\n\n try {\n const response = await fetch(`${API_URL}/api/search`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n query: query.trim(),\n query_type: 'articles',\n limit: 5\n })\n });\n\n if (!response.ok) {\n const errorData = await response.json();\n throw new Error(errorData.detail || 'Search request failed');\n }\n\n const data = await response.json();\n console.log('Raw API Response:', data);\n \n if (data.results) {\n const parsed = parseMarkdownResults(data.results);\n console.log('Parsed results:', parsed);\n setSearchResults(parsed);\n }\n } catch (error) {\n console.error('Search error:', error);\n setSearchResults([]);\n } finally {\n setIsLoading(false);\n }\n };\n\n const renderSearchResult = (result) => {\n return (\n \n \n {result.title}\n \n \n {result.date && (\n \n {result.date}\n \n )}\n {result.writerLink && (\n <>\n •\n \n {result.writerText || 'View Writer Profile'}\n \n >\n )}\n \n {result.preview && (\n \n {result.preview}\n \n )}\n {result.expertise && (\n {result.expertise}\n )}\n {result.bio && (\n {result.bio}\n )}\n \n );\n };\n\n if (!isOpen) return null;\n\n return (\n \n \n \n Search With ION\n \n \n \n \n \n \n\n \n \n setQuery(e.target.value)}\n placeholder=\"Search articles...\"\n className={styles.searchInput}\n />\n \n {isLoading ? (\n \n \n \n \n ) : (\n 'Search'\n )}\n \n \n \n\n \n {isLoading && (\n \n \n \n \n \n \n )}\n \n {searchResults?.length === 0 && (\n \n No results found for \"{query}\"\n \n )}\n\n {searchResults && searchResults.length > 0 && (\n \n {searchResults.map(renderSearchResult)}\n \n )}\n \n \n \n );\n};\n\nexport default IonSearchOverlay;","// extracted by mini-css-extract-plugin\nmodule.exports = {\"overlay\":\"IonSearchOverlay_overlay___tIk9\",\"container\":\"IonSearchOverlay_container__9E9eJ\",\"header\":\"IonSearchOverlay_header__shi92\",\"title\":\"IonSearchOverlay_title__XTlJ_\",\"closeButton\":\"IonSearchOverlay_closeButton__ZKE8Y\",\"searchForm\":\"IonSearchOverlay_searchForm__OEmrc\",\"searchInputWrapper\":\"IonSearchOverlay_searchInputWrapper__AcNR8\",\"searchInput\":\"IonSearchOverlay_searchInput__ru4Af\",\"searchButton\":\"IonSearchOverlay_searchButton__3ZScl\",\"resultsArea\":\"IonSearchOverlay_resultsArea__hENau\",\"loading\":\"IonSearchOverlay_loading__TMFlo\",\"loadingSpinner\":\"IonSearchOverlay_loadingSpinner__r3GNQ\",\"spin\":\"IonSearchOverlay_spin__Oj107\",\"noResults\":\"IonSearchOverlay_noResults__7kP0h\",\"searchResults\":\"IonSearchOverlay_searchResults__kzYx9\",\"searchResult\":\"IonSearchOverlay_searchResult__HlrFS\",\"resultTitle\":\"IonSearchOverlay_resultTitle__L1APi\",\"resultMeta\":\"IonSearchOverlay_resultMeta__2MGkW\",\"resultDate\":\"IonSearchOverlay_resultDate__F_BXN\",\"writerLink\":\"IonSearchOverlay_writerLink__xUKf9\",\"resultPreview\":\"IonSearchOverlay_resultPreview__1uUZ_\",\"expertise\":\"IonSearchOverlay_expertise__zRRXR\",\"bio\":\"IonSearchOverlay_bio__zRCYd\"};"],"names":["library","add","fas","onBurgerClick","HeaderTwo","minimized","isAuthenticated","logout","authLoading","useContext","AuthContext","router","useRouter","showIonOverlay","setShowIonOverlay","useState","showLoginOverlay","setShowLoginOverlay","searchQuery","setSearchQuery","isSearchOpen","setIsSearchOpen","isVisible","setIsVisible","isVisibleRef","useRef","lastScrollY","searchInputRef","containerRef","performSearch","SearchContext","isSearchClosing","setIsSearchClosing","useEffect","current","throttledHandleScroll","throttle","func","limit","lastFunc","lastRan","args","context","clearTimeout","setTimeout","Date","now","apply","currentScrollY","window","scrollY","SCROLL_THRESHOLD","addEventListener","removeEventListener","handleLogoutClick","trackButtonClick","location","href","error","console","handleButtonClick","text","action","log","handleSearch","trim","pathname","push","focus","handleClickOutside","contains","event","target","document","header","className","styles","Link","Image","src","alt","width","height","div","role","aria-label","tabIndex","svg","xmlns","viewBox","path","fill","d","ref","button","onClick","toggleSearch","circle","cx","cy","r","stroke","strokeWidth","line","x1","y1","x2","y2","strokeLinecap","input","type","placeholder","value","onChange","handleSearchChange","e","onKeyDown","key","LoginOverlay","onClose","IonSearchOverlay","isOpen","query","setQuery","isLoading","setIsLoading","searchResults","setSearchResults","inputRef","parseMarkdownResults","markdownString","split","map","section","lines","resultObj","forEach","content","replace","startsWith","match","title","url","date","writerText","writerLink","preview","expertise","bio","filter","result","handleSubmit","preventDefault","response","fetch","API_URL","method","headers","body","JSON","stringify","query_type","ok","errorData","json","detail","data","results","parsed","h2","strokeLinejoin","form","onSubmit","opacity","length","a","rel","span","p"],"sourceRoot":"","ignoreList":[]}
\n {result.preview}\n
{result.expertise}
{result.bio}