diff --git a/src/Common/dataAccess/createCollection.ts b/src/Common/dataAccess/createCollection.ts index 78ef4f488..7f531211c 100644 --- a/src/Common/dataAccess/createCollection.ts +++ b/src/Common/dataAccess/createCollection.ts @@ -1,4 +1,6 @@ import { ContainerRequest, ContainerResponse, DatabaseRequest, DatabaseResponse, RequestOptions } from "@azure/cosmos"; +import { sendMessage } from "Common/MessageHandler"; +import { FabricMessageTypes } from "Contracts/FabricMessageTypes"; import { isFabricNative } from "Platform/Fabric/FabricUtil"; import { AuthType } from "../../AuthType"; import * as DataModels from "../../Contracts/DataModels"; @@ -43,6 +45,14 @@ export const createCollection = async (params: DataModels.CreateCollectionParams } logConsoleInfo(`Successfully created container ${params.collectionId}`); + + if (isFabricNative()) { + sendMessage({ + type: FabricMessageTypes.ContainerUpdated, + params: { updateType: "created" }, + }); + } + return collection; } catch (error) { handleError(error, "CreateCollection", `Error while creating container ${params.collectionId}`); diff --git a/src/Common/dataAccess/deleteCollection.ts b/src/Common/dataAccess/deleteCollection.ts index e786e5ea7..d12c3217a 100644 --- a/src/Common/dataAccess/deleteCollection.ts +++ b/src/Common/dataAccess/deleteCollection.ts @@ -1,3 +1,5 @@ +import { sendMessage } from "Common/MessageHandler"; +import { FabricMessageTypes } from "Contracts/FabricMessageTypes"; import { isFabric } from "Platform/Fabric/FabricUtil"; import { AuthType } from "../../AuthType"; import { userContext } from "../../UserContext"; @@ -19,6 +21,11 @@ export async function deleteCollection(databaseId: string, collectionId: string) await client().database(databaseId).container(collectionId).delete(); } logConsoleInfo(`Successfully deleted container ${collectionId}`); + + sendMessage({ + type: FabricMessageTypes.ContainerUpdated, + params: { updateType: "deleted" }, + }); } catch (error) { handleError(error, "DeleteCollection", `Error while deleting container ${collectionId}`); throw error; diff --git a/src/Contracts/DataExplorerMessagesContract.ts b/src/Contracts/DataExplorerMessagesContract.ts index c017bffa8..de81ea2ea 100644 --- a/src/Contracts/DataExplorerMessagesContract.ts +++ b/src/Contracts/DataExplorerMessagesContract.ts @@ -1,4 +1,5 @@ import { FabricMessageTypes } from "./FabricMessageTypes"; +import { MessageTypes } from "./MessageTypes"; // This is the current version of these messages export const DATA_EXPLORER_RPC_VERSION = "3"; @@ -19,9 +20,32 @@ export type DataExploreMessageV3 = type: FabricMessageTypes.GetAllResourceTokens; id: string; } + | { + type: FabricMessageTypes.GetAccessToken; + id: string; + } + | { + type: MessageTypes.TelemetryInfo; + data: { + action: string; + actionModifier: string; + data: unknown; + timestamp: number; + }; + } | { type: FabricMessageTypes.OpenSettings; - settingsId: string; + params: [{ settingsId?: "About" | "Connection" }]; + } + | { + type: FabricMessageTypes.RestoreContainer; + params: []; + } + | { + type: FabricMessageTypes.ContainerUpdated; + params: { + updateType: "created" | "deleted" | "settings"; + }; }; export interface GetCosmosTokenMessageOptions { verb: "connect" | "delete" | "get" | "head" | "options" | "patch" | "post" | "put" | "trace"; diff --git a/src/Contracts/FabricMessageTypes.ts b/src/Contracts/FabricMessageTypes.ts index 02871ca47..5b69496b9 100644 --- a/src/Contracts/FabricMessageTypes.ts +++ b/src/Contracts/FabricMessageTypes.ts @@ -7,6 +7,8 @@ export enum FabricMessageTypes { GetAccessToken = "GetAccessToken", Ready = "Ready", OpenSettings = "OpenSettings", + RestoreContainer = "RestoreContainer", + ContainerUpdated = "ContainerUpdated", } export interface AuthorizationToken { diff --git a/src/Explorer/Controls/Settings/SettingsComponent.tsx b/src/Explorer/Controls/Settings/SettingsComponent.tsx index 6d8c875f8..a458675d9 100644 --- a/src/Explorer/Controls/Settings/SettingsComponent.tsx +++ b/src/Explorer/Controls/Settings/SettingsComponent.tsx @@ -1,4 +1,6 @@ import { IPivotItemProps, IPivotProps, Pivot, PivotItem } from "@fluentui/react"; +import { sendMessage } from "Common/MessageHandler"; +import { FabricMessageTypes } from "Contracts/FabricMessageTypes"; import { ComputedPropertiesComponent, ComputedPropertiesComponentProps, @@ -431,6 +433,15 @@ export class SettingsComponent extends React.Component