Merge similar messages for adding modeled methods

This commit is contained in:
Koen Vlaswinkel
2023-04-06 11:22:52 +02:00
parent f78f535a95
commit a1809b0bac
3 changed files with 18 additions and 22 deletions

View File

@@ -142,8 +142,8 @@ export class DataExtensionsEditorView extends AbstractWebview<
}
await this.postMessage({
t: "setExistingModeledMethods",
existingModeledMethods,
t: "addModeledMethods",
modeledMethods: existingModeledMethods,
});
} catch (e: unknown) {
void extLogger.log(`Unable to read data extension YAML: ${e}`);
@@ -250,6 +250,7 @@ export class DataExtensionsEditorView extends AbstractWebview<
await this.postMessage({
t: "addModeledMethods",
modeledMethods: modeledMethodsByName,
overrideNone: true,
});
},
(update) => this.showProgress(update),

View File

@@ -493,14 +493,17 @@ export interface ShowProgressMessage {
message: string;
}
export interface SetExistingModeledMethods {
t: "setExistingModeledMethods";
existingModeledMethods: Record<string, ModeledMethod>;
}
export interface AddModeledMethodsMessage {
t: "addModeledMethods";
modeledMethods: Record<string, ModeledMethod>;
/**
* If true, then any existing modeled methods set to "none" will be
* overwritten by the new modeled methods. Otherwise, the "none" modeled
* methods will not be overwritten, even if the new modeled methods
* contain a better model.
*/
overrideNone?: boolean;
}
export interface SaveModeledMethods {
@@ -516,7 +519,6 @@ export interface GenerateExternalApiMessage {
export type ToDataExtensionsEditorMessage =
| SetExternalApiUsagesMessage
| ShowProgressMessage
| SetExistingModeledMethods
| AddModeledMethodsMessage;
export type FromDataExtensionsEditorMessage =

View File

@@ -56,23 +56,16 @@ export function DataExtensionsEditor(): JSX.Element {
break;
case "showProgress":
setProgress(msg);
break;
case "setExistingModeledMethods":
setModeledMethods((oldModeledMethods) => {
return {
...msg.existingModeledMethods,
...oldModeledMethods,
};
});
break;
case "addModeledMethods":
setModeledMethods((oldModeledMethods) => {
const filteredOldModeledMethods = Object.fromEntries(
Object.entries(oldModeledMethods).filter(
([, value]) => value.type !== "none",
),
);
const filteredOldModeledMethods = msg.overrideNone
? Object.fromEntries(
Object.entries(oldModeledMethods).filter(
([, value]) => value.type !== "none",
),
)
: oldModeledMethods;
return {
...msg.modeledMethods,