{"ast":null,"code":"var _jsxFileName = \"D:\\\\Project\\\\UC_Trains_Voice\\\\react-demo\\\\src\\\\gavt\\\\GavtPractice.tsx\",\n  _s = $RefreshSig$();\nimport React from 'react';\nimport { useState, useEffect } from 'react';\nimport { useLocation, Link } from 'react-router-dom';\nimport Wave from './Wave/Wave';\nimport Word from './Word';\nimport { Divider, Breadcrumb } from 'antd';\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\nconst GavtPractice = () => {\n  _s();\n  const [currentVowelIndex, setCurrentVowelIndex] = useState(0);\n  const [customFrequency, setCustomFrequency] = useState({});\n  const [currentFrequency, setCurrentFrequency] = useState(0);\n  const location = useLocation();\n  const {\n    frequencies\n  } = location.state || {};\n  const frequenciesArray = Object.entries(frequencies || {}).map(([vowel, freq]) => ({\n    vowel,\n    freq: Number(freq)\n  }));\n  // console.log(frequenciesArray);\n\n  const currentVowel = frequenciesArray[currentVowelIndex];\n  const officialFrequency = currentVowel.freq;\n  useEffect(() => {\n    const freq = customFrequency[currentVowel.vowel] || currentVowel.freq;\n    setCurrentFrequency(freq);\n  }, [currentVowel, customFrequency]);\n  const handleNextVowel = () => {\n    setCurrentVowelIndex(prevIndex => (prevIndex + 1) % frequenciesArray.length);\n  };\n  const handleSetCustomFrequency = newFrequency => {\n    console.log(`Setting custom frequency for ${currentVowel.vowel} to ${newFrequency} Hz.`);\n    setCustomFrequency(prev => ({\n      ...prev,\n      [currentVowel.vowel]: newFrequency\n    }));\n    console.log(customFrequency); //Problems here.\n  };\n\n  //-----------Store custom frequencies in local storage----------------\n  useEffect(() => {\n    const savedFrequencies = localStorage.getItem('customFrequencies');\n    if (savedFrequencies) {\n      setCustomFrequency(JSON.parse(savedFrequencies));\n    }\n  }, []);\n  useEffect(() => {\n    localStorage.setItem('customFrequencies', JSON.stringify(customFrequency));\n  }, [customFrequency]);\n  return /*#__PURE__*/_jsxDEV(_Fragment, {\n    children: [/*#__PURE__*/_jsxDEV(\"div\", {\n      style: {\n        display: 'flex',\n        justifyContent: 'start',\n        width: '100%'\n      },\n      children: /*#__PURE__*/_jsxDEV(Breadcrumb, {\n        items: [{\n          title: /*#__PURE__*/_jsxDEV(Link, {\n            to: \"/gavt\",\n            children: \"Gavt Home\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 62,\n            columnNumber: 22\n          }, this)\n        }, {\n          title: 'Practice'\n        }]\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 59,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 58,\n      columnNumber: 7\n    }, this), /*#__PURE__*/_jsxDEV(\"h1\", {\n      children: \"Practice Now!\"\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 70,\n      columnNumber: 7\n    }, this), /*#__PURE__*/_jsxDEV(Word, {\n      frequenciesArray: frequenciesArray,\n      currentVowel: currentVowel,\n      customFrequency: customFrequency[currentVowel.vowel] || currentVowel.freq,\n      onNextVowel: handleNextVowel\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 71,\n      columnNumber: 7\n    }, this), /*#__PURE__*/_jsxDEV(Divider, {}, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 77,\n      columnNumber: 7\n    }, this), /*#__PURE__*/_jsxDEV(Wave, {\n      frequency: customFrequency[currentVowel.vowel] || currentVowel.freq,\n      officialFrequency: officialFrequency,\n      setCustomFrequency: handleSetCustomFrequency\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 78,\n      columnNumber: 7\n    }, this)]\n  }, void 0, true);\n};\n_s(GavtPractice, \"NSSlokXsS7uDLc6l/vJ+OACt2y0=\", false, function () {\n  return [useLocation];\n});\n_c = GavtPractice;\nexport default GavtPractice;\nvar _c;\n$RefreshReg$(_c, \"GavtPractice\");","map":{"version":3,"names":["React","useState","useEffect","useLocation","Link","Wave","Word","Divider","Breadcrumb","jsxDEV","_jsxDEV","Fragment","_Fragment","GavtPractice","_s","currentVowelIndex","setCurrentVowelIndex","customFrequency","setCustomFrequency","currentFrequency","setCurrentFrequency","location","frequencies","state","frequenciesArray","Object","entries","map","vowel","freq","Number","currentVowel","officialFrequency","handleNextVowel","prevIndex","length","handleSetCustomFrequency","newFrequency","console","log","prev","savedFrequencies","localStorage","getItem","JSON","parse","setItem","stringify","children","style","display","justifyContent","width","items","title","to","fileName","_jsxFileName","lineNumber","columnNumber","onNextVowel","frequency","_c","$RefreshReg$"],"sources":["D:/Project/UC_Trains_Voice/react-demo/src/gavt/GavtPractice.tsx"],"sourcesContent":["import React from 'react';\r\nimport { useState, useEffect } from 'react';\r\nimport { useLocation, Link } from 'react-router-dom';\r\n\r\nimport Wave from './Wave/Wave';\r\nimport Word from './Word';\r\n\r\nimport { Divider, Breadcrumb } from 'antd';\r\n\r\nconst GavtPractice: React.FC = () => {\r\n  const [currentVowelIndex, setCurrentVowelIndex] = useState(0);\r\n  const [customFrequency, setCustomFrequency] = useState<{ [key: string]: number }>({});\r\n  const [currentFrequency, setCurrentFrequency] = useState<number>(0);\r\n\r\n  const location = useLocation();\r\n  const { frequencies } = location.state || {};\r\n  const frequenciesArray = Object.entries(frequencies || {}).map(([vowel, freq]) => ({\r\n    vowel,\r\n    freq: Number(freq)\r\n  }));\r\n  // console.log(frequenciesArray);\r\n\r\n  const currentVowel = frequenciesArray[currentVowelIndex];\r\n  const officialFrequency = currentVowel.freq;\r\n\r\n  useEffect(() => {\r\n    const freq = customFrequency[currentVowel.vowel] || currentVowel.freq;\r\n    setCurrentFrequency(freq);\r\n  }, [currentVowel, customFrequency]);\r\n\r\n  const handleNextVowel = () => {\r\n    setCurrentVowelIndex((prevIndex) => (prevIndex + 1) % frequenciesArray.length);\r\n  };\r\n\r\n  const handleSetCustomFrequency = (newFrequency: number) => {\r\n    console.log(`Setting custom frequency for ${currentVowel.vowel} to ${newFrequency} Hz.`)\r\n    setCustomFrequency((prev) => ({\r\n      ...prev,\r\n      [currentVowel.vowel]: newFrequency\r\n    }));\r\n    console.log(customFrequency); //Problems here.\r\n  };\r\n\r\n  //-----------Store custom frequencies in local storage----------------\r\n  useEffect(() => {\r\n    const savedFrequencies = localStorage.getItem('customFrequencies');\r\n    if (savedFrequencies) {\r\n        setCustomFrequency(JSON.parse(savedFrequencies));\r\n    }\r\n}, []);\r\n\r\n  useEffect(() => {\r\n      localStorage.setItem('customFrequencies', JSON.stringify(customFrequency));\r\n  }, [customFrequency]);\r\n\r\n  return (\r\n    <>\r\n      <div style={{display: 'flex', justifyContent: 'start', width: '100%'}}> \r\n        <Breadcrumb \r\n          items={[\r\n            {\r\n              title: <Link to=\"/gavt\">Gavt Home</Link>,\r\n            },\r\n            {\r\n              title:'Practice',\r\n            }\r\n          ]}\r\n        />\r\n      </div>\r\n      <h1>Practice Now!</h1>\r\n      <Word \r\n        frequenciesArray={frequenciesArray}\r\n        currentVowel={currentVowel}\r\n        customFrequency={customFrequency[currentVowel.vowel] || currentVowel.freq}\r\n        onNextVowel={handleNextVowel}\r\n      />\r\n      <Divider />\r\n      <Wave \r\n        frequency={customFrequency[currentVowel.vowel] || currentVowel.freq}\r\n        officialFrequency={officialFrequency}\r\n        setCustomFrequency={handleSetCustomFrequency}\r\n      />\r\n    </>\r\n  );\r\n};\r\n\r\nexport default GavtPractice;"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}