{"ast":null,"code":"var _jsxFileName = \"/var/www/gavt/react-demo/src/hooks/useOptionsHooks.tsx\",\n  _s = $RefreshSig$();\nimport { useState, useRef } from 'react';\nimport { createFromIconfontCN } from '@ant-design/icons';\nimport { Button } from 'antd';\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\nconst PlayIcon = createFromIconfontCN({\n  scriptUrl: '//at.alicdn.com/t/c/font_4566050_zpduwnlv2t.js'\n});\n_c = PlayIcon;\nexport function useOptionsHooks() {\n  _s();\n  const [gender, setGender] = useState(\"Female\");\n  const [genderName, setGenderName] = useState(\"Fem01\");\n  const audioPlayerNew = useRef(null);\n  const [jsonFiles, setJsonFiles] = useState([]);\n  const [audioKey, setAudioKey] = useState(123);\n  const [audioSrc, setAudioSrc] = useState('');\n  const [jsonFileLength, setJsonFileLength] = useState(2);\n  const [playLyricCount, setPlayLyricCount] = useState(1);\n  const syllableCount = '5';\n  const saveGender = e => {\n    const [genderType, genderNameType] = e.key.split('-');\n    setGender(genderType);\n    setGenderName(genderNameType);\n    console.log(genderType);\n    console.log('genderName', genderName);\n  };\n\n  // audio\n  const playAudio = () => {\n    if (audioPlayerNew.current && audioPlayerNew.current.audio.current) {\n      audioPlayerNew.current.audio.current.play();\n      const audio = audioPlayerNew.current.audio.current;\n      if (audio.readyState === 4) {\n        audio.play().then(() => {\n          // setIsListen(isListen + 1);\n        }).catch(error => {\n          console.error('Fail play audios: ', error);\n        });\n      } else {\n        audio.addEventListener('canplay', () => {\n          audio.play().then(() => {\n            // setIsListen(isListen + 1);\n          }).catch(error => {\n            console.error('Fail play audios: ', error);\n          });\n        });\n      }\n    }\n  };\n  const fetchAudioData = () => {\n    let url = '';\n    if (gender === 'male') {\n      url = `https://ceas5.uc.edu/transvoice/jsondata/${syllableCount}/${gender}/list.json`;\n    } else {\n      url = `https://ceas5.uc.edu/transvoice/jsonDataOm/${gender}/${genderName}/${syllableCount}syllable/list.json`;\n    }\n    fetch(url).then(response => {\n      if (!response.ok) {\n        throw new Error('Network response was not ok');\n      }\n      return response.json();\n    }).then(data => {\n      setJsonFiles(data.json_files);\n      setJsonFileLength(data.json_files.length);\n      if (data.json_files.length > 0) {\n        let playLyricCountIn = Math.floor(Math.random() * data.json_files.length);\n        while (playLyricCountIn === playLyricCount) {\n          playLyricCountIn = Math.floor(Math.random() * data.json_files.length);\n        }\n        setPlayLyricCount(playLyricCountIn);\n        let audioFilename = '';\n        let audioUrl = '';\n        var timestamp = new Date().getTime();\n        if (gender === 'male') {\n          audioFilename = `${gender}-${data.json_files[playLyricCountIn].replace('.json', '')}.wav`;\n          audioUrl = `https://ceas5.uc.edu/transvoice/audio/${syllableCount}/${gender}/${audioFilename}?t=${timestamp}`;\n        } else {\n          audioFilename = `${genderName}-${gender}-${data.json_files[playLyricCountIn].replace('.json', '')}.wav`;\n          audioUrl = `https://ceas5.uc.edu/transvoice/audioOm/${gender}/${genderName}/${syllableCount}syllable/${audioFilename}?t=${timestamp}`;\n        }\n        console.log(audioUrl);\n        setAudioKey(Date.now());\n        setAudioSrc(audioUrl);\n        // if (audioPlayerNew.current && audioPlayerNew.current.audio.current) {\n        //   audioPlayerNew.current.audio.current.pause();\n        // }\n      }\n    }).catch(error => {\n      console.error('Error fetching JSON files:', error);\n    });\n  };\n  const handleIconClick = e => {\n    fetchAudioData();\n    setTimeout(() => {\n      playAudio();\n      console.log(\"play audio!\");\n    }, 50);\n  };\n  const handleIconClickDropdown = e => {\n    // setIsClickListen(isClickListen+1);\n    setTimeout(() => {\n      playAudio();\n      console.log(\"play audio!\");\n    }, 400);\n  };\n  const CustomButton = ({\n    label,\n    handleIconClick\n  }) => {\n    return /*#__PURE__*/_jsxDEV(Button, {\n      style: {\n        display: 'flex',\n        alignItems: 'center'\n      },\n      className: \"dropdownIcon\",\n      icon: /*#__PURE__*/_jsxDEV(PlayIcon, {\n        style: {\n          fontSize: '1.7em'\n        },\n        onClick: handleIconClick,\n        type: \"icon-audioPlay\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 142,\n        columnNumber: 9\n      }, this),\n      children: label\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 135,\n      columnNumber: 5\n    }, this);\n  };\n  const itemsAvatar = [{\n    key: 'Female-Fem01',\n    label: /*#__PURE__*/_jsxDEV(CustomButton, {\n      label: \"Female-01\",\n      handleIconClick: handleIconClickDropdown\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 160,\n      columnNumber: 11\n    }, this),\n    onClick: saveGender\n  }, {\n    key: 'Female-Fem02',\n    label: /*#__PURE__*/_jsxDEV(CustomButton, {\n      label: \"Female-02\",\n      handleIconClick: handleIconClickDropdown\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 170,\n      columnNumber: 11\n    }, this),\n    onClick: saveGender\n  }, {\n    key: 'Female-Fem03',\n    label: /*#__PURE__*/_jsxDEV(CustomButton, {\n      label: \"Female-03\",\n      handleIconClick: handleIconClickDropdown\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 180,\n      columnNumber: 11\n    }, this),\n    onClick: saveGender\n  }, {\n    key: 'Female-Fem04',\n    label: /*#__PURE__*/_jsxDEV(CustomButton, {\n      label: \"Female-04\",\n      handleIconClick: handleIconClickDropdown\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 190,\n      columnNumber: 11\n    }, this),\n    onClick: saveGender\n  }, {\n    key: 'Female-Fem05',\n    label: /*#__PURE__*/_jsxDEV(CustomButton, {\n      label: \"Female-05\",\n      handleIconClick: handleIconClickDropdown\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 200,\n      columnNumber: 11\n    }, this),\n    onClick: saveGender\n  }, {\n    key: 'Female-Fem06',\n    label: /*#__PURE__*/_jsxDEV(CustomButton, {\n      label: \"Female-06\",\n      handleIconClick: handleIconClickDropdown\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 210,\n      columnNumber: 11\n    }, this),\n    onClick: saveGender\n  }, {\n    key: 'Female-Fem07',\n    label: /*#__PURE__*/_jsxDEV(CustomButton, {\n      label: \"Female-07\",\n      handleIconClick: handleIconClickDropdown\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 220,\n      columnNumber: 11\n    }, this),\n    onClick: saveGender\n  }, {\n    key: 'male',\n    label: /*#__PURE__*/_jsxDEV(CustomButton, {\n      label: \"Male-01\",\n      handleIconClick: handleIconClickDropdown\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 230,\n      columnNumber: 11\n    }, this),\n    onClick: saveGender\n  }];\n  const ModelSelections = () => {\n    /*#__PURE__*/_jsxDEV(_Fragment, {}, void 0, false);\n  };\n  return {\n    gender,\n    setGender,\n    genderName,\n    setGenderName,\n    audioPlayerNew,\n    jsonFiles,\n    setJsonFiles,\n    audioKey,\n    setAudioKey,\n    audioSrc,\n    setAudioSrc,\n    jsonFileLength,\n    setJsonFileLength,\n    playLyricCount,\n    setPlayLyricCount,\n    syllableCount,\n    playAudio,\n    fetchAudioData,\n    saveGender,\n    handleIconClick,\n    handleIconClickDropdown,\n    itemsAvatar\n  };\n}\n_s(useOptionsHooks, \"wmbIfWE0haJBC+vaZ/ZX9MUDD34=\");\nvar _c;\n$RefreshReg$(_c, \"PlayIcon\");","map":{"version":3,"names":["useState","useRef","createFromIconfontCN","Button","jsxDEV","_jsxDEV","Fragment","_Fragment","PlayIcon","scriptUrl","_c","useOptionsHooks","_s","gender","setGender","genderName","setGenderName","audioPlayerNew","jsonFiles","setJsonFiles","audioKey","setAudioKey","audioSrc","setAudioSrc","jsonFileLength","setJsonFileLength","playLyricCount","setPlayLyricCount","syllableCount","saveGender","e","genderType","genderNameType","key","split","console","log","playAudio","current","audio","play","readyState","then","catch","error","addEventListener","fetchAudioData","url","fetch","response","ok","Error","json","data","json_files","length","playLyricCountIn","Math","floor","random","audioFilename","audioUrl","timestamp","Date","getTime","replace","now","handleIconClick","setTimeout","handleIconClickDropdown","CustomButton","label","style","display","alignItems","className","icon","fontSize","onClick","type","fileName","_jsxFileName","lineNumber","columnNumber","children","itemsAvatar","ModelSelections","$RefreshReg$"],"sources":["/var/www/gavt/react-demo/src/hooks/useOptionsHooks.tsx"],"sourcesContent":["import { useState, useRef } from 'react';\nimport { COLORS } from '../types/configTypes';\nimport { adjustCanvasScale, map, drawBackground } from '../function/canvasDefault';\nimport {Dropdown} from 'antd'; \nimport AudioPlayer from 'react-h5-audio-player';\nimport { createFromIconfontCN } from '@ant-design/icons';\nimport { Button } from 'antd';\nimport type { MenuProps } from 'antd';\n\n\ninterface CustomButtonProps {\n  label: string;\n  handleIconClick?: (e: React.MouseEvent<HTMLSpanElement, MouseEvent>) => void; \n}\n\nconst PlayIcon = createFromIconfontCN({\n  scriptUrl: '//at.alicdn.com/t/c/font_4566050_zpduwnlv2t.js',\n});\n\nexport function useOptionsHooks() {\n  const [gender, setGender] = useState<string>(\"Female\");\n  const [genderName, setGenderName] = useState<string>(\"Fem01\");\n  const audioPlayerNew = useRef<AudioPlayer>(null);\n  const [jsonFiles, setJsonFiles] = useState<string[]>([]);\n  const [audioKey, setAudioKey] = useState<number>(123);\n  const [audioSrc, setAudioSrc] = useState<string>('');\n  const [jsonFileLength,setJsonFileLength] = useState<number>(2);\n  const [playLyricCount,setPlayLyricCount] = useState<number>(1);\n\n  const syllableCount = '5';\n\n  const saveGender = (e: any) => {\n    const [genderType, genderNameType] = e.key.split('-');\n    setGender(genderType);\n    setGenderName(genderNameType);\n    console.log(genderType);\n    console.log('genderName', genderName)\n  }\n  \n    // audio\n    const playAudio = () => {\n      if (audioPlayerNew.current && audioPlayerNew.current.audio.current) {\n        audioPlayerNew.current.audio.current.play()\n        const audio = audioPlayerNew.current.audio.current;\n        if (audio.readyState === 4) {\n          audio.play()\n            .then(() => {\n              // setIsListen(isListen + 1);\n            })\n            .catch((error:Error) => {\n              console.error('Fail play audios: ', error);\n            });\n        } else {\n          audio.addEventListener('canplay', () => {\n            audio.play()\n              .then(() => {\n                // setIsListen(isListen + 1);\n              })\n              .catch((error:Error) => {\n                console.error('Fail play audios: ', error);\n              });\n          });\n        }\n      }\n    };\n\n    const fetchAudioData = () => {\n      let url = '';\n      if (gender === 'male') {\n        url = `https://ceas5.uc.edu/transvoice/jsondata/${syllableCount}/${gender}/list.json`;\n      } else {\n        url = `https://ceas5.uc.edu/transvoice/jsonDataOm/${gender}/${genderName}/${syllableCount}syllable/list.json`;\n      }\n  \n      fetch(url)\n        .then(response => {\n          if (!response.ok) {\n            throw new Error('Network response was not ok');\n          }\n          return response.json();\n        })\n        .then(data => {\n          setJsonFiles(data.json_files);\n          setJsonFileLength(data.json_files.length);\n          if (data.json_files.length > 0) {\n            let  playLyricCountIn = Math.floor(Math.random() * data.json_files.length);\n            while (playLyricCountIn === playLyricCount) {\n              playLyricCountIn = Math.floor(Math.random() * data.json_files.length);\n            }\n            setPlayLyricCount(playLyricCountIn);\n            let audioFilename = '';\n            let audioUrl = '';\n            var timestamp = new Date().getTime(); \n            if (gender === 'male') {\n              audioFilename = `${gender}-${data.json_files[playLyricCountIn].replace('.json', '')}.wav`;\n              audioUrl = `https://ceas5.uc.edu/transvoice/audio/${syllableCount}/${gender}/${audioFilename}?t=${timestamp}`;\n            } else {\n              audioFilename = `${genderName}-${gender}-${data.json_files[playLyricCountIn].replace('.json', '')}.wav`;\n              audioUrl = `https://ceas5.uc.edu/transvoice/audioOm/${gender}/${genderName}/${syllableCount}syllable/${audioFilename}?t=${timestamp}`;\n            }\n            console.log(audioUrl);\n  \n            setAudioKey(Date.now());\n            setAudioSrc(audioUrl);\n            // if (audioPlayerNew.current && audioPlayerNew.current.audio.current) {\n            //   audioPlayerNew.current.audio.current.pause();\n            // }\n          }\n        })\n        .catch(error => {\n          console.error('Error fetching JSON files:', error);\n        });\n    };\n\n\n    const handleIconClick = (e: React.MouseEvent<HTMLSpanElement, MouseEvent>) => {\n      fetchAudioData();\n      setTimeout(() => {\n        playAudio();\n        console.log(\"play audio!\");\n      }, 50); \n    };\n  \n    const handleIconClickDropdown = (e: React.MouseEvent<HTMLSpanElement, MouseEvent>) => {\n      // setIsClickListen(isClickListen+1);\n      setTimeout(() => {\n        playAudio();\n        console.log(\"play audio!\");\n      }, 400); \n    };\n\n    \nconst CustomButton: React.FC<CustomButtonProps> = ({ label, handleIconClick }) => {\n  return (\n    <Button\n      style={{\n        display: 'flex',\n        alignItems: 'center',\n      }}\n      className='dropdownIcon'\n      icon={\n        <PlayIcon\n          style={{\n            fontSize: '1.7em',\n          }}\n          onClick={handleIconClick}\n          type=\"icon-audioPlay\"\n           />\n      }\n    >\n      {label}\n    </Button>\n  );\n};\n\n    const itemsAvatar: MenuProps['items'] = [\n      {\n        key: 'Female-Fem01',\n        label: (\n          <CustomButton\n          label=\"Female-01\"\n          handleIconClick={handleIconClickDropdown}\n          />\n        ),\n        onClick: saveGender,\n      },\n      {\n        key: 'Female-Fem02',\n        label: (\n          <CustomButton\n          label=\"Female-02\"\n          handleIconClick={handleIconClickDropdown}\n          />\n        ),\n        onClick: saveGender,\n      },\n      {\n        key: 'Female-Fem03',\n        label: (\n          <CustomButton\n          label=\"Female-03\"\n          handleIconClick={handleIconClickDropdown}\n          />\n        ),\n        onClick: saveGender,\n      },\n      {\n        key: 'Female-Fem04',\n        label: (\n          <CustomButton\n          label=\"Female-04\"\n          handleIconClick={handleIconClickDropdown}\n          />\n        ),\n        onClick: saveGender,\n      },\n      {\n        key: 'Female-Fem05',\n        label: (\n          <CustomButton\n          label=\"Female-05\"\n          handleIconClick={handleIconClickDropdown}\n          />\n        ),\n        onClick: saveGender,\n      },\n      {\n        key: 'Female-Fem06',\n        label: (\n          <CustomButton\n          label=\"Female-06\"\n          handleIconClick={handleIconClickDropdown}\n          />\n        ),\n        onClick: saveGender,\n      },\n      {\n        key: 'Female-Fem07',\n        label: (\n          <CustomButton\n          label=\"Female-07\"\n          handleIconClick={handleIconClickDropdown}\n          />\n        ),\n        onClick: saveGender,\n      },\n      {\n        key: 'male',\n        label: (\n          <CustomButton\n          label=\"Male-01\"\n          handleIconClick={handleIconClickDropdown}\n          />\n        ),\n        onClick: saveGender,\n      },\n    ];\n\n    const ModelSelections = () => {\n        <>\n        {/* <p># Model Selection: </p>\n              <Dropdown.Button\n                menu={{ items: itemsAvatar }}\n                placement=\"bottom\"\n                trigger={[\"click\"]}\n                overlayClassName='custom-dropdown'\n                buttonsRender={([leftButton, rightButton]) => [\n                  <Tooltip>\n                    <Button\n                      style={{\n                        display: 'flex',\n                        alignItems: 'center',\n                      }}\n                      onClick={handleIconClick}\n                      icon={\n                        <PlayIcon\n                          style={{\n                            fontSize: '1.7em',\n                          }}\n                          type=\"icon-audioPlay\"\n                           />\n                      }\n                    >\n                      {genderName === \"none\" ? \"Model Voice\" : gender === \"Female\" ? genderName : 'Male01'}\n                    </Button>\n                  </Tooltip>\n                  ,\n                  React.cloneElement(rightButton as React.ReactElement<any, string>, { loading: false }),\n                ]}\n              >\n              </Dropdown.Button> */}\n        </>\n    }\n    return {\n      gender,\n      setGender,\n      genderName,\n      setGenderName,\n      audioPlayerNew,\n      jsonFiles,\n      setJsonFiles,\n      audioKey,\n      setAudioKey,\n      audioSrc,\n      setAudioSrc,\n      jsonFileLength,\n      setJsonFileLength,\n      playLyricCount,\n      setPlayLyricCount,\n\n      syllableCount,\n\nplayAudio,\nfetchAudioData,\n\n\n      saveGender,\n\n\n      handleIconClick,\n      handleIconClickDropdown,\n\n      itemsAvatar,\n\n    }\n}"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}