mirror of
https://github.com/Azure/cosmos-explorer.git
synced 2025-12-27 12:51:41 +00:00
* add Materialized Views feature flag * fetch MV properties from RP API and capture them in our data models * AddMaterializedViewPanel * undefined check * subpartition keys * Partition Key, Throughput, Unique Keys * All views associated with a container (#2063) and Materialized View Target Container (#2065) Identified Source container and Target container Created tabs in Scale and Settings respectively Changed the Icon of target container * Add MV Panel * format * format * styling * add tests * tests * test files (#2074) Co-authored-by: nishthaAhujaa * fix type error * fix tests * merge conflict * Panel Integration (#2075) * integrated panel * edited header text --------- Co-authored-by: nishthaAhujaa <nishtha17354@iiittd.ac.in> Co-authored-by: Asier Isayas <aisayas@microsoft.com> * updated tests (#2077) Co-authored-by: nishthaAhujaa * fix tests * update treeNodeUtil test snap * update settings component test snap * fixed source container in global "New Materialized View" * source container check (#2079) Co-authored-by: nishthaAhujaa * renamed Materialized Views to Global Secondary Index * more renaming * fix import * fix typo * disable materialized views for Fabric * updated input validation --------- Co-authored-by: Asier Isayas <aisayas@microsoft.com> Co-authored-by: Nishtha Ahuja <45535788+nishthaAhujaa@users.noreply.github.com> Co-authored-by: nishthaAhujaa <nishtha17354@iiittd.ac.in>
55 lines
2.4 KiB
TypeScript
55 lines
2.4 KiB
TypeScript
import { Checkbox, Icon, Link, Stack, Text } from "@fluentui/react";
|
|
import { CollapsibleSectionComponent } from "Explorer/Controls/CollapsiblePanel/CollapsibleSectionComponent";
|
|
import { scrollToSection } from "Explorer/Panes/AddCollectionPanel/AddCollectionPanelUtility";
|
|
import React from "react";
|
|
import { Action } from "Shared/Telemetry/TelemetryConstants";
|
|
import * as TelemetryProcessor from "Shared/Telemetry/TelemetryProcessor";
|
|
|
|
export interface AdvancedComponentProps {
|
|
useHashV1: boolean;
|
|
setUseHashV1: React.Dispatch<React.SetStateAction<boolean>>;
|
|
setSubPartitionKeys: React.Dispatch<React.SetStateAction<string[]>>;
|
|
}
|
|
export const AdvancedComponent = (props: AdvancedComponentProps): JSX.Element => {
|
|
const { useHashV1, setUseHashV1, setSubPartitionKeys } = props;
|
|
|
|
const useHashV1CheckboxOnChange = (isChecked: boolean): void => {
|
|
setUseHashV1(isChecked);
|
|
setSubPartitionKeys([]);
|
|
};
|
|
|
|
return (
|
|
<CollapsibleSectionComponent
|
|
title="Advanced"
|
|
isExpandedByDefault={false}
|
|
onExpand={() => {
|
|
TelemetryProcessor.traceOpen(Action.ExpandAddGlobalSecondaryIndexPaneAdvancedSection);
|
|
scrollToSection("collapsibleAdvancedSectionContent");
|
|
}}
|
|
>
|
|
<Stack className="panelGroupSpacing" id="collapsibleAdvancedSectionContent">
|
|
<Checkbox
|
|
label="My application uses an older Cosmos .NET or Java SDK version (.NET V1 or Java V2)"
|
|
checked={useHashV1}
|
|
styles={{
|
|
text: { fontSize: 12 },
|
|
checkbox: { width: 12, height: 12 },
|
|
label: { padding: 0, alignItems: "center", wordWrap: "break-word", whiteSpace: "break-spaces" },
|
|
}}
|
|
onChange={(ev: React.FormEvent<HTMLElement>, isChecked: boolean) => {
|
|
useHashV1CheckboxOnChange(isChecked);
|
|
}}
|
|
/>
|
|
<Text variant="small">
|
|
<Icon iconName="InfoSolid" className="removeIcon" /> To ensure compatibility with older SDKs, the created
|
|
container will use a legacy partitioning scheme that supports partition key values of size only up to 101
|
|
bytes. If this is enabled, you will not be able to use hierarchical partition keys.{" "}
|
|
<Link href="https://aka.ms/cosmos-large-pk" target="_blank">
|
|
Learn more
|
|
</Link>
|
|
</Text>
|
|
</Stack>
|
|
</CollapsibleSectionComponent>
|
|
);
|
|
};
|