|
@@ -42,18 +42,19 @@ const ConfigModal: FC<IConfigModalProps> = ({
|
|
|
const { type, label, variable, options, max_length } = tempPayload
|
|
|
|
|
|
const isStringInput = type === InputVarType.textInput || type === InputVarType.paragraph
|
|
|
+ const checkVariableName = useCallback((value: string) => {
|
|
|
+ const { isValid, errorMessageKey } = checkKeys([value], false)
|
|
|
+ if (!isValid) {
|
|
|
+ Toast.notify({
|
|
|
+ type: 'error',
|
|
|
+ message: t(`appDebug.varKeyError.${errorMessageKey}`, { key: t('appDebug.variableConig.varName') }),
|
|
|
+ })
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ return true
|
|
|
+ }, [t])
|
|
|
const handlePayloadChange = useCallback((key: string) => {
|
|
|
return (value: any) => {
|
|
|
- if (key === 'variable') {
|
|
|
- const { isValid, errorKey, errorMessageKey } = checkKeys([value], true)
|
|
|
- if (!isValid) {
|
|
|
- Toast.notify({
|
|
|
- type: 'error',
|
|
|
- message: t(`appDebug.varKeyError.${errorMessageKey}`, { key: errorKey }),
|
|
|
- })
|
|
|
- return
|
|
|
- }
|
|
|
- }
|
|
|
setTempPayload((prev) => {
|
|
|
const newPayload = {
|
|
|
...prev,
|
|
@@ -63,19 +64,20 @@ const ConfigModal: FC<IConfigModalProps> = ({
|
|
|
return newPayload
|
|
|
})
|
|
|
}
|
|
|
- }, [t])
|
|
|
+ }, [])
|
|
|
|
|
|
const handleVarKeyBlur = useCallback((e: any) => {
|
|
|
- if (tempPayload.label)
|
|
|
+ const varName = e.target.value
|
|
|
+ if (!checkVariableName(varName) || tempPayload.label)
|
|
|
return
|
|
|
|
|
|
setTempPayload((prev) => {
|
|
|
return {
|
|
|
...prev,
|
|
|
- label: e.target.value,
|
|
|
+ label: varName,
|
|
|
}
|
|
|
})
|
|
|
- }, [tempPayload])
|
|
|
+ }, [checkVariableName, tempPayload.label])
|
|
|
|
|
|
const handleConfirm = () => {
|
|
|
const moreInfo = tempPayload.variable === payload?.variable
|
|
@@ -84,10 +86,11 @@ const ConfigModal: FC<IConfigModalProps> = ({
|
|
|
type: ChangeType.changeVarName,
|
|
|
payload: { beforeKey: payload?.variable || '', afterKey: tempPayload.variable },
|
|
|
}
|
|
|
- if (!tempPayload.variable) {
|
|
|
- Toast.notify({ type: 'error', message: t('appDebug.variableConig.errorMsg.varNameRequired') })
|
|
|
+
|
|
|
+ const isVariableNameValid = checkVariableName(tempPayload.variable)
|
|
|
+ if (!isVariableNameValid)
|
|
|
return
|
|
|
- }
|
|
|
+
|
|
|
// TODO: check if key already exists. should the consider the edit case
|
|
|
// if (varKeys.map(key => key?.trim()).includes(tempPayload.variable.trim())) {
|
|
|
// Toast.notify({
|