Add additional teaching bubbles in Quickstart (#1407)
* Add additional teaching bubbles in Quickstart * Run npm format * Fix lint error * Add unit tests * Add Mongo teaching bubbles for Try CosmosDB and Launch full screen * Add additional tests for UrlUtility * Run npm format * Add tests for Notebook Utils
This commit is contained in:
parent
1ee6abf890
commit
7f220bf8be
|
@ -0,0 +1,14 @@
|
||||||
|
import * as EnvironmentUtility from "./EnvironmentUtility";
|
||||||
|
|
||||||
|
describe("Environment Utility Test", () => {
|
||||||
|
it("Test sample URI with /", () => {
|
||||||
|
const uri = "test/";
|
||||||
|
expect(EnvironmentUtility.normalizeArmEndpoint(uri)).toEqual(uri);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("Test sample URI without /", () => {
|
||||||
|
const uri = "test";
|
||||||
|
const expectedResult = "test/";
|
||||||
|
expect(EnvironmentUtility.normalizeArmEndpoint(uri)).toEqual(expectedResult);
|
||||||
|
});
|
||||||
|
});
|
|
@ -1,6 +1,6 @@
|
||||||
import * as OfferUtility from "./OfferUtility";
|
|
||||||
import { SDKOfferDefinition, Offer } from "../Contracts/DataModels";
|
|
||||||
import { OfferResponse } from "@azure/cosmos";
|
import { OfferResponse } from "@azure/cosmos";
|
||||||
|
import { Offer, SDKOfferDefinition } from "../Contracts/DataModels";
|
||||||
|
import * as OfferUtility from "./OfferUtility";
|
||||||
|
|
||||||
describe("parseSDKOfferResponse", () => {
|
describe("parseSDKOfferResponse", () => {
|
||||||
it("manual throughput", () => {
|
it("manual throughput", () => {
|
||||||
|
@ -31,6 +31,26 @@ describe("parseSDKOfferResponse", () => {
|
||||||
expect(OfferUtility.parseSDKOfferResponse(mockResponse)).toEqual(expectedResult);
|
expect(OfferUtility.parseSDKOfferResponse(mockResponse)).toEqual(expectedResult);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("offerContent not defined", () => {
|
||||||
|
const mockOfferDefinition = {
|
||||||
|
id: "test",
|
||||||
|
} as SDKOfferDefinition;
|
||||||
|
|
||||||
|
const mockResponse = {
|
||||||
|
resource: mockOfferDefinition,
|
||||||
|
} as OfferResponse;
|
||||||
|
|
||||||
|
expect(OfferUtility.parseSDKOfferResponse(mockResponse)).toEqual(undefined);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("offerDefinition is null", () => {
|
||||||
|
const mockResponse = {
|
||||||
|
resource: undefined,
|
||||||
|
} as OfferResponse;
|
||||||
|
|
||||||
|
expect(OfferUtility.parseSDKOfferResponse(mockResponse)).toEqual(undefined);
|
||||||
|
});
|
||||||
|
|
||||||
it("autoscale throughput", () => {
|
it("autoscale throughput", () => {
|
||||||
const mockOfferDefinition = {
|
const mockOfferDefinition = {
|
||||||
content: {
|
content: {
|
||||||
|
|
|
@ -0,0 +1,49 @@
|
||||||
|
import * as UrlUtility from "./UrlUtility";
|
||||||
|
|
||||||
|
describe("parseDocumentsPath", () => {
|
||||||
|
it("empty resource path", () => {
|
||||||
|
const resourcePath = "";
|
||||||
|
|
||||||
|
expect(UrlUtility.parseDocumentsPath(resourcePath)).toEqual({});
|
||||||
|
});
|
||||||
|
|
||||||
|
it("resourcePath does not begin or end with /", () => {
|
||||||
|
const resourcePath = "localhost/portal/home";
|
||||||
|
const expectedResult = {
|
||||||
|
type: "home",
|
||||||
|
objectBody: {
|
||||||
|
id: "portal",
|
||||||
|
self: "/localhost/portal/home/",
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
expect(UrlUtility.parseDocumentsPath(resourcePath)).toEqual(expectedResult);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("resourcePath length is even", () => {
|
||||||
|
const resourcePath = "/localhost/portal/src/home/";
|
||||||
|
const expectedResult = {
|
||||||
|
type: "src",
|
||||||
|
objectBody: {
|
||||||
|
id: "home",
|
||||||
|
self: resourcePath,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
expect(UrlUtility.parseDocumentsPath(resourcePath)).toEqual(expectedResult);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("createUri", () => {
|
||||||
|
const baseUri = "http://foo.com/bar/";
|
||||||
|
const relativeUri = "/index.html";
|
||||||
|
const expectedUri = "http://foo.com/bar/index.html";
|
||||||
|
|
||||||
|
expect(UrlUtility.createUri(baseUri, relativeUri)).toEqual(expectedUri);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should throw an error if baseUri is empty", () => {
|
||||||
|
expect(() => {
|
||||||
|
UrlUtility.createUri("", "/home");
|
||||||
|
}).toThrow("baseUri is null or empty");
|
||||||
|
});
|
||||||
|
});
|
|
@ -202,6 +202,7 @@ export function createControlCommandBarButtons(container: Explorer): CommandButt
|
||||||
if (showOpenFullScreen) {
|
if (showOpenFullScreen) {
|
||||||
const label = "Open Full Screen";
|
const label = "Open Full Screen";
|
||||||
const fullScreenButton: CommandButtonComponentProps = {
|
const fullScreenButton: CommandButtonComponentProps = {
|
||||||
|
id: "openFullScreenBtn",
|
||||||
iconSrc: OpenInTabIcon,
|
iconSrc: OpenInTabIcon,
|
||||||
iconAlt: label,
|
iconAlt: label,
|
||||||
onCommandClick: () => {
|
onCommandClick: () => {
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
import * as InMemoryContentProviderUtils from "./ContentProviders/InMemoryContentProviderUtils";
|
||||||
|
|
||||||
|
describe("fromContentUri", () => {
|
||||||
|
it("fromContentUri should return valid result", () => {
|
||||||
|
const contentUri = "memory://resource/path";
|
||||||
|
const result = "resource";
|
||||||
|
|
||||||
|
expect(InMemoryContentProviderUtils.fromContentUri(contentUri)).toEqual(result);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("fromContentUri should return undefined on invalid input", () => {
|
||||||
|
const contentUri = "invalid";
|
||||||
|
|
||||||
|
expect(InMemoryContentProviderUtils.fromContentUri(contentUri)).toEqual(undefined);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("toContentUri should return valid result", () => {
|
||||||
|
const path = "resource/path";
|
||||||
|
const result = "memory://resource/path";
|
||||||
|
|
||||||
|
expect(InMemoryContentProviderUtils.toContentUri(path)).toEqual(result);
|
||||||
|
});
|
||||||
|
});
|
|
@ -1,4 +1,4 @@
|
||||||
import { Link, Stack, TeachingBubble, Text } from "@fluentui/react";
|
import { DirectionalHint, Link, Stack, TeachingBubble, Text } from "@fluentui/react";
|
||||||
import { ReactTabKind, useTabs } from "hooks/useTabs";
|
import { ReactTabKind, useTabs } from "hooks/useTabs";
|
||||||
import { useTeachingBubble } from "hooks/useTeachingBubble";
|
import { useTeachingBubble } from "hooks/useTeachingBubble";
|
||||||
import React from "react";
|
import React from "react";
|
||||||
|
@ -18,6 +18,11 @@ export const MongoQuickstartTutorial: React.FC = (): JSX.Element => {
|
||||||
return <></>;
|
return <></>;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let totalSteps = 9;
|
||||||
|
if (userContext.isTryCosmosDBSubscription) {
|
||||||
|
totalSteps = 10;
|
||||||
|
}
|
||||||
|
|
||||||
switch (step) {
|
switch (step) {
|
||||||
case 1:
|
case 1:
|
||||||
return isSampleDBExpanded ? (
|
return isSampleDBExpanded ? (
|
||||||
|
@ -33,7 +38,7 @@ export const MongoQuickstartTutorial: React.FC = (): JSX.Element => {
|
||||||
},
|
},
|
||||||
}}
|
}}
|
||||||
onDismiss={() => onDimissTeachingBubble()}
|
onDismiss={() => onDimissTeachingBubble()}
|
||||||
footerContent="Step 1 of 8"
|
footerContent={"Step 1 of " + totalSteps}
|
||||||
>
|
>
|
||||||
Start viewing and working with your data by opening Documents under Data
|
Start viewing and working with your data by opening Documents under Data
|
||||||
</TeachingBubble>
|
</TeachingBubble>
|
||||||
|
@ -55,7 +60,7 @@ export const MongoQuickstartTutorial: React.FC = (): JSX.Element => {
|
||||||
onClick: () => setStep(1),
|
onClick: () => setStep(1),
|
||||||
}}
|
}}
|
||||||
onDismiss={() => onDimissTeachingBubble()}
|
onDismiss={() => onDimissTeachingBubble()}
|
||||||
footerContent="Step 2 of 8"
|
footerContent={"Step 2 of " + totalSteps}
|
||||||
>
|
>
|
||||||
View documents here using the documents window. You can also use your favorite MongoDB tools and drivers to do
|
View documents here using the documents window. You can also use your favorite MongoDB tools and drivers to do
|
||||||
so.
|
so.
|
||||||
|
@ -78,7 +83,7 @@ export const MongoQuickstartTutorial: React.FC = (): JSX.Element => {
|
||||||
onClick: () => setStep(2),
|
onClick: () => setStep(2),
|
||||||
}}
|
}}
|
||||||
onDismiss={() => onDimissTeachingBubble()}
|
onDismiss={() => onDimissTeachingBubble()}
|
||||||
footerContent="Step 3 of 8"
|
footerContent={"Step 3 of " + totalSteps}
|
||||||
>
|
>
|
||||||
Add new document by copy / pasting JSON or uploading a JSON. You can also use your favorite MongoDB tools and
|
Add new document by copy / pasting JSON or uploading a JSON. You can also use your favorite MongoDB tools and
|
||||||
drivers to do so.
|
drivers to do so.
|
||||||
|
@ -99,7 +104,7 @@ export const MongoQuickstartTutorial: React.FC = (): JSX.Element => {
|
||||||
onClick: () => setStep(3),
|
onClick: () => setStep(3),
|
||||||
}}
|
}}
|
||||||
onDismiss={() => onDimissTeachingBubble()}
|
onDismiss={() => onDimissTeachingBubble()}
|
||||||
footerContent="Step 4 of 8"
|
footerContent={"Step 4 of " + totalSteps}
|
||||||
>
|
>
|
||||||
Query your data using the filter function. Azure Cosmos DB for MongoDB provides comprehensive support for
|
Query your data using the filter function. Azure Cosmos DB for MongoDB provides comprehensive support for
|
||||||
MongoDB query language constructs. You can also use your favorite MongoDB tools and drivers to do so.
|
MongoDB query language constructs. You can also use your favorite MongoDB tools and drivers to do so.
|
||||||
|
@ -120,7 +125,7 @@ export const MongoQuickstartTutorial: React.FC = (): JSX.Element => {
|
||||||
onClick: () => setStep(4),
|
onClick: () => setStep(4),
|
||||||
}}
|
}}
|
||||||
onDismiss={() => onDimissTeachingBubble()}
|
onDismiss={() => onDimissTeachingBubble()}
|
||||||
footerContent="Step 5 of 8"
|
footerContent={"Step 5 of " + totalSteps}
|
||||||
>
|
>
|
||||||
Change throughput provisioned to your collection according to your needs
|
Change throughput provisioned to your collection according to your needs
|
||||||
</TeachingBubble>
|
</TeachingBubble>
|
||||||
|
@ -140,7 +145,7 @@ export const MongoQuickstartTutorial: React.FC = (): JSX.Element => {
|
||||||
onClick: () => setStep(5),
|
onClick: () => setStep(5),
|
||||||
}}
|
}}
|
||||||
onDismiss={() => onDimissTeachingBubble()}
|
onDismiss={() => onDimissTeachingBubble()}
|
||||||
footerContent="Step 6 of 8"
|
footerContent={"Step 6 of " + totalSteps}
|
||||||
>
|
>
|
||||||
Use the indexing policy editor to create and edit your indexes.
|
Use the indexing policy editor to create and edit your indexes.
|
||||||
</TeachingBubble>
|
</TeachingBubble>
|
||||||
|
@ -160,12 +165,54 @@ export const MongoQuickstartTutorial: React.FC = (): JSX.Element => {
|
||||||
onClick: () => setStep(6),
|
onClick: () => setStep(6),
|
||||||
}}
|
}}
|
||||||
onDismiss={() => onDimissTeachingBubble()}
|
onDismiss={() => onDimissTeachingBubble()}
|
||||||
footerContent="Step 7 of 8"
|
footerContent={"Step 7 of " + totalSteps}
|
||||||
>
|
>
|
||||||
Visualize your data, store queries in an interactive document
|
Visualize your data, store queries in an interactive document
|
||||||
</TeachingBubble>
|
</TeachingBubble>
|
||||||
);
|
);
|
||||||
case 8:
|
case 8:
|
||||||
|
return (
|
||||||
|
<TeachingBubble
|
||||||
|
headline="Launch full screen"
|
||||||
|
target={"#openFullScreenBtn"}
|
||||||
|
hasCloseButton
|
||||||
|
primaryButtonProps={{
|
||||||
|
text: "Next",
|
||||||
|
onClick: () => (userContext.isTryCosmosDBSubscription ? setStep(9) : setStep(10)),
|
||||||
|
}}
|
||||||
|
secondaryButtonProps={{
|
||||||
|
text: "Previous",
|
||||||
|
onClick: () => setStep(7),
|
||||||
|
}}
|
||||||
|
onDismiss={() => onDimissTeachingBubble()}
|
||||||
|
footerContent={"Step 8 of " + totalSteps}
|
||||||
|
>
|
||||||
|
This will open a new tab in your browser to use Cosmos DB Explorer. Using the provided URLs you can share
|
||||||
|
read-write or read-only access with other people.
|
||||||
|
</TeachingBubble>
|
||||||
|
);
|
||||||
|
case 9:
|
||||||
|
return (
|
||||||
|
<TeachingBubble
|
||||||
|
headline="Boost your experience"
|
||||||
|
target={"#freeTierTeachingBubble"}
|
||||||
|
hasCloseButton
|
||||||
|
primaryButtonProps={{
|
||||||
|
text: "Next",
|
||||||
|
onClick: () => setStep(10),
|
||||||
|
}}
|
||||||
|
secondaryButtonProps={{
|
||||||
|
text: "Previous",
|
||||||
|
onClick: () => setStep(8),
|
||||||
|
}}
|
||||||
|
calloutProps={{ directionalHint: DirectionalHint.leftCenter }}
|
||||||
|
onDismiss={() => onDimissTeachingBubble()}
|
||||||
|
footerContent={"Step 9 of " + totalSteps}
|
||||||
|
>
|
||||||
|
Unlock everything Azure Cosmos DB has to offer When you're ready, upgrade to production.
|
||||||
|
</TeachingBubble>
|
||||||
|
);
|
||||||
|
case 10:
|
||||||
return (
|
return (
|
||||||
<TeachingBubble
|
<TeachingBubble
|
||||||
headline="Congratulations!"
|
headline="Congratulations!"
|
||||||
|
@ -180,10 +227,10 @@ export const MongoQuickstartTutorial: React.FC = (): JSX.Element => {
|
||||||
}}
|
}}
|
||||||
secondaryButtonProps={{
|
secondaryButtonProps={{
|
||||||
text: "Previous",
|
text: "Previous",
|
||||||
onClick: () => setStep(7),
|
onClick: () => (userContext.isTryCosmosDBSubscription ? setStep(9) : setStep(8)),
|
||||||
}}
|
}}
|
||||||
onDismiss={() => onDimissTeachingBubble()}
|
onDismiss={() => onDimissTeachingBubble()}
|
||||||
footerContent="Step 8 of 8"
|
footerContent={"Step " + totalSteps + " of " + totalSteps}
|
||||||
>
|
>
|
||||||
<Stack>
|
<Stack>
|
||||||
<Text style={{ color: "white" }}>
|
<Text style={{ color: "white" }}>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import { Link, Stack, TeachingBubble, Text } from "@fluentui/react";
|
import { DirectionalHint, Link, Stack, TeachingBubble, Text } from "@fluentui/react";
|
||||||
import { ReactTabKind, useTabs } from "hooks/useTabs";
|
import { ReactTabKind, useTabs } from "hooks/useTabs";
|
||||||
import { useTeachingBubble } from "hooks/useTeachingBubble";
|
import { useTeachingBubble } from "hooks/useTeachingBubble";
|
||||||
import React from "react";
|
import React from "react";
|
||||||
|
@ -17,6 +17,10 @@ export const SQLQuickstartTutorial: React.FC = (): JSX.Element => {
|
||||||
if (userContext.apiType !== "SQL") {
|
if (userContext.apiType !== "SQL") {
|
||||||
return <></>;
|
return <></>;
|
||||||
}
|
}
|
||||||
|
let totalSteps = 8;
|
||||||
|
if (userContext.isTryCosmosDBSubscription) {
|
||||||
|
totalSteps = 9;
|
||||||
|
}
|
||||||
|
|
||||||
switch (step) {
|
switch (step) {
|
||||||
case 1:
|
case 1:
|
||||||
|
@ -33,7 +37,7 @@ export const SQLQuickstartTutorial: React.FC = (): JSX.Element => {
|
||||||
},
|
},
|
||||||
}}
|
}}
|
||||||
onDismiss={() => onDimissTeachingBubble()}
|
onDismiss={() => onDimissTeachingBubble()}
|
||||||
footerContent="Step 1 of 7"
|
footerContent={"Step 1 of " + totalSteps}
|
||||||
>
|
>
|
||||||
Start viewing and working with your data by opening Items under Data
|
Start viewing and working with your data by opening Items under Data
|
||||||
</TeachingBubble>
|
</TeachingBubble>
|
||||||
|
@ -55,7 +59,7 @@ export const SQLQuickstartTutorial: React.FC = (): JSX.Element => {
|
||||||
onClick: () => setStep(1),
|
onClick: () => setStep(1),
|
||||||
}}
|
}}
|
||||||
onDismiss={() => onDimissTeachingBubble()}
|
onDismiss={() => onDimissTeachingBubble()}
|
||||||
footerContent="Step 2 of 7"
|
footerContent={"Step 2 of " + totalSteps}
|
||||||
>
|
>
|
||||||
View item here using the items window. Additionally you can also filter items to be reviewed with the filter
|
View item here using the items window. Additionally you can also filter items to be reviewed with the filter
|
||||||
function
|
function
|
||||||
|
@ -78,7 +82,7 @@ export const SQLQuickstartTutorial: React.FC = (): JSX.Element => {
|
||||||
onClick: () => setStep(2),
|
onClick: () => setStep(2),
|
||||||
}}
|
}}
|
||||||
onDismiss={() => onDimissTeachingBubble()}
|
onDismiss={() => onDimissTeachingBubble()}
|
||||||
footerContent="Step 3 of 7"
|
footerContent={"Step 3 of " + totalSteps}
|
||||||
>
|
>
|
||||||
Add new item by copy / pasting JSON; or uploading a JSON
|
Add new item by copy / pasting JSON; or uploading a JSON
|
||||||
</TeachingBubble>
|
</TeachingBubble>
|
||||||
|
@ -98,7 +102,7 @@ export const SQLQuickstartTutorial: React.FC = (): JSX.Element => {
|
||||||
onClick: () => setStep(3),
|
onClick: () => setStep(3),
|
||||||
}}
|
}}
|
||||||
onDismiss={() => onDimissTeachingBubble()}
|
onDismiss={() => onDimissTeachingBubble()}
|
||||||
footerContent="Step 4 of 7"
|
footerContent={"Step 4 of " + totalSteps}
|
||||||
>
|
>
|
||||||
Query your data using either the filter function or new query.
|
Query your data using either the filter function or new query.
|
||||||
</TeachingBubble>
|
</TeachingBubble>
|
||||||
|
@ -118,7 +122,7 @@ export const SQLQuickstartTutorial: React.FC = (): JSX.Element => {
|
||||||
onClick: () => setStep(4),
|
onClick: () => setStep(4),
|
||||||
}}
|
}}
|
||||||
onDismiss={() => onDimissTeachingBubble()}
|
onDismiss={() => onDimissTeachingBubble()}
|
||||||
footerContent="Step 5 of 7"
|
footerContent={"Step 5 of " + totalSteps}
|
||||||
>
|
>
|
||||||
Change throughput provisioned to your container according to your needs
|
Change throughput provisioned to your container according to your needs
|
||||||
</TeachingBubble>
|
</TeachingBubble>
|
||||||
|
@ -138,12 +142,54 @@ export const SQLQuickstartTutorial: React.FC = (): JSX.Element => {
|
||||||
onClick: () => setStep(5),
|
onClick: () => setStep(5),
|
||||||
}}
|
}}
|
||||||
onDismiss={() => onDimissTeachingBubble()}
|
onDismiss={() => onDimissTeachingBubble()}
|
||||||
footerContent="Step 6 of 7"
|
footerContent={"Step 6 of " + totalSteps}
|
||||||
>
|
>
|
||||||
Visualize your data, store queries in an interactive document
|
Visualize your data, store queries in an interactive document
|
||||||
</TeachingBubble>
|
</TeachingBubble>
|
||||||
);
|
);
|
||||||
case 7:
|
case 7:
|
||||||
|
return (
|
||||||
|
<TeachingBubble
|
||||||
|
headline="Launch full screen"
|
||||||
|
target={"#openFullScreenBtn"}
|
||||||
|
hasCloseButton
|
||||||
|
primaryButtonProps={{
|
||||||
|
text: "Next",
|
||||||
|
onClick: () => (userContext.isTryCosmosDBSubscription ? setStep(8) : setStep(9)),
|
||||||
|
}}
|
||||||
|
secondaryButtonProps={{
|
||||||
|
text: "Previous",
|
||||||
|
onClick: () => setStep(6),
|
||||||
|
}}
|
||||||
|
onDismiss={() => onDimissTeachingBubble()}
|
||||||
|
footerContent={"Step 7 of " + totalSteps}
|
||||||
|
>
|
||||||
|
This will open a new tab in your browser to use Cosmos DB Explorer. Using the provided URLs you can share
|
||||||
|
read-write or read-only access with other people.
|
||||||
|
</TeachingBubble>
|
||||||
|
);
|
||||||
|
case 8:
|
||||||
|
return (
|
||||||
|
<TeachingBubble
|
||||||
|
headline="Boost your experience"
|
||||||
|
target={"#freeTierTeachingBubble"}
|
||||||
|
hasCloseButton
|
||||||
|
primaryButtonProps={{
|
||||||
|
text: "Next",
|
||||||
|
onClick: () => setStep(9),
|
||||||
|
}}
|
||||||
|
secondaryButtonProps={{
|
||||||
|
text: "Previous",
|
||||||
|
onClick: () => setStep(7),
|
||||||
|
}}
|
||||||
|
calloutProps={{ directionalHint: DirectionalHint.leftCenter }}
|
||||||
|
onDismiss={() => onDimissTeachingBubble()}
|
||||||
|
footerContent={"Step 8 of " + totalSteps}
|
||||||
|
>
|
||||||
|
Unlock everything Azure Cosmos DB has to offer When you're ready, upgrade to production.
|
||||||
|
</TeachingBubble>
|
||||||
|
);
|
||||||
|
case 9:
|
||||||
return (
|
return (
|
||||||
<TeachingBubble
|
<TeachingBubble
|
||||||
headline="Congratulations!"
|
headline="Congratulations!"
|
||||||
|
@ -158,10 +204,10 @@ export const SQLQuickstartTutorial: React.FC = (): JSX.Element => {
|
||||||
}}
|
}}
|
||||||
secondaryButtonProps={{
|
secondaryButtonProps={{
|
||||||
text: "Previous",
|
text: "Previous",
|
||||||
onClick: () => setStep(6),
|
onClick: () => (userContext.isTryCosmosDBSubscription ? setStep(8) : setStep(7)),
|
||||||
}}
|
}}
|
||||||
onDismiss={() => onDimissTeachingBubble()}
|
onDismiss={() => onDimissTeachingBubble()}
|
||||||
footerContent="Step 7 of 7"
|
footerContent={"Step " + totalSteps + " of " + totalSteps}
|
||||||
>
|
>
|
||||||
<Stack>
|
<Stack>
|
||||||
<Text style={{ color: "white" }}>
|
<Text style={{ color: "white" }}>
|
||||||
|
|
|
@ -80,6 +80,7 @@ const App: React.FunctionComponent = () => {
|
||||||
return (
|
return (
|
||||||
<div className="flexContainer">
|
<div className="flexContainer">
|
||||||
<div id="divExplorer" className="flexContainer hideOverflows">
|
<div id="divExplorer" className="flexContainer hideOverflows">
|
||||||
|
<div id="freeTierTeachingBubble"> </div>
|
||||||
{/* Main Command Bar - Start */}
|
{/* Main Command Bar - Start */}
|
||||||
<CommandBar container={explorer} />
|
<CommandBar container={explorer} />
|
||||||
{/* Collections Tree and Tabs - Begin */}
|
{/* Collections Tree and Tabs - Begin */}
|
||||||
|
|
Loading…
Reference in New Issue