{"ast":null,"code":"var _jsxFileName = \"/Users/shanyi/Desktop/Projects/UC_Trains_Voice/react-demo/src/gavt/ResonanceMenu.jsx\",\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 = e => {\n    if (formValues && formValues.vowels && formValues.vowels.length > 0) {\n      const mappedVowels = formValues.vowels.map(vowel => vowelMapping[vowel]);\n      const frequencies = getRefFreq(mappedVowels, formValues.gender, formValues.shuffleOrder);\n      activeNavigate('/resonance/practice', {\n        state: {\n          frequencies\n        }\n      });\n    } else if (!formValues) {\n      activeNavigate('/resonance/practice');\n    } else {\n      alert('You must select at least one vowel on Setup Page first');\n      e.preventDefault();\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: 39,\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: 46,\n        columnNumber: 44\n      }, this)]\n    }, item.name, true, {\n      fileName: _jsxFileName,\n      lineNumber: 38,\n      columnNumber: 9\n    }, this))\n  }, void 0, false, {\n    fileName: _jsxFileName,\n    lineNumber: 36,\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","vowels","length","mappedVowels","map","vowel","frequencies","gender","shuffleOrder","state","alert","preventDefault","className","children","item","index","Fragment","to","pathname","onClick","undefined","fileName","_jsxFileName","lineNumber","columnNumber","_c","$RefreshReg$"],"sources":["/Users/shanyi/Desktop/Projects/UC_Trains_Voice/react-demo/src/gavt/ResonanceMenu.jsx"],"sourcesContent":["import React from 'react';\nimport { Link, useLocation, useNavigate } from 'react-router-dom';\n\nimport getRefFreq from './getRefFreq';\nimport { vowelMapping } from './GavtSelection';\n\nconst ResonanceMenu = ({ 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\n  const handlePracticeClick = (e) => {\n    if (formValues && formValues.vowels && formValues.vowels.length > 0) {\n      const mappedVowels = formValues.vowels.map((vowel) => vowelMapping[vowel]);\n      const frequencies = getRefFreq(mappedVowels, formValues.gender, formValues.shuffleOrder);\n      activeNavigate('/resonance/practice', { state: { frequencies } });\n    } else if(!formValues) {\n      activeNavigate('/resonance/practice');\n    } else {\n      alert('You must select at least one vowel on Setup Page first');\n      e.preventDefault();\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":[]}