Make all setStage arguments mandatory

This commit is contained in:
Nora
2023-08-17 12:26:13 +00:00
parent 0824892507
commit ece54b8f7d
4 changed files with 27 additions and 28 deletions

View File

@@ -43,6 +43,7 @@ import { join } from "path";
import { pickExtensionPack } from "./extension-pack-picker";
import { getLanguageDisplayName } from "../common/query-language";
import { AutoModeler } from "./auto-modeler";
import { INITIAL_HIDE_MODELED_APIS_VALUE } from "./shared/hide-modeled-apis";
export class DataExtensionsEditorView extends AbstractWebview<
ToDataExtensionsEditorMessage,
@@ -51,6 +52,7 @@ export class DataExtensionsEditorView extends AbstractWebview<
private readonly autoModeler: AutoModeler;
private externalApiUsages: ExternalApiUsage[];
private hideModeledApis: boolean;
public constructor(
ctx: ExtensionContext,
@@ -64,9 +66,9 @@ export class DataExtensionsEditorView extends AbstractWebview<
private readonly extensionPack: ExtensionPack,
private mode: Mode,
private readonly updateModelDetailsPanelState: (
externalApiUsages?: ExternalApiUsage[],
databaseItem?: DatabaseItem,
hideModeledApis?: boolean,
externalApiUsages: ExternalApiUsage[],
databaseItem: DatabaseItem,
hideModeledApis: boolean,
) => Promise<void>,
private readonly revealItemInDetailsPanel: (usage: Usage) => Promise<void>,
private readonly handleViewBecameActive: (
@@ -99,6 +101,7 @@ export class DataExtensionsEditorView extends AbstractWebview<
},
);
this.externalApiUsages = [];
this.hideModeledApis = INITIAL_HIDE_MODELED_APIS_VALUE;
}
public async openView() {
@@ -111,6 +114,7 @@ export class DataExtensionsEditorView extends AbstractWebview<
await this.updateModelDetailsPanelState(
this.externalApiUsages,
this.databaseItem,
this.hideModeledApis,
);
}
});
@@ -239,8 +243,8 @@ export class DataExtensionsEditorView extends AbstractWebview<
break;
case "hideModeledApis":
await this.updateModelDetailsPanelState(
undefined,
undefined,
this.externalApiUsages,
this.databaseItem,
msg.hideModeledApis,
);
break;
@@ -348,6 +352,7 @@ export class DataExtensionsEditorView extends AbstractWebview<
await this.updateModelDetailsPanelState(
this.externalApiUsages,
this.databaseItem,
this.hideModeledApis,
);
}
} catch (err) {

View File

@@ -44,27 +44,21 @@ export class ModelDetailsDataProvider
* method and instead always pass new objects/arrays.
*/
public async setState(
externalApiUsages?: ExternalApiUsage[],
databaseItem?: DatabaseItem,
hideModeledApis?: boolean,
externalApiUsages: ExternalApiUsage[],
databaseItem: DatabaseItem,
hideModeledApis: boolean,
): Promise<void> {
if (
externalApiUsages !== undefined &&
databaseItem !== undefined &&
(this.externalApiUsages !== externalApiUsages ||
this.databaseItem !== databaseItem)
this.externalApiUsages !== externalApiUsages ||
this.databaseItem !== databaseItem ||
this.hideModeledApis !== hideModeledApis
) {
this.externalApiUsages = externalApiUsages;
this.databaseItem = databaseItem;
this.sourceLocationPrefix =
await this.databaseItem.getSourceLocationPrefix(this.cliServer);
this.onDidChangeTreeDataEmitter.fire();
}
if (
hideModeledApis !== undefined &&
hideModeledApis !== this.hideModeledApis
) {
this.hideModeledApis = hideModeledApis;
this.onDidChangeTreeDataEmitter.fire();
}
}

View File

@@ -24,21 +24,19 @@ export class ModelDetailsPanel extends DisposableObject {
}
public async setState(
externalApiUsages?: ExternalApiUsage[],
databaseItem?: DatabaseItem,
hideModeledApis?: boolean,
externalApiUsages: ExternalApiUsage[],
databaseItem: DatabaseItem,
hideModeledApis: boolean,
): Promise<void> {
await this.dataProvider.setState(
externalApiUsages,
databaseItem,
hideModeledApis,
);
if (externalApiUsages !== undefined) {
this.treeView.badge = {
value: externalApiUsages.length,
tooltip: "Number of external APIs",
};
}
this.treeView.badge = {
value: externalApiUsages.length,
tooltip: "Number of external APIs",
};
}
public async revealItem(usage: Usage): Promise<void> {

View File

@@ -75,12 +75,14 @@ type Props = {
initialViewState?: DataExtensionEditorViewState;
initialExternalApiUsages?: ExternalApiUsage[];
initialModeledMethods?: Record<string, ModeledMethod>;
initialHideModeledApis?: boolean;
};
export function DataExtensionsEditor({
initialViewState,
initialExternalApiUsages = [],
initialModeledMethods = {},
initialHideModeledApis = INITIAL_HIDE_MODELED_APIS_VALUE,
}: Props): JSX.Element {
const [viewState, setViewState] = useState<
DataExtensionEditorViewState | undefined
@@ -98,7 +100,7 @@ export function DataExtensionsEditor({
);
const [hideModeledApis, setHideModeledApis] = useState(
INITIAL_HIDE_MODELED_APIS_VALUE,
initialHideModeledApis,
);
useEffect(() => {