refactor: enhance validation logic for regex and text patterns in PatternInput

This commit is contained in:
medchedli 2025-06-09 18:00:25 +01:00
parent e1555268b2
commit d4fe58a925

View File

@ -37,22 +37,28 @@ const PatternInput: FC<PatternInputProps> = ({ control, basePath }) => {
rules={{ rules={{
validate: (currentPatternValue: Pattern) => { validate: (currentPatternValue: Pattern) => {
const type = getPatternType(currentPatternValue); const type = getPatternType(currentPatternValue);
const isEmpty = (val: string) => !val || val === "";
if (type === PatternType.REGEX) { if (type === PatternType.REGEX || type === PatternType.TEXT) {
const regexString = currentPatternValue as string; if (typeof currentPatternValue !== "string") {
if (!regexString || extractRegexBody(regexString).trim() === "") {
return t("message.regex_is_empty");
}
if (!isRegex(extractRegexBody(regexString))) {
return t("message.regex_is_invalid");
}
} else if (type === PatternType.TEXT) {
const textString = currentPatternValue as string;
if (!textString || textString.trim() === "") {
return t("message.text_is_required"); return t("message.text_is_required");
} }
const value = currentPatternValue.trim();
if (type === PatternType.REGEX) {
const regexBody = extractRegexBody(value);
if (isEmpty(regexBody)) {
return t("message.regex_is_empty");
}
if (!isRegex(regexBody)) {
return t("message.regex_is_invalid");
}
} else if (type === PatternType.TEXT) {
if (isEmpty(value)) {
return t("message.text_is_required");
}
}
} }
return true; return true;