import { VoiceChangerMode } from "@dannadori/voice-changer-client-js" import React, { useMemo, useState } from "react" import { ClientState } from "./hooks/useClient" export type UseAdvancedSettingProps = { clientState: ClientState } export type AdvancedSettingState = { advancedSetting: JSX.Element; } export const useAdvancedSetting = (props: UseAdvancedSettingProps): AdvancedSettingState => { const vfForceDisableRow = useMemo(() => { return (
VF Disabled
{ props.clientState.clientSetting.setVfForceDisabled(e.target.checked) }} />
) }, [props.clientState.clientSetting.setting.forceVfDisable, props.clientState.clientSetting.setVfForceDisabled]) const voiceChangeModeRow = useMemo(() => { return (
Voice Change Mode
) }, [props.clientState.clientSetting.setting.voiceChangerMode, props.clientState.clientSetting.setVoiceChangerMode]) const workletSettingRow = useMemo(() => { return ( <>
Trancate Num
{ props.clientState.workletSetting.setSetting({ ...props.clientState.workletSetting.setting, numTrancateTreshold: Number(e.target.value) }) }} />
Trancate Vol
{ props.clientState.workletSetting.setSetting({ ...props.clientState.workletSetting.setting, volTrancateThreshold: Number(e.target.value) }) }} />
Trancate Vol Length
{ props.clientState.workletSetting.setSetting({ ...props.clientState.workletSetting.setting, volTrancateLength: Number(e.target.value) }) }} />
) }, [props.clientState.workletSetting.setting, props.clientState.workletSetting.setSetting]) const advancedSetting = useMemo(() => { return ( <>
Advanced Setting
{vfForceDisableRow} {voiceChangeModeRow} {workletSettingRow} ) }, [vfForceDisableRow, voiceChangeModeRow, workletSettingRow]) return { advancedSetting, } }