Skip to content

Commit 7a63f6d

Browse files
authored
Migrated Object Manager components to mds (#3108)
1 parent 0043833 commit 7a63f6d

File tree

2 files changed

+204
-228
lines changed

2 files changed

+204
-228
lines changed

portal-ui/src/screens/Console/Common/ObjectManager/ObjectHandled.tsx

Lines changed: 142 additions & 150 deletions
Original file line numberDiff line numberDiff line change
@@ -15,158 +15,134 @@
1515
// along with this program. If not, see <http://www.gnu.org/licenses/>.
1616

1717
import React, { Fragment } from "react";
18-
import { Theme } from "@mui/material/styles";
19-
import { Tooltip } from "@mui/material";
20-
import createStyles from "@mui/styles/createStyles";
21-
import withStyles from "@mui/styles/withStyles";
2218
import { IFileItem } from "../../ObjectBrowser/types";
2319
import ProgressBarWrapper from "../ProgressBarWrapper/ProgressBarWrapper";
2420
import {
21+
Box,
2522
CancelledIcon,
2623
DisabledIcon,
2724
DownloadStatIcon,
2825
EnabledIcon,
2926
UploadStatIcon,
27+
Tooltip,
3028
} from "mds";
3129
import clsx from "clsx";
3230
import { callForObjectID } from "../../ObjectBrowser/transferManager";
31+
import styled from "styled-components";
32+
import get from "lodash/get";
3333

3434
interface IObjectHandled {
35-
classes: any;
3635
objectToDisplay: IFileItem;
3736
deleteFromList: (instanceID: string) => void;
3837
}
3938

40-
const styles = (theme: Theme) =>
41-
createStyles({
42-
container: {
43-
borderBottom: "#E2E2E2 1px solid",
44-
padding: "15px 5px",
45-
margin: "0 30px",
46-
position: "relative",
47-
"& .showOnHover": {
48-
opacity: 1,
49-
transitionDuration: "0.2s",
50-
},
51-
"&.inProgress": {
52-
"& .hideOnProgress": {
53-
//visibility: "hidden",
54-
},
55-
},
56-
"&:hover": {
57-
"& .showOnHover": {
58-
opacity: 1,
59-
},
60-
},
39+
const ObjectHandledCloseButton = styled.button(({ theme }) => ({
40+
backgroundColor: "transparent",
41+
border: 0,
42+
right: 0,
43+
top: 5,
44+
marginTop: 15,
45+
position: "absolute",
46+
cursor: "pointer",
47+
"& .closeIcon": {
48+
backgroundColor: get(theme, "buttons.regular.hover.background", "#E6EAEB"),
49+
display: "block",
50+
width: 18,
51+
height: 18,
52+
borderRadius: "100%",
53+
"&:hover": {
54+
backgroundColor: get(theme, "mutedText", "#E9EDEE"),
6155
},
62-
headItem: {
63-
fontSize: 14,
64-
fontWeight: "bold",
65-
width: "100%",
66-
whiteSpace: "nowrap",
67-
textOverflow: "ellipsis",
68-
overflow: "hidden",
69-
},
70-
downloadHeader: {
71-
display: "flex",
72-
alignItems: "center",
73-
width: "100%",
74-
},
75-
progressContainer: {
76-
marginTop: 5,
77-
},
78-
objectDetails: {
79-
display: "flex",
80-
alignItems: "center",
81-
},
82-
iconContainer: {
83-
paddingTop: 5,
84-
marginRight: 5,
85-
"& svg": {
86-
width: 16,
87-
height: 16,
88-
},
89-
},
90-
completedSuccess: {
91-
color: "#4CCB92",
92-
},
93-
inProgress: {
94-
color: "#2781B0",
95-
},
96-
completedError: {
97-
color: "#C83B51",
98-
},
99-
cancelledAction: {
100-
color: "#FFBD62",
101-
},
102-
closeIcon: {
103-
backgroundColor: "#E9EDEE",
104-
display: "block",
105-
width: 18,
106-
height: 18,
107-
borderRadius: "100%",
108-
"&:hover": {
109-
backgroundColor: "#cecbcb",
110-
},
111-
"&::before": {
112-
width: 1,
113-
height: 9,
114-
top: "50%",
115-
content: "' '",
116-
position: "absolute",
117-
transform: "translate(-50%, -50%) rotate(45deg)",
118-
borderLeft: "#000 2px solid",
119-
},
120-
"&::after": {
121-
width: 1,
122-
height: 9,
123-
top: "50%",
124-
content: "' '",
125-
position: "absolute",
126-
transform: "translate(-50%, -50%) rotate(-45deg)",
127-
borderLeft: "#000 2px solid",
128-
},
129-
},
130-
closeButton: {
131-
backgroundColor: "transparent",
132-
border: 0,
133-
right: 0,
134-
top: 5,
135-
marginTop: 15,
56+
"&::before": {
57+
width: 1,
58+
height: 9,
59+
top: "50%",
60+
content: "' '",
13661
position: "absolute",
62+
transform: "translate(-50%, -50%) rotate(45deg)",
63+
borderLeft: `${get(theme, "fontColor", "#000")} 2px solid`,
13764
},
138-
fileName: {
139-
width: 295,
140-
},
141-
bucketName: {
142-
fontSize: 12,
143-
color: "#696969",
144-
fontWeight: "normal",
65+
"&::after": {
66+
width: 1,
67+
height: 9,
68+
top: "50%",
69+
content: "' '",
70+
position: "absolute",
71+
transform: "translate(-50%, -50%) rotate(-45deg)",
72+
borderLeft: `${get(theme, "fontColor", "#000")} 2px solid`,
14573
},
146-
errorMessage: {
147-
fontSize: 12,
148-
color: "#C83B51",
149-
fontWeight: "normal",
150-
marginTop: 6,
151-
overflowWrap: "break-word",
74+
},
75+
}));
76+
77+
const ObjectInformation = styled.div(({ theme }) => ({
78+
display: "flex",
79+
alignItems: "center",
80+
width: "100%",
81+
"span.headItem": {
82+
fontSize: 14,
83+
fontWeight: "bold",
84+
width: 270,
85+
whiteSpace: "nowrap",
86+
textOverflow: "ellipsis",
87+
overflow: "hidden",
88+
},
89+
"& .iconContainer": {
90+
paddingTop: 5,
91+
marginRight: 5,
92+
"& svg": {
93+
width: 16,
94+
height: 16,
15295
},
153-
});
96+
},
97+
"& .completedSuccess": {
98+
color: get(theme, "signalColors.good", "#4CCB92"),
99+
},
100+
"& .inProgress": {
101+
color: get(theme, "signalColors.main", "#2781B0"),
102+
},
103+
"& .completedError": {
104+
color: get(theme, "signalColors.danger", "#C83B51"),
105+
},
106+
"& .cancelledAction": {
107+
color: get(theme, "signalColors.warning", "#FFBD62"),
108+
},
109+
}));
154110

155-
const ObjectHandled = ({
156-
classes,
157-
objectToDisplay,
158-
deleteFromList,
159-
}: IObjectHandled) => {
111+
const ObjectHandled = ({ objectToDisplay, deleteFromList }: IObjectHandled) => {
160112
const prefix = `${objectToDisplay.prefix}`;
161113
return (
162114
<Fragment>
163-
<div
164-
className={`${classes.container} ${
165-
objectToDisplay.percentage !== 100 ? "inProgress" : ""
166-
}`}
115+
<Box
116+
sx={{
117+
borderBottom: "#E2E2E2 1px solid",
118+
padding: "15px 5px",
119+
margin: "0 30px",
120+
position: "relative",
121+
"& .showOnHover": {
122+
opacity: 1,
123+
transitionDuration: "0.2s",
124+
},
125+
"&:hover": {
126+
"& .showOnHover": {
127+
opacity: 1,
128+
},
129+
},
130+
}}
131+
className={objectToDisplay.percentage !== 100 ? "inProgress" : ""}
167132
>
168-
<div className={classes.clearListIcon}>
169-
<button
133+
<Box
134+
sx={{
135+
"& .closeButton": {
136+
backgroundColor: "transparent",
137+
border: 0,
138+
right: 0,
139+
top: 5,
140+
marginTop: 15,
141+
position: "absolute",
142+
},
143+
}}
144+
>
145+
<ObjectHandledCloseButton
170146
onClick={() => {
171147
if (!objectToDisplay.done) {
172148
const call = callForObjectID(objectToDisplay.ID);
@@ -177,27 +153,39 @@ const ObjectHandled = ({
177153
deleteFromList(objectToDisplay.instanceID);
178154
}
179155
}}
180-
className={`${classes.closeButton} hideOnProgress`}
156+
className={`closeButton hideOnProgress`}
157+
>
158+
<span className={"closeIcon"} />
159+
</ObjectHandledCloseButton>
160+
</Box>
161+
<Box
162+
sx={{
163+
display: "flex",
164+
alignItems: "center",
165+
}}
166+
>
167+
<Box
168+
sx={{
169+
width: 295,
170+
"& .bucketName": {
171+
fontSize: 12,
172+
},
173+
}}
181174
>
182-
<span className={classes.closeIcon} />
183-
</button>
184-
</div>
185-
<div className={classes.objectDetails}>
186-
<div className={classes.fileName}>
187-
<Tooltip title={prefix} placement="top-start">
188-
<div className={classes.downloadHeader}>
175+
<Tooltip tooltip={prefix} placement="top">
176+
<ObjectInformation>
189177
<span
190-
className={clsx(classes.iconContainer, {
191-
[classes.inProgress]:
178+
className={clsx("iconContainer", {
179+
inProgress:
192180
!objectToDisplay.done &&
193181
!objectToDisplay.failed &&
194182
!objectToDisplay.cancelled,
195-
[classes.completedSuccess]:
183+
completedSuccess:
196184
objectToDisplay.done &&
197185
!objectToDisplay.failed &&
198186
!objectToDisplay.cancelled,
199-
[classes.completedError]: objectToDisplay.failed,
200-
[classes.cancelledAction]: objectToDisplay.cancelled,
187+
completedError: objectToDisplay.failed,
188+
cancelledAction: objectToDisplay.cancelled,
201189
})}
202190
>
203191
{objectToDisplay.cancelled ? (
@@ -225,21 +213,25 @@ const ObjectHandled = ({
225213
)}
226214
</span>
227215
<span
228-
className={clsx(classes.headItem, {
229-
[classes.completedError]: objectToDisplay.failed,
230-
})}
216+
className={`headItem ${
217+
objectToDisplay.failed ? "completedError" : ""
218+
}`}
231219
>
232220
{prefix}
233221
</span>
234-
</div>
222+
</ObjectInformation>
235223
</Tooltip>
236-
<span className={classes.bucketName}>
224+
<Box className={"muted bucketName"}>
237225
<strong>Bucket: </strong>
238226
{objectToDisplay.bucketName}
239-
</span>
240-
</div>
241-
</div>
242-
<div className={classes.progressContainer}>
227+
</Box>
228+
</Box>
229+
</Box>
230+
<Box
231+
sx={{
232+
marginTop: 5,
233+
}}
234+
>
243235
{objectToDisplay.waitingForFile ? (
244236
<ProgressBarWrapper indeterminate value={0} ready={false} />
245237
) : (
@@ -256,10 +248,10 @@ const ObjectHandled = ({
256248
}
257249
/>
258250
)}
259-
</div>
260-
</div>
251+
</Box>
252+
</Box>
261253
</Fragment>
262254
);
263255
};
264256

265-
export default withStyles(styles)(ObjectHandled);
257+
export default ObjectHandled;

0 commit comments

Comments
 (0)