From 8d9ff35c6818747b4f73b21801ee9a60f529f081 Mon Sep 17 00:00:00 2001 From: Alexander Lesnenko <alxnddr@users.noreply.github.com> Date: Tue, 24 May 2022 22:22:58 +0400 Subject: [PATCH] fix updating field name and description in data model (#22875) --- .../admin/datamodel/containers/FieldApp.jsx | 26 +++++++------------ 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx b/frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx index d844a68a39c..445fb3955e9 100644 --- a/frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx +++ b/frontend/src/metabase/admin/datamodel/containers/FieldApp.jsx @@ -402,15 +402,7 @@ export const BackButton = ({ databaseId, tableId }) => ( ); export class FieldHeader extends React.Component { - onNameChange = e => { - this.updateNameDebounced(e.target.value); - }; - onDescriptionChange = e => { - this.updateDescriptionDebounced(e.target.value); - }; - - // Separate update methods because of throttling the input - updateNameDebounced = _.debounce(async name => { + onNameChange = async e => { const { field, updateFieldProperties, updateFieldDimension } = this.props; // Update the dimension name if it exists @@ -421,19 +413,19 @@ export class FieldHeader extends React.Component { { type: field.dimensions.type, human_readable_field_id: field.dimensions.human_readable_field_id, - name, + name: e.target.value, }, ); } // todo: how to treat empty / too long strings? see how this is done in Column - updateFieldProperties({ display_name: name }); - }, 300); + updateFieldProperties({ display_name: e.target.value }); + }; - updateDescriptionDebounced = _.debounce(description => { + onDescriptionChange = e => { const { updateFieldProperties } = this.props; - updateFieldProperties({ description }); - }, 300); + updateFieldProperties({ description: e.target.value }); + }; render() { return ( @@ -442,14 +434,14 @@ export class FieldHeader extends React.Component { name="display_name" className="h2 AdminInput bordered rounded border-dark block mb1" value={this.props.field.display_name} - onChange={this.onNameChange} + onBlurChange={this.onNameChange} placeholder={this.props.field.name} /> <InputBlurChange name="description" className="text AdminInput bordered input text-measure block full" value={this.props.field.description} - onChange={this.onDescriptionChange} + onBlurChange={this.onDescriptionChange} placeholder={t`No description for this field yet`} /> </div> -- GitLab