{"ast":null,"code":"var _jsxFileName = \"/Users/shanyi/Desktop/Projects/UC_Trains_Voice/react-demo/src/gavt/GavtSelection.tsx\",\n  _s = $RefreshSig$();\nimport { useNavigate } from 'react-router-dom';\nimport GavtForm from './GavtForm';\nimport ResonanceMenu from './ResonanceMenu';\nimport RefTable from './table/RefTable';\nimport CaliTable from './table/CaliTable';\nimport getRefFreq from './getRefFreq';\nimport React, { useState } from 'react';\nimport { Space, Modal, Button } from 'antd';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nexport const vowelMapping = {\n  'ee': '/i/',\n  'ih': '/ɪ/',\n  'eh': '/ɛ/',\n  'ae': '/æ/',\n  'ah': '/ɑ/',\n  'aw': '/ɔ/',\n  'uh': '/ʌ/',\n  'ooh': '/u/',\n  'oo': '/ʊ/'\n};\nconst GavtSelection = () => {\n  _s();\n  const [refOpen, setRefOpen] = useState(false);\n  const [caliOpen, setCaliOpen] = useState(false);\n  const [formValues, setFormValues] = useState(null);\n  const navigate = useNavigate();\n  const handleFormSubmit = async values => {\n    const {\n      vowels,\n      gender,\n      region,\n      shuffleOrder\n    } = values;\n    try {\n      setFormValues(values);\n      const mappedVowels = values.vowels.map(vowel => vowelMapping[vowel]);\n      const frequencies = await getRefFreq(mappedVowels, values.gender, values.shuffleOrder);\n      if (Object.keys(frequencies).length > 0) {\n        console.log(frequencies);\n        navigate('/resonance/practice', {\n          state: {\n            frequencies\n          }\n        });\n      } else {\n        console.log('No resonance frequencies found.');\n      }\n    } catch (error) {\n      console.error('Error fetching resonance frequencies:', error);\n    }\n  };\n  return (\n    /*#__PURE__*/\n    // For real-time frequency display, wrap the GavtForm component in the FreqProvider component\n    _jsxDEV(\"div\", {\n      style: {\n        display: 'flex',\n        flexDirection: 'column',\n        alignItems: 'center',\n        justifyContent: 'center'\n      },\n      children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n        children: \"Resonance: Setup\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 67,\n        columnNumber: 7\n      }, this), /*#__PURE__*/_jsxDEV(Space, {\n        direction: \"vertical\",\n        style: {\n          width: '50%',\n          marginBottom: '20px'\n        }\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 68,\n        columnNumber: 7\n      }, this), /*#__PURE__*/_jsxDEV(GavtForm, {\n        onSubmit: handleFormSubmit\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 88,\n        columnNumber: 7\n      }, this), /*#__PURE__*/_jsxDEV(Modal, {\n        title: \"Reference Frequency Values\",\n        centered: true,\n        open: refOpen,\n        onOk: () => setRefOpen(false),\n        onCancel: () => setRefOpen(false),\n        width: 1000,\n        footer: [/*#__PURE__*/_jsxDEV(Button, {\n          type: \"primary\",\n          onClick: () => setRefOpen(false),\n          children: \"OK\"\n        }, \"submit\", false, {\n          fileName: _jsxFileName,\n          lineNumber: 97,\n          columnNumber: 11\n        }, this)],\n        children: /*#__PURE__*/_jsxDEV(RefTable, {}, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 102,\n          columnNumber: 9\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 89,\n        columnNumber: 7\n      }, this), /*#__PURE__*/_jsxDEV(Modal, {\n        title: \"Calibrated Frequency Values\",\n        centered: true,\n        open: caliOpen,\n        onOk: () => setCaliOpen(false),\n        onCancel: () => setCaliOpen(false),\n        width: 1000,\n        footer: [/*#__PURE__*/_jsxDEV(Button, {\n          type: \"primary\",\n          onClick: () => setCaliOpen(false),\n          children: \"OK\"\n        }, \"submit\", false, {\n          fileName: _jsxFileName,\n          lineNumber: 112,\n          columnNumber: 11\n        }, this)],\n        children: /*#__PURE__*/_jsxDEV(CaliTable, {}, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 117,\n          columnNumber: 9\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 104,\n        columnNumber: 7\n      }, this), /*#__PURE__*/_jsxDEV(ResonanceMenu, {\n        formValues: formValues !== null && formValues !== void 0 ? formValues : undefined,\n        navigate: navigate\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 119,\n        columnNumber: 7\n      }, this)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 61,\n      columnNumber: 5\n    }, this)\n  );\n};\n_s(GavtSelection, \"0dKI9h7zH4kzMvW/0Co61N3vCJM=\", false, function () {\n  return [useNavigate];\n});\n_c = GavtSelection;\nexport default GavtSelection;\nvar _c;\n$RefreshReg$(_c, \"GavtSelection\");","map":{"version":3,"names":["useNavigate","GavtForm","ResonanceMenu","RefTable","CaliTable","getRefFreq","React","useState","Space","Modal","Button","jsxDEV","_jsxDEV","vowelMapping","GavtSelection","_s","refOpen","setRefOpen","caliOpen","setCaliOpen","formValues","setFormValues","navigate","handleFormSubmit","values","vowels","gender","region","shuffleOrder","mappedVowels","map","vowel","frequencies","Object","keys","length","console","log","state","error","style","display","flexDirection","alignItems","justifyContent","children","fileName","_jsxFileName","lineNumber","columnNumber","direction","width","marginBottom","onSubmit","title","centered","open","onOk","onCancel","footer","type","onClick","undefined","_c","$RefreshReg$"],"sources":["/Users/shanyi/Desktop/Projects/UC_Trains_Voice/react-demo/src/gavt/GavtSelection.tsx"],"sourcesContent":["import { useNavigate } from 'react-router-dom';\n\nimport GavtForm from './GavtForm';\nimport ResonanceMenu from './ResonanceMenu';\nimport RefTable from './table/RefTable';\nimport CaliTable from './table/CaliTable';\nimport getRefFreq from './getRefFreq';\n\nimport React, { useState } from 'react';\nimport { Link } from 'react-router-dom';\n\nimport { Alert, Space, Modal, Button } from 'antd';\n\nexport interface FormValues {\n  vowels: string[];\n  gender: 'man' | 'woman';\n  region: string;\n  shuffleOrder: boolean;\n}\n\nexport const vowelMapping: Record<string, string> = {\n  'ee': '/i/',\n  'ih': '/ɪ/',\n  'eh': '/ɛ/',\n  'ae': '/æ/',\n  'ah': '/ɑ/',\n  'aw': '/ɔ/',\n  'uh': '/ʌ/',\n  'ooh': '/u/',\n  'oo': '/ʊ/'\n};\n\nconst GavtSelection: React.FC = () => {\n  const [refOpen, setRefOpen] = useState(false);\n  const [caliOpen, setCaliOpen] = useState(false);\n  const [formValues, setFormValues] = useState<FormValues | null>(null);\n  const navigate = useNavigate();\n\n  const handleFormSubmit = async (values: FormValues) => {\n    const { vowels, gender, region, shuffleOrder } = values;\n\n    try {\n      setFormValues(values);\n\n      const mappedVowels = values.vowels.map((vowel) => vowelMapping[vowel]);\n      const frequencies = await getRefFreq(mappedVowels, values.gender, values.shuffleOrder);\n      if (Object.keys(frequencies).length > 0) {\n        console.log(frequencies);\n        navigate('/resonance/practice', { state: { frequencies } });\n      } else {\n        console.log('No resonance frequencies found.');\n      }\n    } catch (error) {\n      console.error('Error fetching resonance frequencies:', error);\n    }\n  };\n\n\n  return (\n    // For real-time frequency display, wrap the GavtForm component in the FreqProvider component\n    <div style={{\n      display: 'flex',\n      flexDirection: 'column',\n      alignItems: 'center',\n      justifyContent: 'center'\n    }}>\n      <h2>Resonance: Setup</h2>\n      <Space direction=\"vertical\" style={{ width: '50%', marginBottom: '20px'}}>\n        {/* <Alert\n          style={{ \n            backgroundColor: '#FFEFEF',\n            borderColor: '#FFEFEF'\n          }} \n          message=\"Setup\"\n          description={\n            <>\n              <div>\n                Before you start to practice, it's highly recommended to use the <Link to=\"/resonance/calibrate\"> calibration routine </Link> first. \n                You will get the <a onClick={()=>setCaliOpen(true)}>calibrated frequency values</a> for each vowel sound after the calibration.\n                However, if you only wish to use the <a onClick={()=>setRefOpen(true)}>reference frequency</a> as a training target, \n                please select the vowel, gender, region, etc. directly below and start practicing immediately.\n              </div>\n            </>\n          }\n          type=\"info\"\n        /> */}\n      </Space>\n      <GavtForm onSubmit={handleFormSubmit}/>\n      <Modal\n        title=\"Reference Frequency Values\"\n        centered\n        open={refOpen}\n        onOk={() => setRefOpen(false)}\n        onCancel={() => setRefOpen(false)}\n        width={1000}\n        footer={[\n          <Button key=\"submit\" type=\"primary\" onClick={() => setRefOpen(false)}>\n            OK\n          </Button>\n        ]}\n      >\n        <RefTable />\n      </Modal>\n      <Modal\n        title=\"Calibrated Frequency Values\"\n        centered\n        open={caliOpen}\n        onOk={() => setCaliOpen(false)}\n        onCancel={() => setCaliOpen(false)}\n        width={1000}\n        footer={[\n          <Button key=\"submit\" type=\"primary\" onClick={() => setCaliOpen(false)}>\n            OK\n          </Button>\n        ]}\n      >\n        <CaliTable />\n      </Modal>\n      <ResonanceMenu formValues={formValues ?? undefined} navigate={navigate}/>\n    </div>\n\n  );\n  };\n  \n  export default GavtSelection;"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}