Skip to content

Commit 42d3046

Browse files
authored
3d topology feature gate (#241)
1 parent edfe57e commit 42d3046

File tree

17 files changed

+573
-485
lines changed

17 files changed

+573
-485
lines changed

web/src/components/dropdowns/layout-dropdown.tsx

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { Dropdown, DropdownItem, DropdownToggle } from '@patternfly/react-core';
22
import * as React from 'react';
33
import { useTranslation } from 'react-i18next';
4+
import { Feature, isAllowed } from '../../utils/features-gate';
45
import { LayoutName } from '../../model/topology';
56

67
export const LayoutDropdown: React.FC<{
@@ -13,6 +14,8 @@ export const LayoutDropdown: React.FC<{
1314

1415
const getLayoutDisplay = (layoutName: LayoutName) => {
1516
switch (layoutName) {
17+
case LayoutName.ThreeD:
18+
return t('3D');
1619
case LayoutName.BreadthFirst:
1720
return t('BreadthFirst');
1821
case LayoutName.Cola:
@@ -48,19 +51,21 @@ export const LayoutDropdown: React.FC<{
4851
</DropdownToggle>
4952
}
5053
isOpen={layoutDropdownOpen}
51-
dropdownItems={Object.values(LayoutName).map(v => (
52-
<DropdownItem
53-
data-test={v}
54-
id={v}
55-
key={v}
56-
onClick={() => {
57-
setLayoutDropdownOpen(false);
58-
setLayout(v);
59-
}}
60-
>
61-
{getLayoutDisplay(v)}
62-
</DropdownItem>
63-
))}
54+
dropdownItems={Object.values(LayoutName)
55+
.filter(v => v != LayoutName.ThreeD || isAllowed(Feature.ThreeD))
56+
.map(v => (
57+
<DropdownItem
58+
data-test={v}
59+
id={v}
60+
key={v}
61+
onClick={() => {
62+
setLayoutDropdownOpen(false);
63+
setLayout(v);
64+
}}
65+
>
66+
{getLayoutDisplay(v)}
67+
</DropdownItem>
68+
))}
6469
/>
6570
);
6671
};

web/src/components/netflow-topology/componentFactories/componentFactory.ts renamed to web/src/components/netflow-topology/2d/componentFactories/componentFactory.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import {
77
ModelKind
88
} from '@patternfly/react-topology';
99
import { ComponentType } from 'react';
10-
import { GraphElementPeer } from '../../../model/topology';
10+
import { GraphElementPeer } from '../../../../model/topology';
1111

1212
export const componentFactory: ComponentFactory = (
1313
kind: ModelKind,

web/src/components/netflow-topology/componentFactories/shapesComponentFactory.ts renamed to web/src/components/netflow-topology/2d/componentFactories/shapesComponentFactory.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { ComponentType } from 'react';
22
import { ComponentFactory, ModelKind, DefaultNode } from '@patternfly/react-topology';
3-
import { GraphElementPeer } from '../../../model/topology';
3+
import { GraphElementPeer } from '../../../../model/topology';
44

55
export const shapesComponentFactory: ComponentFactory = (
66
kind: ModelKind,

web/src/components/netflow-topology/componentFactories/stylesComponentFactory.tsx renamed to web/src/components/netflow-topology/2d/componentFactories/stylesComponentFactory.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import {
1212
withSelection
1313
} from '@patternfly/react-topology';
1414
import * as React from 'react';
15-
import { GraphElementPeer } from '../../../model/topology';
15+
import { GraphElementPeer } from '../../../../model/topology';
1616

1717
//keep default import here to use observers
1818
import StyleEdge from '../styles/styleEdge';

web/src/components/netflow-topology/components/edge.tsx renamed to web/src/components/netflow-topology/2d/components/edge.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import {
2323
import DefaultConnectorTag from '@patternfly/react-topology/dist/esm/components/edges/DefaultConnectorTag';
2424
import { getConnectorStartPoint } from '@patternfly/react-topology/dist/esm/components/edges/terminals/terminalUtils';
2525

26-
import { HOVER_EVENT } from '../netflow-topology';
26+
import { HOVER_EVENT } from '../topology-content';
2727

2828
type BaseEdgeProps = {
2929
children?: React.ReactNode;

web/src/components/netflow-topology/components/node.tsx renamed to web/src/components/netflow-topology/2d/components/node.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ import {
3333
NODE_SHADOW_FILTER_ID_DANGER,
3434
NODE_SHADOW_FILTER_ID_HOVER
3535
} from '@patternfly/react-topology/dist/esm/components/nodes/NodeShadows';
36-
import { HOVER_EVENT } from '../netflow-topology';
37-
import { GraphElementPeer } from '../../../model/topology';
36+
import { HOVER_EVENT } from '../topology-content';
37+
import { GraphElementPeer } from '../../../../model/topology';
3838

3939
const StatusQuadrant = TopologyQuadrant.upperLeft;
4040

web/src/components/netflow-topology/layouts/layoutFactory.ts renamed to web/src/components/netflow-topology/2d/layouts/layoutFactory.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import {
1010
BreadthFirstLayout,
1111
ColaGroupsLayout
1212
} from '@patternfly/react-topology';
13-
import { LayoutName } from '../../../model/topology';
13+
import { LayoutName } from '../../../../model/topology';
1414

1515
const layoutFactory: LayoutFactory = (type: LayoutName, graph: Graph): Layout | undefined => {
1616
switch (type) {

web/src/components/netflow-topology/styles/styleNode.tsx renamed to web/src/components/netflow-topology/2d/styles/styleNode.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ import { TFunction } from 'i18next';
3535
import * as _ from 'lodash';
3636
import * as React from 'react';
3737
import { useTranslation } from 'react-i18next';
38-
import { Decorated, NodeData } from '../../../model/topology';
38+
import { Decorated, NodeData } from '../../../../model/topology';
3939
import BaseNode from '../components/node';
4040

4141
export const FILTER_EVENT = 'filter';

0 commit comments

Comments
 (0)