{"ast":null,"code":"var _jsxFileName = \"D:\\\\Project\\\\UC_Trains_Voice\\\\react-demo\\\\src\\\\gavt\\\\FreqContext.js\",\n  _s = $RefreshSig$(),\n  _s2 = $RefreshSig$();\nimport React, { createContext, useState, useEffect, useContext } from 'react';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nconst FreqContext = /*#__PURE__*/createContext();\nexport const useFreq = () => {\n  _s();\n  return useContext(FreqContext);\n};\n_s(useFreq, \"gDsCjeeItUuvgOWf1v4qoK9RF6k=\");\nconst defaultFreqData = {\n  caliBaseline: {\n    '/i/': '',\n    '/ɪ/': '',\n    '/ɛ/': '',\n    '/æ/': '',\n    '/ɑ/': '',\n    '/ɔ/': '',\n    '/ʌ/': '',\n    '/u/': '',\n    '/ʊ/': ''\n  },\n  customFrequencies: {\n    '/i/': '',\n    '/ɪ/': '',\n    '/ɛ/': '',\n    '/æ/': '',\n    '/ɑ/': '',\n    '/ɔ/': '',\n    '/ʌ/': '',\n    '/u/': '',\n    '/ʊ/': ''\n  }\n};\nexport const FreqProvider = ({\n  children\n}) => {\n  _s2();\n  const [freqData, setFreqData] = useState(defaultFreqData);\n  const channel = new BroadcastChannel('freq_data_channel');\n  useEffect(() => {\n    const loadedCaliBaseline = localStorage.getItem('caliBaseline');\n    const loadedCustomFrequencies = localStorage.getItem('customFrequencies');\n    setFreqData({\n      caliBaseline: loadedCaliBaseline ? JSON.parse(loadedCaliBaseline) : defaultFreqData.caliBaseline,\n      customFrequencies: loadedCustomFrequencies ? JSON.parse(loadedCustomFrequencies) : defaultFreqData.customFrequencies\n    });\n  }, []);\n  useEffect(() => {\n    channel.onmessage = event => {\n      console.log('Context received updated data:', event.data);\n      setFreqData(event.data);\n    };\n    return () => {\n      channel.close();\n    };\n  }, [channel]);\n  const updateFreqData = updates => {\n    setFreqData(prevState => {\n      const newState = {\n        ...prevState\n      };\n\n      // 遍历updates对象，对每个类型的数据进行更新\n      Object.entries(updates).forEach(([type, value]) => {\n        newState[type] = {\n          ...prevState[type],\n          ...value\n        };\n        localStorage.setItem(type, JSON.stringify(newState[type]));\n      });\n\n      // 可选：使用 BroadcastChannel 发送更新\n      try {\n        channel.postMessage(newState);\n      } catch (error) {\n        console.error('Failed to broadcast updated data:', error);\n      }\n      return newState;\n    });\n  };\n  return /*#__PURE__*/_jsxDEV(FreqContext.Provider, {\n    value: {\n      freqData,\n      updateFreqData\n    },\n    children: children\n  }, void 0, false, {\n    fileName: _jsxFileName,\n    lineNumber: 67,\n    columnNumber: 9\n  }, this);\n};\n_s2(FreqProvider, \"INbFwYmVdGvlhSxKm+rzVdUpW90=\");\n_c = FreqProvider;\nvar _c;\n$RefreshReg$(_c, \"FreqProvider\");","map":{"version":3,"names":["React","createContext","useState","useEffect","useContext","jsxDEV","_jsxDEV","FreqContext","useFreq","_s","defaultFreqData","caliBaseline","customFrequencies","FreqProvider","children","_s2","freqData","setFreqData","channel","BroadcastChannel","loadedCaliBaseline","localStorage","getItem","loadedCustomFrequencies","JSON","parse","onmessage","event","console","log","data","close","updateFreqData","updates","prevState","newState","Object","entries","forEach","type","value","setItem","stringify","postMessage","error","Provider","fileName","_jsxFileName","lineNumber","columnNumber","_c","$RefreshReg$"],"sources":["D:/Project/UC_Trains_Voice/react-demo/src/gavt/FreqContext.js"],"sourcesContent":["import React, { createContext, useState, useEffect, useContext } from 'react';\r\n\r\nconst FreqContext = createContext();\r\n\r\nexport const useFreq = () => useContext(FreqContext);\r\n\r\nconst defaultFreqData = {\r\n    caliBaseline: {\r\n        '/i/': '', '/ɪ/': '', '/ɛ/': '', '/æ/': '', '/ɑ/': '', '/ɔ/': '', '/ʌ/': '', '/u/': '', '/ʊ/': ''\r\n    },\r\n    customFrequencies: {\r\n        '/i/': '', '/ɪ/': '', '/ɛ/': '', '/æ/': '', '/ɑ/': '', '/ɔ/': '', '/ʌ/': '', '/u/': '', '/ʊ/': ''\r\n    }\r\n};\r\n\r\n\r\nexport const FreqProvider = ({ children }) => {\r\n    const [freqData, setFreqData] = useState(defaultFreqData);\r\n    const channel = new BroadcastChannel('freq_data_channel');\r\n\r\n    useEffect(() => {\r\n        const loadedCaliBaseline = localStorage.getItem('caliBaseline');\r\n        const loadedCustomFrequencies = localStorage.getItem('customFrequencies');\r\n\r\n        setFreqData({\r\n            caliBaseline: loadedCaliBaseline ? JSON.parse(loadedCaliBaseline) : defaultFreqData.caliBaseline,\r\n            customFrequencies: loadedCustomFrequencies ? JSON.parse(loadedCustomFrequencies) : defaultFreqData.customFrequencies,\r\n        });\r\n    }, []);\r\n\r\n    useEffect(() => {\r\n        channel.onmessage = (event) => {\r\n            console.log('Context received updated data:', event.data);\r\n            setFreqData(event.data);\r\n        };\r\n    \r\n        return () => {\r\n            channel.close();\r\n        };\r\n    }, [channel]);\r\n\r\n    const updateFreqData = (updates) => {\r\n        setFreqData(prevState => {\r\n            const newState = { ...prevState };\r\n    \r\n            // 遍历updates对象，对每个类型的数据进行更新\r\n            Object.entries(updates).forEach(([type, value]) => {\r\n                newState[type] = {\r\n                    ...prevState[type],\r\n                    ...value\r\n                };\r\n                localStorage.setItem(type, JSON.stringify(newState[type]));\r\n            });\r\n    \r\n            // 可选：使用 BroadcastChannel 发送更新\r\n            try {\r\n                channel.postMessage(newState);\r\n            } catch (error) {\r\n                console.error('Failed to broadcast updated data:', error);\r\n            }\r\n    \r\n            return newState;\r\n        });\r\n    };\r\n\r\n    return (\r\n        <FreqContext.Provider value={{ freqData, updateFreqData }}>\r\n            {children}\r\n        </FreqContext.Provider>\r\n    );\r\n};"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}