Fix crash issue when first changing tts provider
This commit is contained in:
parent
ef1b0dc856
commit
08f0d7597d
|
|
@ -165,8 +165,8 @@ const TextToSpeech = ({ dialogProps }) => {
|
||||||
|
|
||||||
const setValue = (value, providerName, inputParamName) => {
|
const setValue = (value, providerName, inputParamName) => {
|
||||||
let newVal = {}
|
let newVal = {}
|
||||||
if (!Object.hasOwn(textToSpeech, providerName)) {
|
if (!textToSpeech || !Object.hasOwn(textToSpeech, providerName)) {
|
||||||
newVal = { ...textToSpeech, [providerName]: {} }
|
newVal = { ...(textToSpeech || {}), [providerName]: {} }
|
||||||
} else {
|
} else {
|
||||||
newVal = { ...textToSpeech }
|
newVal = { ...textToSpeech }
|
||||||
}
|
}
|
||||||
|
|
@ -177,7 +177,7 @@ const TextToSpeech = ({ dialogProps }) => {
|
||||||
Object.keys(textToSpeechProviders).forEach((key) => {
|
Object.keys(textToSpeechProviders).forEach((key) => {
|
||||||
const provider = textToSpeechProviders[key]
|
const provider = textToSpeechProviders[key]
|
||||||
if (provider.name !== providerName) {
|
if (provider.name !== providerName) {
|
||||||
newVal[provider.name] = { ...textToSpeech[provider.name], status: false }
|
newVal[provider.name] = { ...(textToSpeech?.[provider.name] || {}), status: false }
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
if (providerName !== 'none' && newVal['none']) {
|
if (providerName !== 'none' && newVal['none']) {
|
||||||
|
|
@ -192,8 +192,8 @@ const TextToSpeech = ({ dialogProps }) => {
|
||||||
setSelectedProvider(() => provider)
|
setSelectedProvider(() => provider)
|
||||||
setVoices([])
|
setVoices([])
|
||||||
if (provider !== 'none') {
|
if (provider !== 'none') {
|
||||||
const config = configOverride || textToSpeech[provider]?.config
|
const config = configOverride || textToSpeech?.[provider]
|
||||||
const credentialId = config[provider]?.credentialId
|
const credentialId = config?.credentialId
|
||||||
if (credentialId) {
|
if (credentialId) {
|
||||||
loadVoicesForProvider(provider, credentialId)
|
loadVoicesForProvider(provider, credentialId)
|
||||||
}
|
}
|
||||||
|
|
@ -225,7 +225,7 @@ const TextToSpeech = ({ dialogProps }) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
const testTTS = async () => {
|
const testTTS = async () => {
|
||||||
if (selectedProvider === 'none' || !textToSpeech[selectedProvider]?.credentialId) {
|
if (selectedProvider === 'none' || !textToSpeech?.[selectedProvider]?.credentialId) {
|
||||||
enqueueSnackbar({
|
enqueueSnackbar({
|
||||||
message: 'Please select a provider and configure credentials first',
|
message: 'Please select a provider and configure credentials first',
|
||||||
options: { variant: 'warning' }
|
options: { variant: 'warning' }
|
||||||
|
|
@ -234,7 +234,7 @@ const TextToSpeech = ({ dialogProps }) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const providerConfig = textToSpeech[selectedProvider]
|
const providerConfig = textToSpeech?.[selectedProvider] || {}
|
||||||
const body = {
|
const body = {
|
||||||
text: 'Today is a wonderful day to build something with Flowise!',
|
text: 'Today is a wonderful day to build something with Flowise!',
|
||||||
provider: selectedProvider,
|
provider: selectedProvider,
|
||||||
|
|
@ -383,10 +383,10 @@ const TextToSpeech = ({ dialogProps }) => {
|
||||||
</div>
|
</div>
|
||||||
{inputParam.type === 'credential' && (
|
{inputParam.type === 'credential' && (
|
||||||
<CredentialInputHandler
|
<CredentialInputHandler
|
||||||
key={textToSpeech[selectedProvider]?.credentialId}
|
key={textToSpeech?.[selectedProvider]?.credentialId}
|
||||||
data={
|
data={
|
||||||
textToSpeech[selectedProvider]?.credentialId
|
textToSpeech?.[selectedProvider]?.credentialId
|
||||||
? { credential: textToSpeech[selectedProvider].credentialId }
|
? { credential: textToSpeech?.[selectedProvider]?.credentialId }
|
||||||
: {}
|
: {}
|
||||||
}
|
}
|
||||||
inputParam={inputParam}
|
inputParam={inputParam}
|
||||||
|
|
@ -403,7 +403,7 @@ const TextToSpeech = ({ dialogProps }) => {
|
||||||
<SwitchInput
|
<SwitchInput
|
||||||
onChange={(newValue) => setValue(newValue, selectedProvider, inputParam.name)}
|
onChange={(newValue) => setValue(newValue, selectedProvider, inputParam.name)}
|
||||||
value={
|
value={
|
||||||
textToSpeech[selectedProvider]
|
textToSpeech?.[selectedProvider]
|
||||||
? textToSpeech[selectedProvider][inputParam.name]
|
? textToSpeech[selectedProvider][inputParam.name]
|
||||||
: inputParam.default ?? false
|
: inputParam.default ?? false
|
||||||
}
|
}
|
||||||
|
|
@ -414,7 +414,7 @@ const TextToSpeech = ({ dialogProps }) => {
|
||||||
inputParam={inputParam}
|
inputParam={inputParam}
|
||||||
onChange={(newValue) => setValue(newValue, selectedProvider, inputParam.name)}
|
onChange={(newValue) => setValue(newValue, selectedProvider, inputParam.name)}
|
||||||
value={
|
value={
|
||||||
textToSpeech[selectedProvider]
|
textToSpeech?.[selectedProvider]
|
||||||
? textToSpeech[selectedProvider][inputParam.name]
|
? textToSpeech[selectedProvider][inputParam.name]
|
||||||
: inputParam.default ?? ''
|
: inputParam.default ?? ''
|
||||||
}
|
}
|
||||||
|
|
@ -426,7 +426,7 @@ const TextToSpeech = ({ dialogProps }) => {
|
||||||
options={inputParam.options}
|
options={inputParam.options}
|
||||||
onSelect={(newValue) => setValue(newValue, selectedProvider, inputParam.name)}
|
onSelect={(newValue) => setValue(newValue, selectedProvider, inputParam.name)}
|
||||||
value={
|
value={
|
||||||
textToSpeech[selectedProvider]
|
textToSpeech?.[selectedProvider]
|
||||||
? textToSpeech[selectedProvider][inputParam.name]
|
? textToSpeech[selectedProvider][inputParam.name]
|
||||||
: inputParam.default ?? 'choose an option'
|
: inputParam.default ?? 'choose an option'
|
||||||
}
|
}
|
||||||
|
|
@ -445,7 +445,7 @@ const TextToSpeech = ({ dialogProps }) => {
|
||||||
options={voices.map((voice) => ({ label: voice.name, name: voice.id }))}
|
options={voices.map((voice) => ({ label: voice.name, name: voice.id }))}
|
||||||
onSelect={(newValue) => setValue(newValue, selectedProvider, inputParam.name)}
|
onSelect={(newValue) => setValue(newValue, selectedProvider, inputParam.name)}
|
||||||
value={
|
value={
|
||||||
textToSpeech[selectedProvider]
|
textToSpeech?.[selectedProvider]
|
||||||
? textToSpeech[selectedProvider][inputParam.name]
|
? textToSpeech[selectedProvider][inputParam.name]
|
||||||
: inputParam.default ?? 'choose a voice'
|
: inputParam.default ?? 'choose a voice'
|
||||||
}
|
}
|
||||||
|
|
@ -469,7 +469,7 @@ const TextToSpeech = ({ dialogProps }) => {
|
||||||
</div>
|
</div>
|
||||||
<SwitchInput
|
<SwitchInput
|
||||||
onChange={(newValue) => setValue(newValue, selectedProvider, 'autoPlay')}
|
onChange={(newValue) => setValue(newValue, selectedProvider, 'autoPlay')}
|
||||||
value={textToSpeech[selectedProvider] ? textToSpeech[selectedProvider].autoPlay ?? false : false}
|
value={textToSpeech?.[selectedProvider] ? textToSpeech[selectedProvider].autoPlay ?? false : false}
|
||||||
/>
|
/>
|
||||||
</Box>
|
</Box>
|
||||||
|
|
||||||
|
|
@ -480,7 +480,7 @@ const TextToSpeech = ({ dialogProps }) => {
|
||||||
size='small'
|
size='small'
|
||||||
startIcon={<IconVolume />}
|
startIcon={<IconVolume />}
|
||||||
onClick={testTTS}
|
onClick={testTTS}
|
||||||
disabled={!textToSpeech[selectedProvider]?.credentialId}
|
disabled={!textToSpeech?.[selectedProvider]?.credentialId}
|
||||||
>
|
>
|
||||||
Test Voice
|
Test Voice
|
||||||
</StyledButton>
|
</StyledButton>
|
||||||
|
|
@ -489,7 +489,7 @@ const TextToSpeech = ({ dialogProps }) => {
|
||||||
)}
|
)}
|
||||||
<StyledButton
|
<StyledButton
|
||||||
style={{ marginBottom: 10, marginTop: 10 }}
|
style={{ marginBottom: 10, marginTop: 10 }}
|
||||||
disabled={selectedProvider !== 'none' && !textToSpeech[selectedProvider]?.credentialId}
|
disabled={selectedProvider !== 'none' && !textToSpeech?.[selectedProvider]?.credentialId}
|
||||||
variant='contained'
|
variant='contained'
|
||||||
onClick={onSave}
|
onClick={onSave}
|
||||||
>
|
>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue