diff --git a/newIDE/app/src/EventsFunctionsExtensionEditor/EventsFunctionConfigurationEditor.js b/newIDE/app/src/EventsFunctionsExtensionEditor/EventsFunctionConfigurationEditor.js index 04bb975443..c6ec69d3ab 100644 --- a/newIDE/app/src/EventsFunctionsExtensionEditor/EventsFunctionConfigurationEditor.js +++ b/newIDE/app/src/EventsFunctionsExtensionEditor/EventsFunctionConfigurationEditor.js @@ -15,7 +15,9 @@ import { type EnumeratedObjectMetadata, } from '../ObjectsList/EnumerateObjects'; import HelpButton from '../UI/HelpButton'; +import SemiControlledTextField from '../UI/SemiControlledTextField'; import MiniToolbar, { MiniToolbarText } from '../UI/MiniToolbar'; +import { showWarningBox } from '../UI/Messages/MessageBox'; const gd = global.gd; @@ -43,6 +45,17 @@ const styles = { }, }; +const validateParameterName = (newName: string) => { + if (!gd.Project.validateObjectName(newName)) { + showWarningBox( + 'This name contains forbidden characters: please only use alphanumeric characters (0-9, a-z) and underscores in your parameter name.' + ); + return false; + } + + return true; +}; + export default class EventsFunctionConfigurationEditor extends React.Component< Props, State @@ -158,16 +171,17 @@ export default class EventsFunctionConfigurationEditor extends React.Component< Parameter #{i + 1}: - { + onChange={text => { + if (!validateParameterName(text)) return; + parameter.setName(text); this.forceUpdate(); - }} - onBlur={() => { this.props.onParametersUpdated(); }} + commitOnBlur /> - - + + {parameter.getType() === 'objectList' && (