mirror of
https://github.com/Azure/cosmos-explorer.git
synced 2025-05-10 10:23:34 +01:00
Fix Fabric Native ReadOnly mode (#2123)
* Add FabricNativeReadOnly mode * Hide Settings for Fabric native readonly * Fix strict compil
This commit is contained in:
parent
e90e1fc581
commit
fe73d0a1c6
@ -27,7 +27,7 @@ import { CosmosFluentProvider, cosmosShorthands, tokens } from "Explorer/Theme/T
|
|||||||
import { ResourceTree } from "Explorer/Tree/ResourceTree";
|
import { ResourceTree } from "Explorer/Tree/ResourceTree";
|
||||||
import { useDatabases } from "Explorer/useDatabases";
|
import { useDatabases } from "Explorer/useDatabases";
|
||||||
import { KeyboardAction, KeyboardActionGroup, KeyboardActionHandler, useKeyboardActionGroup } from "KeyboardShortcuts";
|
import { KeyboardAction, KeyboardActionGroup, KeyboardActionHandler, useKeyboardActionGroup } from "KeyboardShortcuts";
|
||||||
import { isFabric, isFabricMirrored, isFabricNative } from "Platform/Fabric/FabricUtil";
|
import { isFabric, isFabricMirrored, isFabricNative, isFabricNativeReadOnly } from "Platform/Fabric/FabricUtil";
|
||||||
import { userContext } from "UserContext";
|
import { userContext } from "UserContext";
|
||||||
import { getCollectionName, getDatabaseName } from "Utils/APITypeUtils";
|
import { getCollectionName, getDatabaseName } from "Utils/APITypeUtils";
|
||||||
import { Allotment, AllotmentHandle } from "allotment";
|
import { Allotment, AllotmentHandle } from "allotment";
|
||||||
@ -318,6 +318,7 @@ export const SidebarContainer: React.FC<SidebarProps> = ({ explorer }) => {
|
|||||||
|
|
||||||
const hasGlobalCommands = !(
|
const hasGlobalCommands = !(
|
||||||
isFabricMirrored() ||
|
isFabricMirrored() ||
|
||||||
|
isFabricNativeReadOnly() ||
|
||||||
userContext.apiType === "Postgres" ||
|
userContext.apiType === "Postgres" ||
|
||||||
userContext.apiType === "VCoreMongo"
|
userContext.apiType === "VCoreMongo"
|
||||||
);
|
);
|
||||||
|
@ -5,7 +5,7 @@ import { Link, makeStyles, tokens } from "@fluentui/react-components";
|
|||||||
import { DocumentAddRegular, LinkMultipleRegular } from "@fluentui/react-icons";
|
import { DocumentAddRegular, LinkMultipleRegular } from "@fluentui/react-icons";
|
||||||
import { SampleDataImportDialog } from "Explorer/SplashScreen/SampleDataImportDialog";
|
import { SampleDataImportDialog } from "Explorer/SplashScreen/SampleDataImportDialog";
|
||||||
import { CosmosFluentProvider } from "Explorer/Theme/ThemeUtil";
|
import { CosmosFluentProvider } from "Explorer/Theme/ThemeUtil";
|
||||||
import { isFabricNative } from "Platform/Fabric/FabricUtil";
|
import { isFabricNative, isFabricNativeReadOnly } from "Platform/Fabric/FabricUtil";
|
||||||
import * as React from "react";
|
import * as React from "react";
|
||||||
import { userContext } from "UserContext";
|
import { userContext } from "UserContext";
|
||||||
import CosmosDbBlackIcon from "../../../images/CosmosDB_black.svg";
|
import CosmosDbBlackIcon from "../../../images/CosmosDB_black.svg";
|
||||||
@ -62,6 +62,15 @@ const useStyles = makeStyles({
|
|||||||
margin: "auto",
|
margin: "auto",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
single: {
|
||||||
|
gridColumn: "1 / 4",
|
||||||
|
gridRow: "1 / 3",
|
||||||
|
"& svg": {
|
||||||
|
width: "64px",
|
||||||
|
height: "64px",
|
||||||
|
margin: "auto",
|
||||||
|
},
|
||||||
|
},
|
||||||
buttonContainer: {
|
buttonContainer: {
|
||||||
height: "100%",
|
height: "100%",
|
||||||
display: "flex",
|
display: "flex",
|
||||||
@ -150,7 +159,11 @@ export const FabricHomeScreen: React.FC<SplashScreenProps> = (props: SplashScree
|
|||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
return (
|
return isFabricNativeReadOnly() ? (
|
||||||
|
<div className={styles.buttonsContainer}>
|
||||||
|
<FabricHomeScreenButton className={styles.single} {...buttons[2]} />
|
||||||
|
</div>
|
||||||
|
) : (
|
||||||
<div className={styles.buttonsContainer}>
|
<div className={styles.buttonsContainer}>
|
||||||
<FabricHomeScreenButton className={styles.one} {...buttons[0]} />
|
<FabricHomeScreenButton className={styles.one} {...buttons[0]} />
|
||||||
<FabricHomeScreenButton className={styles.two} {...buttons[1]} />
|
<FabricHomeScreenButton className={styles.two} {...buttons[1]} />
|
||||||
@ -159,7 +172,7 @@ export const FabricHomeScreen: React.FC<SplashScreenProps> = (props: SplashScree
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
const title = "Build your database";
|
const title = isFabricNativeReadOnly() ? "Use your database" : "Build your database";
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<CosmosFluentProvider className={styles.homeContainer}>
|
<CosmosFluentProvider className={styles.homeContainer}>
|
||||||
|
@ -6,7 +6,7 @@ import StoredProcedure from "Explorer/Tree/StoredProcedure";
|
|||||||
import Trigger from "Explorer/Tree/Trigger";
|
import Trigger from "Explorer/Tree/Trigger";
|
||||||
import UserDefinedFunction from "Explorer/Tree/UserDefinedFunction";
|
import UserDefinedFunction from "Explorer/Tree/UserDefinedFunction";
|
||||||
import { useDatabases } from "Explorer/useDatabases";
|
import { useDatabases } from "Explorer/useDatabases";
|
||||||
import { isFabric, isFabricMirrored, isFabricNative } from "Platform/Fabric/FabricUtil";
|
import { isFabric, isFabricMirrored, isFabricNative, isFabricNativeReadOnly } from "Platform/Fabric/FabricUtil";
|
||||||
import { getItemName } from "Utils/APITypeUtils";
|
import { getItemName } from "Utils/APITypeUtils";
|
||||||
import { isServerlessAccount } from "Utils/CapabilityUtils";
|
import { isServerlessAccount } from "Utils/CapabilityUtils";
|
||||||
import { useTabs } from "hooks/useTabs";
|
import { useTabs } from "hooks/useTabs";
|
||||||
@ -292,7 +292,7 @@ const buildCollectionNodeChildren = (
|
|||||||
contextMenu: ResourceTreeContextMenuButtonFactory.createCollectionContextMenuButton(container, collection),
|
contextMenu: ResourceTreeContextMenuButtonFactory.createCollectionContextMenuButton(container, collection),
|
||||||
});
|
});
|
||||||
|
|
||||||
if (userContext.apiType !== "Cassandra" || !isServerlessAccount()) {
|
if ((userContext.apiType !== "Cassandra" || !isServerlessAccount()) && !isFabricNativeReadOnly()) {
|
||||||
let id = "";
|
let id = "";
|
||||||
if (collection.isSampleCollection) {
|
if (collection.isSampleCollection) {
|
||||||
id = database.isDatabaseShared() ? "sampleSettings" : "sampleScaleSettings";
|
id = database.isDatabaseShared() ? "sampleSettings" : "sampleScaleSettings";
|
||||||
|
@ -136,3 +136,4 @@ export const isFabricMirroredAAD = (): boolean =>
|
|||||||
export const isFabricMirrored = (): boolean => isFabricMirroredKey() || isFabricMirroredAAD();
|
export const isFabricMirrored = (): boolean => isFabricMirroredKey() || isFabricMirroredAAD();
|
||||||
export const isFabricNative = (): boolean =>
|
export const isFabricNative = (): boolean =>
|
||||||
isFabric() && userContext.fabricContext?.artifactType === CosmosDbArtifactType.NATIVE;
|
isFabric() && userContext.fabricContext?.artifactType === CosmosDbArtifactType.NATIVE;
|
||||||
|
export const isFabricNativeReadOnly = (): boolean => isFabricNative() && !!userContext.fabricContext?.isReadOnly;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user