Skip to content

Commit 20a615b

Browse files
tcnichollongshuicymax-zilla
authored
message on new metadata entry (#764)
* sort of works with snackbar, needs some work * wrong place need to fix colors * customize the snackbar * snackbar disappers too quickly * adding a TODO think it is the proper fix for this * moving snackbar to other page, now it does not disappear --------- Co-authored-by: Chen Wang <[email protected]> Co-authored-by: Max Burnette <[email protected]>
1 parent 881ec0f commit 20a615b

File tree

3 files changed

+44
-3
lines changed

3 files changed

+44
-3
lines changed

frontend/src/components/metadata/CreateMetadataDefinition.tsx

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React from "react";
1+
import React, {useState} from "react";
22

33
import {
44
Autocomplete,
@@ -14,6 +14,7 @@ import {
1414
StepContent,
1515
StepLabel,
1616
Stepper,
17+
Snackbar,
1718
} from "@mui/material";
1819
import { useDispatch } from "react-redux";
1920
import AddBoxIcon from "@mui/icons-material/AddBox";
@@ -29,18 +30,21 @@ interface SupportedInputs {
2930

3031
type CreateMetadataDefinitionProps = {
3132
setCreateMetadataDefinitionOpen: any;
33+
setSnackBarOpen: any;
34+
setSnackBarMessage: any;
3235
};
3336

3437
export const CreateMetadataDefinition = (
3538
props: CreateMetadataDefinitionProps
3639
) => {
37-
const { setCreateMetadataDefinitionOpen } = props;
40+
const { setCreateMetadataDefinitionOpen, setSnackBarOpen, setSnackBarMessage } = props;
3841

3942
const dispatch = useDispatch();
4043
// @ts-ignore
4144
const saveMetadataDefinitions = (metadata: object) =>
4245
dispatch(postMetadataDefinitions(metadata));
4346

47+
4448
const [activeStep, setActiveStep] = React.useState(0);
4549
const [parsedInput, setParsedInput] = React.useState("");
4650
const [contextMap, setContextMap] = React.useState([{ term: "", iri: "" }]);
@@ -288,6 +292,9 @@ export const CreateMetadataDefinition = (
288292
});
289293

290294
setContextMap([{ term: "", iri: "" }]);
295+
// TODO add snackbar here
296+
setSnackBarMessage("Successfully added metadata definition");
297+
setSnackBarOpen(true);
291298
};
292299

293300
const handleNext = () => {

frontend/src/components/metadata/MetadataDefinitions.tsx

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import {
88
DialogTitle,
99
Grid,
1010
IconButton,
11+
InputBase, Snackbar,
1112
} from "@mui/material";
1213
import { RootState } from "../../types/data";
1314
import { useDispatch, useSelector } from "react-redux";
@@ -65,6 +66,18 @@ export function MetadataDefinitions() {
6566
const [selectedMetadataDefinition, setSelectedMetadataDefinition] =
6667
useState();
6768

69+
// snack bar
70+
const [snackBarOpen, setSnackBarOpen] = useState(false);
71+
const [snackBarMessage, setSnackBarMessage] = useState("");
72+
73+
// for breadcrumb
74+
const paths = [
75+
{
76+
name: "Metadata Definitions",
77+
url: "/metadata-definitions",
78+
},
79+
];
80+
6881
// component did mount
6982
useEffect(() => {
7083
listMetadataDefinitions(null, skip, limit);
@@ -110,7 +123,16 @@ export function MetadataDefinitions() {
110123
<Layout>
111124
{/*Error Message dialogue*/}
112125
<ErrorModal errorOpen={errorOpen} setErrorOpen={setErrorOpen} />
113-
126+
{/*TODO PUT SNACKBAR HERE FROM OTHER COMPONENT*/}
127+
<Snackbar
128+
open={snackBarOpen}
129+
autoHideDuration={6000}
130+
onClose={() => {
131+
setSnackBarOpen(false);
132+
setSnackBarMessage("");
133+
}}
134+
message={snackBarMessage}
135+
/>
114136
{/*Delete metadata definition modal*/}
115137
<DeleteMetadataDefinitionModal
116138
deleteMetadataDefinitionConfirmOpen={
@@ -136,6 +158,8 @@ export function MetadataDefinitions() {
136158
<DialogContent>
137159
<CreateMetadataDefinition
138160
setCreateMetadataDefinitionOpen={setCreateMetadataDefinitionOpen}
161+
setSnackBarOpen={setSnackBarOpen}
162+
setSnackBarMessage={setSnackBarMessage}
139163
/>
140164
</DialogContent>
141165
</Dialog>
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import React from "react";
2+
import Snackbar from "@mui/material/Snackbar";
3+
import { styled } from "@mui/system";
4+
5+
export const ClowderSnackBar = styled(Snackbar)(({ theme }) => ({
6+
"& .MuiSnackbarContent-root": {
7+
backgroundColor: "#FFFFFF", // Set your desired background color
8+
color: theme.palette.primary.main, // Set your desired font color
9+
},
10+
}));

0 commit comments

Comments
 (0)