{"ast":null,"code":"var _jsxFileName = \"D:\\\\Project\\\\UC_Trains_Voice\\\\react-demo\\\\src\\\\gavt\\\\GavtCali.tsx\",\n  _s = $RefreshSig$();\nimport React, { useState, useEffect } from 'react';\nimport { Divider, Steps, Breadcrumb, Button, message } from 'antd';\nimport { Link } from 'react-router-dom';\nimport { AudioOutlined, PlayCircleOutlined, StopOutlined } from '@ant-design/icons';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nconst stepsTitles = ['Instruction', 'Before You Start', 'Record Your Voice', 'Complete'];\nconst recordingSteps = [{\n  key: 'vowel1',\n  title: '“ee” like in “seed”',\n  description: 'Click “start” and pronounce the vowel for 2 seconds, then click “stop”.'\n}, {\n  key: 'vowel2',\n  title: '“ih” like in “hid”',\n  description: 'Click “start” and pronounce the vowel for 2 seconds, then click “stop”.'\n}, {\n  key: 'vowel3',\n  title: '“eh” like in “head”',\n  description: 'Click “start” and pronounce the vowel for 2 seconds, then click “stop”.'\n}];\nconst GavtCali = () => {\n  _s();\n  const [currentStep, setCurrentStep] = useState(0);\n  const [currentRecordingStep, setCurrentRecordingStep] = useState(0);\n  const [audioURLs, setAudioURLs] = useState({});\n  const [mediaRecorder, setMediaRecorder] = useState(null);\n  const [isRecording, setIsRecording] = useState(false);\n\n  // Setup MediaRecorder\n  useEffect(() => {\n    async function setupRecorder() {\n      try {\n        const stream = await navigator.mediaDevices.getUserMedia({\n          audio: true\n        });\n        const recorder = new MediaRecorder(stream);\n        setMediaRecorder(recorder);\n        recorder.ondataavailable = event => {\n          if (event.data.size > 0) {\n            const newAudioURL = URL.createObjectURL(event.data);\n            setAudioURLs(prev => ({\n              ...prev,\n              [recordingSteps[currentRecordingStep].key]: newAudioURL\n            }));\n          }\n        };\n      } catch (error) {\n        console.error('Error setting up the media recorder:', error);\n      }\n    }\n    setupRecorder();\n    return () => {\n      mediaRecorder === null || mediaRecorder === void 0 ? void 0 : mediaRecorder.stream.getTracks().forEach(track => track.stop());\n    };\n  }, [currentRecordingStep]);\n  const handleStartRecording = () => {\n    if (!isRecording) {\n      mediaRecorder.start();\n      setIsRecording(true);\n      message.info('Recording started!');\n    }\n  };\n  const handleStopRecording = () => {\n    if (isRecording) {\n      mediaRecorder.stop();\n      setIsRecording(false);\n      message.info('Recording stopped!');\n    }\n  };\n  const handlePlayback = audioUrl => {\n    new Audio(audioUrl).play();\n  };\n  const renderRecordingControls = () => {\n    const currentRecording = audioURLs[recordingSteps[currentRecordingStep].key];\n    return /*#__PURE__*/_jsxDEV(\"div\", {\n      children: [/*#__PURE__*/_jsxDEV(Button, {\n        icon: isRecording ? /*#__PURE__*/_jsxDEV(StopOutlined, {}, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 76,\n          columnNumber: 37\n        }, this) : /*#__PURE__*/_jsxDEV(AudioOutlined, {}, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 76,\n          columnNumber: 56\n        }, this),\n        onClick: isRecording ? handleStopRecording : handleStartRecording,\n        children: isRecording ? 'Stop' : 'Start Recording'\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 76,\n        columnNumber: 9\n      }, this), currentRecording && /*#__PURE__*/_jsxDEV(Button, {\n        icon: /*#__PURE__*/_jsxDEV(PlayCircleOutlined, {}, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 80,\n          columnNumber: 25\n        }, this),\n        onClick: () => handlePlayback(currentRecording),\n        children: \"Play\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 80,\n        columnNumber: 11\n      }, this)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 75,\n      columnNumber: 7\n    }, this);\n  };\n  const renderStepContent = () => {\n    if (currentStep === 2) {\n      return /*#__PURE__*/_jsxDEV(\"div\", {\n        children: [renderRecordingControls(), /*#__PURE__*/_jsxDEV(Steps, {\n          direction: \"vertical\",\n          current: currentRecordingStep,\n          onChange: setCurrentRecordingStep,\n          children: recordingSteps.map((step, index) => /*#__PURE__*/_jsxDEV(Steps.Step, {\n            title: step.title,\n            description: step.description\n          }, step.key, false, {\n            fileName: _jsxFileName,\n            lineNumber: 95,\n            columnNumber: 15\n          }, this))\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 93,\n          columnNumber: 11\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 91,\n        columnNumber: 9\n      }, this);\n    } else {\n      // For other steps just return descriptive text\n      return /*#__PURE__*/_jsxDEV(\"p\", {\n        children: stepsTitles[currentStep]\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 102,\n        columnNumber: 14\n      }, this);\n    }\n  };\n  return /*#__PURE__*/_jsxDEV(\"div\", {\n    style: {\n      display: 'flex',\n      flexDirection: 'column',\n      alignItems: 'center',\n      marginTop: '20px',\n      width: '80%'\n    },\n    children: [/*#__PURE__*/_jsxDEV(Breadcrumb, {\n      style: {\n        marginBottom: '20px',\n        alignSelf: 'start'\n      },\n      children: [/*#__PURE__*/_jsxDEV(Breadcrumb.Item, {\n        children: /*#__PURE__*/_jsxDEV(Link, {\n          to: \"/gavt\",\n          children: \"Gavt Home\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 109,\n          columnNumber: 26\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 109,\n        columnNumber: 9\n      }, this), /*#__PURE__*/_jsxDEV(Breadcrumb.Item, {\n        children: \"Calibration\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 110,\n        columnNumber: 9\n      }, this)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 108,\n      columnNumber: 7\n    }, this), /*#__PURE__*/_jsxDEV(Steps, {\n      progressDot: true,\n      current: currentStep,\n      children: stepsTitles.map((title, index) => /*#__PURE__*/_jsxDEV(Steps.Step, {\n        title: title\n      }, index, false, {\n        fileName: _jsxFileName,\n        lineNumber: 114,\n        columnNumber: 11\n      }, this))\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 112,\n      columnNumber: 7\n    }, this), /*#__PURE__*/_jsxDEV(Divider, {}, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 117,\n      columnNumber: 7\n    }, this), renderStepContent(), /*#__PURE__*/_jsxDEV(\"div\", {\n      style: {\n        marginTop: '20px'\n      },\n      children: [/*#__PURE__*/_jsxDEV(Button, {\n        disabled: currentStep === 0,\n        onClick: () => setCurrentStep(currentStep - 1),\n        children: \"Previous\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 120,\n        columnNumber: 9\n      }, this), /*#__PURE__*/_jsxDEV(Button, {\n        type: \"primary\",\n        onClick: () => setCurrentStep(currentStep + 1),\n        disabled: currentStep === stepsTitles.length - 1,\n        children: currentStep === stepsTitles.length - 1 ? 'Finish' : 'Next'\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 121,\n        columnNumber: 9\n      }, this)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 119,\n      columnNumber: 7\n    }, this)]\n  }, void 0, true, {\n    fileName: _jsxFileName,\n    lineNumber: 107,\n    columnNumber: 5\n  }, this);\n};\n_s(GavtCali, \"0xo6kCuyxftGpDcRTZi285MpmuU=\");\n_c = GavtCali;\nexport default GavtCali;\nvar _c;\n$RefreshReg$(_c, \"GavtCali\");","map":{"version":3,"names":["React","useState","useEffect","Divider","Steps","Breadcrumb","Button","message","Link","AudioOutlined","PlayCircleOutlined","StopOutlined","jsxDEV","_jsxDEV","stepsTitles","recordingSteps","key","title","description","GavtCali","_s","currentStep","setCurrentStep","currentRecordingStep","setCurrentRecordingStep","audioURLs","setAudioURLs","mediaRecorder","setMediaRecorder","isRecording","setIsRecording","setupRecorder","stream","navigator","mediaDevices","getUserMedia","audio","recorder","MediaRecorder","ondataavailable","event","data","size","newAudioURL","URL","createObjectURL","prev","error","console","getTracks","forEach","track","stop","handleStartRecording","start","info","handleStopRecording","handlePlayback","audioUrl","Audio","play","renderRecordingControls","currentRecording","children","icon","fileName","_jsxFileName","lineNumber","columnNumber","onClick","renderStepContent","direction","current","onChange","map","step","index","Step","style","display","flexDirection","alignItems","marginTop","width","marginBottom","alignSelf","Item","to","progressDot","disabled","type","length","_c","$RefreshReg$"],"sources":["D:/Project/UC_Trains_Voice/react-demo/src/gavt/GavtCali.tsx"],"sourcesContent":["import React, { useState, useEffect } from 'react';\r\nimport { Divider, Steps, Breadcrumb, Button, message } from 'antd';\r\nimport { Link } from 'react-router-dom';\r\nimport { AudioOutlined, PlayCircleOutlined, StopOutlined } from '@ant-design/icons';\r\n\r\nconst stepsTitles = [\r\n  'Instruction',\r\n  'Before You Start',\r\n  'Record Your Voice',\r\n  'Complete'\r\n];\r\n\r\nconst recordingSteps = [\r\n  { key: 'vowel1', title: '“ee” like in “seed”', description: 'Click “start” and pronounce the vowel for 2 seconds, then click “stop”.' },\r\n  { key: 'vowel2', title: '“ih” like in “hid”', description: 'Click “start” and pronounce the vowel for 2 seconds, then click “stop”.' },\r\n  { key: 'vowel3', title: '“eh” like in “head”', description: 'Click “start” and pronounce the vowel for 2 seconds, then click “stop”.' }\r\n];\r\n\r\nconst GavtCali = () => {\r\n  const [currentStep, setCurrentStep] = useState(0);\r\n  const [currentRecordingStep, setCurrentRecordingStep] = useState(0);\r\n  const [audioURLs, setAudioURLs] = useState({});\r\n  const [mediaRecorder, setMediaRecorder] = useState(null);\r\n  const [isRecording, setIsRecording] = useState(false);\r\n\r\n  // Setup MediaRecorder\r\n  useEffect(() => {\r\n    async function setupRecorder() {\r\n      try {\r\n        const stream = await navigator.mediaDevices.getUserMedia({ audio: true });\r\n        const recorder = new MediaRecorder(stream);\r\n        setMediaRecorder(recorder);\r\n\r\n        recorder.ondataavailable = (event) => {\r\n          if (event.data.size > 0) {\r\n            const newAudioURL = URL.createObjectURL(event.data);\r\n            setAudioURLs(prev => ({ ...prev, [recordingSteps[currentRecordingStep].key]: newAudioURL }));\r\n          }\r\n        };\r\n      } catch (error) {\r\n        console.error('Error setting up the media recorder:', error);\r\n      }\r\n    }\r\n\r\n    setupRecorder();\r\n\r\n    return () => {\r\n      mediaRecorder?.stream.getTracks().forEach(track => track.stop());\r\n    };\r\n  }, [currentRecordingStep]);\r\n\r\n  const handleStartRecording = () => {\r\n    if (!isRecording) {\r\n      mediaRecorder.start();\r\n      setIsRecording(true);\r\n      message.info('Recording started!');\r\n    }\r\n  };\r\n\r\n  const handleStopRecording = () => {\r\n    if (isRecording) {\r\n      mediaRecorder.stop();\r\n      setIsRecording(false);\r\n      message.info('Recording stopped!');\r\n    }\r\n  };\r\n\r\n  const handlePlayback = (audioUrl) => {\r\n    new Audio(audioUrl).play();\r\n  };\r\n\r\n  const renderRecordingControls = () => {\r\n    const currentRecording = audioURLs[recordingSteps[currentRecordingStep].key];\r\n    return (\r\n      <div>\r\n        <Button icon={isRecording ? <StopOutlined /> : <AudioOutlined />} onClick={isRecording ? handleStopRecording : handleStartRecording}>\r\n          {isRecording ? 'Stop' : 'Start Recording'}\r\n        </Button>\r\n        {currentRecording && (\r\n          <Button icon={<PlayCircleOutlined />} onClick={() => handlePlayback(currentRecording)}>\r\n            Play\r\n          </Button>\r\n        )}\r\n      </div>\r\n    );\r\n  };\r\n\r\n  const renderStepContent = () => {\r\n    if (currentStep === 2) {\r\n      return (\r\n        <div>\r\n          {renderRecordingControls()}\r\n          <Steps direction=\"vertical\" current={currentRecordingStep} onChange={setCurrentRecordingStep}>\r\n            {recordingSteps.map((step, index) => (\r\n              <Steps.Step key={step.key} title={step.title} description={step.description} />\r\n            ))}\r\n          </Steps>\r\n        </div>\r\n      );\r\n    } else {\r\n      // For other steps just return descriptive text\r\n      return <p>{stepsTitles[currentStep]}</p>;\r\n    }\r\n  };\r\n\r\n  return (\r\n    <div style={{ display: 'flex', flexDirection: 'column', alignItems: 'center', marginTop: '20px', width: '80%' }}>\r\n      <Breadcrumb style={{ marginBottom: '20px', alignSelf: 'start' }}>\r\n        <Breadcrumb.Item><Link to=\"/gavt\">Gavt Home</Link></Breadcrumb.Item>\r\n        <Breadcrumb.Item>Calibration</Breadcrumb.Item>\r\n      </Breadcrumb>\r\n      <Steps progressDot current={currentStep}>\r\n        {stepsTitles.map((title, index) => (\r\n          <Steps.Step key={index} title={title} />\r\n        ))}\r\n      </Steps>\r\n      <Divider />\r\n      {renderStepContent()}\r\n      <div style={{ marginTop: '20px' }}>\r\n        <Button disabled={currentStep === 0} onClick={() => setCurrentStep(currentStep - 1)}>Previous</Button>\r\n        <Button type=\"primary\" onClick={() => setCurrentStep(currentStep + 1)} disabled={currentStep === stepsTitles.length - 1}>\r\n          {currentStep === stepsTitles.length - 1 ? 'Finish' : 'Next'}\r\n        </Button>\r\n      </div>\r\n    </div>\r\n  );\r\n}\r\n\r\nexport default GavtCali;\r\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}