[ML] Fix Transform runtime mapping editor so mappings can be removed (#95108)

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
This commit is contained in:
Quynh Nguyen 2021-03-24 13:28:31 -05:00 committed by GitHub
parent f3908f7754
commit 07a041ab3a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 9 additions and 4 deletions

View file

@ -44,8 +44,11 @@ export const AdvancedRuntimeMappingsEditor: FC<StepDefineFormHook['runtimeMappin
// Try to parse the string passed on from the editor.
// If parsing fails, the "Apply"-Button will be disabled
try {
const parsedJson = JSON.parse(convertToJson(d));
setRuntimeMappingsEditorApplyButtonEnabled(isRuntimeMappings(parsedJson));
// if the user deletes the json in the editor
// they should still be able to apply changes
const isEmptyStr = d === '';
const parsedJson = isEmptyStr ? {} : JSON.parse(convertToJson(d));
setRuntimeMappingsEditorApplyButtonEnabled(isEmptyStr || isRuntimeMappings(parsedJson));
} catch (e) {
setRuntimeMappingsEditorApplyButtonEnabled(false);
}

View file

@ -51,7 +51,8 @@ export const AdvancedRuntimeMappingsSettings: FC<StepDefineFormHook> = (props) =
} = props.pivotConfig;
const applyChanges = () => {
const nextConfig = JSON.parse(advancedRuntimeMappingsConfig);
const nextConfig =
advancedRuntimeMappingsConfig === '' ? {} : JSON.parse(advancedRuntimeMappingsConfig);
const previousConfig = runtimeMappings;
applyRuntimeMappingsEditorChanges();

View file

@ -52,7 +52,8 @@ export const useAdvancedRuntimeMappingsEditor = (defaults: StepDefineExposedStat
} = useXJsonMode(stringifiedRuntimeMappings ?? '');
const applyRuntimeMappingsEditorChanges = () => {
const parsedRuntimeMappings = JSON.parse(advancedRuntimeMappingsConfig);
const parsedRuntimeMappings =
advancedRuntimeMappingsConfig === '' ? {} : JSON.parse(advancedRuntimeMappingsConfig);
const prettySourceConfig = JSON.stringify(parsedRuntimeMappings, null, 2);
setRuntimeMappingsUpdated(true);
setRuntimeMappings(parsedRuntimeMappings);