speaking public URL display adjustment
This commit is contained in:
parent
feb046e369
commit
6910fb55a4
|
|
@ -513,6 +513,46 @@ export function SpeakingPage() {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
|
const trimmedValue = rawValue.trim()
|
||||||
|
const isURL = /^https?:\/\//i.test(trimmedValue)
|
||||||
|
|
||||||
|
if (isURL) {
|
||||||
|
updateDraft(draftIndex, (draft) =>
|
||||||
|
field === "voice_prompt"
|
||||||
|
? { ...draft, uploadingVoicePrompt: true }
|
||||||
|
: { ...draft, uploadingSamplePrompt: true },
|
||||||
|
)
|
||||||
|
|
||||||
|
const res = await uploadAudioFile(trimmedValue)
|
||||||
|
const objectKey = res.data?.data?.object_key?.trim()
|
||||||
|
const immediateUrl = res.data?.data?.url?.trim() ?? ""
|
||||||
|
if (!objectKey) throw new Error("Missing uploaded audio object key")
|
||||||
|
|
||||||
|
if (field === "voice_prompt") {
|
||||||
|
updateDraft(draftIndex, (draft) => ({
|
||||||
|
...draft,
|
||||||
|
voicePrompt: objectKey,
|
||||||
|
voicePromptPreviewUrl: immediateUrl || draft.voicePromptPreviewUrl,
|
||||||
|
}))
|
||||||
|
if (!immediateUrl) {
|
||||||
|
const resolvedUrl = await resolvePreviewUrl(objectKey)
|
||||||
|
updateDraft(draftIndex, (draft) => ({ ...draft, voicePromptPreviewUrl: resolvedUrl }))
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
updateDraft(draftIndex, (draft) => ({
|
||||||
|
...draft,
|
||||||
|
sampleAnswerVoicePrompt: objectKey,
|
||||||
|
samplePromptPreviewUrl: immediateUrl || draft.samplePromptPreviewUrl,
|
||||||
|
}))
|
||||||
|
if (!immediateUrl) {
|
||||||
|
const resolvedUrl = await resolvePreviewUrl(objectKey)
|
||||||
|
updateDraft(draftIndex, (draft) => ({ ...draft, samplePromptPreviewUrl: resolvedUrl }))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
toast.success("Audio URL imported successfully")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
const url = await resolvePreviewUrl(rawValue)
|
const url = await resolvePreviewUrl(rawValue)
|
||||||
updateDraft(draftIndex, (draft) =>
|
updateDraft(draftIndex, (draft) =>
|
||||||
field === "voice_prompt"
|
field === "voice_prompt"
|
||||||
|
|
@ -521,7 +561,13 @@ export function SpeakingPage() {
|
||||||
)
|
)
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error("Failed to resolve audio preview URL:", error)
|
console.error("Failed to resolve audio preview URL:", error)
|
||||||
toast.error("Could not resolve audio preview URL")
|
toast.error("Could not import/resolve audio URL")
|
||||||
|
} finally {
|
||||||
|
updateDraft(draftIndex, (draft) =>
|
||||||
|
field === "voice_prompt"
|
||||||
|
? { ...draft, uploadingVoicePrompt: false }
|
||||||
|
: { ...draft, uploadingSamplePrompt: false },
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user