hide unmodeled apis
This commit is contained in:
@@ -64,8 +64,9 @@ export class DataExtensionsEditorView extends AbstractWebview<
|
||||
private readonly extensionPack: ExtensionPack,
|
||||
private mode: Mode,
|
||||
private readonly updateModelDetailsPanelState: (
|
||||
externalApiUsages: ExternalApiUsage[],
|
||||
databaseItem: DatabaseItem,
|
||||
externalApiUsages?: ExternalApiUsage[],
|
||||
databaseItem?: DatabaseItem,
|
||||
hideModeledApis?: boolean,
|
||||
) => Promise<void>,
|
||||
private readonly revealItemInDetailsPanel: (usage: Usage) => Promise<void>,
|
||||
private readonly handleViewBecameActive: (
|
||||
@@ -237,7 +238,11 @@ export class DataExtensionsEditorView extends AbstractWebview<
|
||||
|
||||
break;
|
||||
case "hideModeledApis":
|
||||
// do something
|
||||
await this.updateModelDetailsPanelState(
|
||||
undefined,
|
||||
undefined,
|
||||
msg.hideModeledApis,
|
||||
);
|
||||
break;
|
||||
default:
|
||||
assertNever(msg);
|
||||
|
||||
@@ -13,6 +13,7 @@ import { ExternalApiUsage, Usage } from "../external-api-usage";
|
||||
import { DatabaseItem } from "../../databases/local-databases";
|
||||
import { relative } from "path";
|
||||
import { CodeQLCliServer } from "../../codeql-cli/cli";
|
||||
import { INITIAL_HIDE_MODELED_APIS_VALUE } from "../shared/initial-hide-modeled-apis-value";
|
||||
|
||||
export class ModelDetailsDataProvider
|
||||
extends DisposableObject
|
||||
@@ -21,6 +22,7 @@ export class ModelDetailsDataProvider
|
||||
private externalApiUsages: ExternalApiUsage[] = [];
|
||||
private databaseItem: DatabaseItem | undefined = undefined;
|
||||
private sourceLocationPrefix: string | undefined = undefined;
|
||||
private hideModeledApis: boolean = INITIAL_HIDE_MODELED_APIS_VALUE;
|
||||
|
||||
private readonly onDidChangeTreeDataEmitter = this.push(
|
||||
new EventEmitter<void>(),
|
||||
@@ -42,19 +44,25 @@ export class ModelDetailsDataProvider
|
||||
* method and instead always pass new objects/arrays.
|
||||
*/
|
||||
public async setState(
|
||||
externalApiUsages: ExternalApiUsage[],
|
||||
databaseItem: DatabaseItem,
|
||||
externalApiUsages?: ExternalApiUsage[],
|
||||
databaseItem?: DatabaseItem,
|
||||
hideModeledApis?: boolean,
|
||||
): Promise<void> {
|
||||
if (
|
||||
this.externalApiUsages !== externalApiUsages ||
|
||||
this.databaseItem !== databaseItem
|
||||
externalApiUsages &&
|
||||
databaseItem &&
|
||||
(this.externalApiUsages !== externalApiUsages ||
|
||||
this.databaseItem !== databaseItem)
|
||||
) {
|
||||
this.externalApiUsages = externalApiUsages;
|
||||
this.databaseItem = databaseItem;
|
||||
this.sourceLocationPrefix =
|
||||
await this.databaseItem.getSourceLocationPrefix(this.cliServer);
|
||||
this.onDidChangeTreeDataEmitter.fire();
|
||||
}
|
||||
if (hideModeledApis !== undefined) {
|
||||
this.hideModeledApis = hideModeledApis;
|
||||
}
|
||||
this.onDidChangeTreeDataEmitter.fire();
|
||||
}
|
||||
|
||||
getTreeItem(item: ModelDetailsTreeViewItem): TreeItem {
|
||||
@@ -92,7 +100,11 @@ export class ModelDetailsDataProvider
|
||||
|
||||
getChildren(item?: ModelDetailsTreeViewItem): ModelDetailsTreeViewItem[] {
|
||||
if (item === undefined) {
|
||||
return this.externalApiUsages;
|
||||
if (this.hideModeledApis) {
|
||||
return this.externalApiUsages.filter((api) => !api.supported);
|
||||
} else {
|
||||
return this.externalApiUsages;
|
||||
}
|
||||
} else if (isExternalApiUsage(item)) {
|
||||
return item.usages;
|
||||
} else {
|
||||
|
||||
@@ -24,14 +24,21 @@ export class ModelDetailsPanel extends DisposableObject {
|
||||
}
|
||||
|
||||
public async setState(
|
||||
externalApiUsages: ExternalApiUsage[],
|
||||
databaseItem: DatabaseItem,
|
||||
externalApiUsages?: ExternalApiUsage[],
|
||||
databaseItem?: DatabaseItem,
|
||||
hideModeledApis?: boolean,
|
||||
): Promise<void> {
|
||||
await this.dataProvider.setState(externalApiUsages, databaseItem);
|
||||
this.treeView.badge = {
|
||||
value: externalApiUsages.length,
|
||||
tooltip: "Number of external APIs",
|
||||
};
|
||||
await this.dataProvider.setState(
|
||||
externalApiUsages,
|
||||
databaseItem,
|
||||
hideModeledApis,
|
||||
);
|
||||
if (externalApiUsages) {
|
||||
this.treeView.badge = {
|
||||
value: externalApiUsages.length,
|
||||
tooltip: "Number of external APIs",
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
public async revealItem(usage: Usage): Promise<void> {
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
export const INITIAL_HIDE_MODELED_APIS_VALUE = true;
|
||||
@@ -19,6 +19,7 @@ import { percentFormatter } from "./formatters";
|
||||
import { Mode } from "../../data-extensions-editor/shared/mode";
|
||||
import { InProgressMethods } from "../../data-extensions-editor/shared/in-progress-methods";
|
||||
import { getLanguageDisplayName } from "../../common/query-language";
|
||||
import { INITIAL_HIDE_MODELED_APIS_VALUE } from "../../data-extensions-editor/shared/initial-hide-modeled-apis-value";
|
||||
|
||||
const LoadingContainer = styled.div`
|
||||
text-align: center;
|
||||
@@ -96,7 +97,9 @@ export function DataExtensionsEditor({
|
||||
new InProgressMethods(),
|
||||
);
|
||||
|
||||
const [hideModeledApis, setHideModeledApis] = useState(true);
|
||||
const [hideModeledApis, setHideModeledApis] = useState(
|
||||
INITIAL_HIDE_MODELED_APIS_VALUE,
|
||||
);
|
||||
|
||||
const [modeledMethods, setModeledMethods] = useState<
|
||||
Record<string, ModeledMethod>
|
||||
|
||||
Reference in New Issue
Block a user