{"ast":null,"code":"var _jsxFileName = \"/Users/shanyi/Desktop/Projects/UC_Trains_Voice/react-demo/src/gavt/ResonanceMenu.tsx\",\n  _s = $RefreshSig$();\nimport React from 'react';\nimport { Link, useLocation, useNavigate } from 'react-router-dom';\nimport getRefFreq from './getRefFreq';\nimport { vowelMapping } from './GavtSelection';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nconst ResonanceMenu = ({\n  formValues,\n  navigate\n}) => {\n  _s();\n  const location = useLocation();\n  const routerNavigate = useNavigate();\n  const menuItems = [{\n    path: '/resonance',\n    name: 'Tutorial'\n  }, {\n    path: '/resonance/selection',\n    name: 'Setup'\n  }, {\n    path: '/resonance/practice',\n    name: 'Practice'\n  }];\n  const activeNavigate = navigate || routerNavigate;\n  const handlePracticeClick = async e => {\n    console.log('Current Form Values FROM ResonanceMenu:', formValues);\n    if (location.pathname === '/resonance') {\n      alert('You must select at least one vowel on Setup Page first');\n      e.preventDefault();\n      return;\n    }\n    if (location.pathname === '/resonance/selection') {\n      if (formValues && formValues.vowels && formValues.vowels.length > 0) {\n        const mappedVowels = formValues.vowels.map(vowel => vowelMapping[vowel]);\n        const frequencies = await getRefFreq(mappedVowels, formValues.gender, formValues.shuffleOrder);\n        activeNavigate('/resonance/practice', {\n          state: {\n            frequencies\n          }\n        });\n      } else {\n        alert('You must select at least one vowel first');\n        e.preventDefault();\n      }\n    }\n  };\n  return /*#__PURE__*/_jsxDEV(\"nav\", {\n    className: \"nav\",\n    children: menuItems.map((item, index) => /*#__PURE__*/_jsxDEV(React.Fragment, {\n      children: [/*#__PURE__*/_jsxDEV(Link, {\n        to: item.path,\n        className: `link ${location.pathname === item.path ? 'active' : ''}`,\n        onClick: item.path === '/resonance/practice' ? handlePracticeClick : undefined,\n        children: item.name\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 57,\n        columnNumber: 9\n      }, this), index < menuItems.length - 1 && /*#__PURE__*/_jsxDEV(\"span\", {\n        className: \"separator\",\n        children: \"|\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 64,\n        columnNumber: 44\n      }, this)]\n    }, item.name, true, {\n      fileName: _jsxFileName,\n      lineNumber: 56,\n      columnNumber: 9\n    }, this))\n  }, void 0, false, {\n    fileName: _jsxFileName,\n    lineNumber: 54,\n    columnNumber: 5\n  }, this);\n};\n_s(ResonanceMenu, \"Nx+kEOkOpcK293uOfZ97baLkVFM=\", false, function () {\n  return [useLocation, useNavigate];\n});\n_c = ResonanceMenu;\nexport default ResonanceMenu;\nvar _c;\n$RefreshReg$(_c, \"ResonanceMenu\");","map":{"version":3,"names":["React","Link","useLocation","useNavigate","getRefFreq","vowelMapping","jsxDEV","_jsxDEV","ResonanceMenu","formValues","navigate","_s","location","routerNavigate","menuItems","path","name","activeNavigate","handlePracticeClick","e","console","log","pathname","alert","preventDefault","vowels","length","mappedVowels","map","vowel","frequencies","gender","shuffleOrder","state","className","children","item","index","Fragment","to","onClick","undefined","fileName","_jsxFileName","lineNumber","columnNumber","_c","$RefreshReg$"],"sources":["/Users/shanyi/Desktop/Projects/UC_Trains_Voice/react-demo/src/gavt/ResonanceMenu.tsx"],"sourcesContent":["import React from 'react';\nimport { Link, useLocation, useNavigate } from 'react-router-dom';\n\nimport getRefFreq from './getRefFreq';\nimport { vowelMapping } from './GavtSelection';\n\ninterface ResonanceMenuProps {\n  formValues?: {\n    vowels: string[];\n    gender: 'man' | 'woman';\n    shuffleOrder: boolean;\n  };\n  navigate?: (path: string, state?: any) => void;\n}\n\nconst ResonanceMenu: React.FC<ResonanceMenuProps> = ({ formValues, navigate }) => {\n  const location = useLocation();\n  const routerNavigate = useNavigate();\n\n\n  const menuItems = [\n    { path: '/resonance', name: 'Tutorial' },\n    { path: '/resonance/selection', name: 'Setup' },\n    { path: '/resonance/practice', name: 'Practice' },  \n  ];\n\n  const activeNavigate = navigate || routerNavigate;\n\n  const handlePracticeClick = async (e: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => {\n\n    console.log('Current Form Values FROM ResonanceMenu:', formValues); \n\n    if (location.pathname === '/resonance') {\n      alert('You must select at least one vowel on Setup Page first');\n      e.preventDefault();\n      return;\n    }\n\n    if (location.pathname === '/resonance/selection') {\n      if (formValues && formValues.vowels && formValues.vowels.length > 0) {\n        const mappedVowels = formValues.vowels.map((vowel) => vowelMapping[vowel]);\n        const frequencies = await getRefFreq(mappedVowels, formValues.gender, formValues.shuffleOrder);\n        activeNavigate('/resonance/practice', { state: { frequencies } });\n      } else {\n        alert('You must select at least one vowel first');\n        e.preventDefault();\n      }\n\n    }\n  };\n\n\n  return (\n    <nav className=\"nav\">\n      {menuItems.map((item, index) => (\n        <React.Fragment key={item.name}>\n        <Link \n            to={item.path} \n            className={`link ${location.pathname === item.path ? 'active' : ''}`}\n            onClick={item.path === '/resonance/practice' ? handlePracticeClick : undefined}\n          >\n            {item.name}\n          </Link>\n          {index < menuItems.length - 1 && <span className=\"separator\">|</span>}\n        </React.Fragment>\n      ))}\n    </nav>\n  );\n}\n\nexport default ResonanceMenu;"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}