wokada-voice-changer/client/demo/src/104_convert_setting.tsx

63 lines
2.2 KiB
TypeScript
Raw Normal View History

2023-01-12 21:42:02 +09:00
import React, { useMemo } from "react"
2023-01-11 00:59:09 +09:00
import { ClientState } from "./hooks/useClient"
2023-01-07 20:07:39 +09:00
2023-01-11 00:59:09 +09:00
export type UseConvertSettingProps = {
clientState: ClientState
2023-01-07 20:07:39 +09:00
}
2023-01-11 00:59:09 +09:00
export type ConvertSettingState = {
convertSetting: JSX.Element;
}
2023-01-07 20:07:39 +09:00
2023-01-11 00:59:09 +09:00
export const useConvertSetting = (props: UseConvertSettingProps): ConvertSettingState => {
2023-01-07 20:07:39 +09:00
const inputChunkNumRow = useMemo(() => {
return (
<div className="body-row split-3-7 left-padding-1 guided">
<div className="body-item-title left-padding-1">Input Chunk Num(128sample/chunk)</div>
<div className="body-input-container">
2023-01-12 16:38:45 +09:00
<input type="number" min={1} max={256} step={1} value={props.clientState.clientSetting.setting.inputChunkNum} onChange={(e) => {
props.clientState.clientSetting.setInputChunkNum(Number(e.target.value))
2023-01-11 00:59:09 +09:00
}} />
2023-01-07 20:07:39 +09:00
</div>
</div>
)
2023-01-12 16:38:45 +09:00
}, [props.clientState.clientSetting.setting.inputChunkNum, props.clientState.clientSetting.setInputChunkNum])
2023-01-07 20:07:39 +09:00
const gpuRow = useMemo(() => {
return (
<div className="body-row split-3-7 left-padding-1 guided">
<div className="body-item-title left-padding-1">GPU</div>
<div className="body-input-container">
2023-01-12 16:38:45 +09:00
<input type="number" min={-2} max={5} step={1} value={props.clientState.serverSetting.setting.gpu} onChange={(e) => {
props.clientState.serverSetting.setGpu(Number(e.target.value))
2023-01-11 00:59:09 +09:00
}} />
2023-01-07 20:07:39 +09:00
</div>
</div>
)
2023-01-12 16:38:45 +09:00
}, [props.clientState.serverSetting.setting.gpu, props.clientState.serverSetting.setGpu])
2023-01-07 20:07:39 +09:00
const convertSetting = useMemo(() => {
return (
<>
<div className="body-row split-3-7 left-padding-1">
<div className="body-sub-section-title">Converter Setting</div>
<div className="body-select-container">
</div>
</div>
{inputChunkNumRow}
{gpuRow}
2023-01-12 17:23:57 +09:00
2023-01-07 20:07:39 +09:00
</>
)
2023-01-12 17:23:57 +09:00
}, [inputChunkNumRow, gpuRow])
2023-01-07 20:07:39 +09:00
return {
convertSetting,
}
}