mirror of
https://github.com/Azure/cosmos-explorer.git
synced 2025-12-19 17:01:13 +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>
42 lines
1.7 KiB
TypeScript
42 lines
1.7 KiB
TypeScript
import { FontIcon, Link, Stack, Text } from "@fluentui/react";
|
|
import Explorer from "Explorer/Explorer";
|
|
import React from "react";
|
|
import * as ViewModels from "../../../../Contracts/ViewModels";
|
|
import { GlobalSecondaryIndexSourceComponent } from "./GlobalSecondaryIndexSourceComponent";
|
|
import { GlobalSecondaryIndexTargetComponent } from "./GlobalSecondaryIndexTargetComponent";
|
|
|
|
export interface GlobalSecondaryIndexComponentProps {
|
|
collection: ViewModels.Collection;
|
|
explorer: Explorer;
|
|
}
|
|
|
|
export const GlobalSecondaryIndexComponent: React.FC<GlobalSecondaryIndexComponentProps> = ({
|
|
collection,
|
|
explorer,
|
|
}) => {
|
|
const isTargetContainer = !!collection?.materializedViewDefinition();
|
|
const isSourceContainer = !!collection?.materializedViews();
|
|
|
|
return (
|
|
<Stack tokens={{ childrenGap: 8 }} styles={{ root: { maxWidth: 600 } }}>
|
|
<Stack horizontal verticalAlign="center" wrap tokens={{ childrenGap: 8 }}>
|
|
{isSourceContainer && (
|
|
<Text styles={{ root: { fontWeight: 600 } }}>This container has the following indexes defined for it.</Text>
|
|
)}
|
|
<Text>
|
|
<Link
|
|
target="_blank"
|
|
href="https://learn.microsoft.com/en-us/azure/cosmos-db/nosql/materialized-views#defining-materialized-views"
|
|
>
|
|
Learn more
|
|
<FontIcon iconName="NavigateExternalInline" style={{ marginLeft: "4px" }} />
|
|
</Link>{" "}
|
|
about how to define global secondary indexes and how to use them.
|
|
</Text>
|
|
</Stack>
|
|
{isSourceContainer && <GlobalSecondaryIndexSourceComponent collection={collection} explorer={explorer} />}
|
|
{isTargetContainer && <GlobalSecondaryIndexTargetComponent collection={collection} />}
|
|
</Stack>
|
|
);
|
|
};
|