Merge pull request #96 from chenqianhe/fix/optional-var

fix: make optional var nullable
This commit is contained in:
Crazywoola
2026-04-22 14:33:36 +08:00
committed by GitHub
2 changed files with 30 additions and 15 deletions
+6 -4
View File
@@ -304,11 +304,13 @@ const Main: FC<IMainProps> = () => {
if (!currInputs || !promptConfig?.prompt_variables) { return true }
const inputLens = Object.values(currInputs).length
const promptVariablesLens = promptConfig.prompt_variables.length
let emptyRequiredInput = false
promptConfig.prompt_variables.forEach((item) => {
if (item.required && !currInputs[item.key])
emptyRequiredInput = true
})
const emptyInput = inputLens < promptVariablesLens || Object.values(currInputs).find(v => !v)
if (emptyInput) {
if (emptyRequiredInput) {
logError(t('app.errorMessage.valueOfVarRequired'))
return false
}
+24 -11
View File
@@ -172,22 +172,35 @@ const Welcome: FC<IWelcomeProps> = ({
}
const canChat = () => {
const inputLens = Object.values(inputs).length
const promptVariablesLens = promptConfig.prompt_variables.length
const emptyInput = inputLens < promptVariablesLens || Object.entries(inputs).filter(([k, v]) => {
const isRequired = promptConfig.prompt_variables.find(item => item.key === k)?.required ?? true
return isRequired && v === ''
}).length > 0
if (emptyInput) {
logError(t('app.errorMessage.valueOfVarRequired'))
return false
const vars = promptConfig?.prompt_variables ?? [];
const hasEmptyRequired = vars.some(v => {
const isRequired = v?.required ?? true;
if (!isRequired) return false;
const val = inputs?.[v.key];
if (typeof val === 'string') return val.trim() === '';
return val === undefined || val === null;
});
if (hasEmptyRequired) {
logError(t('app.errorMessage.valueOfVarRequired'));
return false;
}
return true
}
return true;
};
const handleChat = () => {
if (!canChat()) { return }
Object.keys(inputs).forEach((key) => {
if (!inputs[key])
delete inputs[key]
})
onStartChat(inputs)
}