Skip to content

Commit f2c8f15

Browse files
bexsoftBenjamin Perez
andauthored
Added delete option to multi-zone selector (#167)
Co-authored-by: Benjamin Perez <benjamin@bexsoft.net>
1 parent 991204c commit f2c8f15

File tree

2 files changed

+129
-122
lines changed

2 files changed

+129
-122
lines changed

portal-ui/bindata_assetfs.go

Lines changed: 98 additions & 121 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

portal-ui/src/screens/Console/Tenants/ListTenants/ZonesMultiSelector.tsx

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,14 @@ import { createStyles, Theme, withStyles } from "@material-ui/core/styles";
1818
import Grid from "@material-ui/core/Grid";
1919
import get from "lodash/get";
2020
import { InputLabel, Tooltip } from "@material-ui/core";
21+
import IconButton from "@material-ui/core/IconButton";
2122
import HelpIcon from "@material-ui/icons/Help";
2223
import InputBoxWrapper from "../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper";
2324
import {
2425
fieldBasic,
2526
tooltipHelper,
2627
} from "../../Common/FormComponents/common/styleLibrary";
28+
import DeleteIcon from "../../../../icons/DeleteIcon";
2729
import { IZone } from "./types";
2830

2931
interface IZonesMultiSelector {
@@ -37,7 +39,7 @@ interface IZonesMultiSelector {
3739

3840
const gridBasic = {
3941
display: "grid",
40-
gridTemplateColumns: "calc(50% - 4px) calc(50% - 4px)",
42+
gridTemplateColumns: "calc(50% - 20px) calc(50% - 20px) 30px",
4143
gridGap: 8,
4244
};
4345

@@ -66,6 +68,13 @@ const styles = (theme: Theme) =>
6668
...gridBasic,
6769
marginBottom: 5,
6870
},
71+
deleteIconContainer: {
72+
alignSelf: "center",
73+
"& button": {
74+
padding: 0,
75+
marginBottom: 10,
76+
},
77+
},
6978
});
7079

7180
const ZonesMultiSelector = ({
@@ -122,6 +131,16 @@ const ZonesMultiSelector = ({
122131
setCurrentElements(updatedElement);
123132
};
124133

134+
const deleteElement = (zoneToRemove: number) => {
135+
const zonesClone = [...currentElements];
136+
137+
const newArray = zonesClone
138+
.slice(0, zoneToRemove)
139+
.concat(zonesClone.slice(zoneToRemove + 1, zonesClone.length));
140+
141+
setCurrentElements(newArray);
142+
};
143+
125144
const inputs = currentElements.map((element, index) => {
126145
return (
127146
<React.Fragment key={`zone-${name}-${index.toString()}`}>
@@ -148,6 +167,17 @@ const ZonesMultiSelector = ({
148167
key={`Zones-${name}-${index.toString()}-servers`}
149168
/>
150169
</div>
170+
<div className={classes.deleteIconContainer}>
171+
<IconButton
172+
color="primary"
173+
onClick={() => {
174+
deleteElement(index);
175+
}}
176+
disabled={index === currentElements.length - 1}
177+
>
178+
<DeleteIcon />
179+
</IconButton>
180+
</div>
151181
</React.Fragment>
152182
);
153183
});

0 commit comments

Comments
 (0)