diff --git a/jams-react-client/src/views/Blueprint/EditBlueprintUi.js b/jams-react-client/src/views/Blueprint/EditBlueprintUi.js index 7fe1480d6956801e04afa1c285a69036a55f3f2a..79064858e3267411e2301f0489d87a44d9c03b5c 100644 --- a/jams-react-client/src/views/Blueprint/EditBlueprintUi.js +++ b/jams-react-client/src/views/Blueprint/EditBlueprintUi.js @@ -29,6 +29,8 @@ import Snackbar from "@material-ui/core/Snackbar"; import MuiAlert from "@material-ui/lab/Alert"; import i18next from "i18next"; +import CustomUiPreview from "components/CustomUiPreview/CustomUiPreview"; +import EditBlueprintUiForm from "./EditBlueprintUiForm"; const DEFAULT_UI_CUSTOMIZATION = { hasTitle: true, @@ -124,6 +126,11 @@ export default function EditBlueprintUi({ blueprintName }) { setPolicyData({ ...policyData, uiCustomization: ui }); }; + const [oldUiCustomization, setOldUiCustomization] = useState({ + ...uiCustomization, + }); + const [opacity, setOpacity] = useState(0); + const [open, setOpen] = useState(false); const [message, setMessage] = useState(false); const [severity, setSeverity] = useState("success"); @@ -176,6 +183,8 @@ export default function EditBlueprintUi({ blueprintName }) { } } + // refresh the preview + setOldUiCustomization(uiCustomizationResponse); console.log("Found ui customization in the policy data"); } else { setUiCustomization(DEFAULT_UI_CUSTOMIZATION); @@ -194,6 +203,19 @@ export default function EditBlueprintUi({ blueprintName }) { const handleUpdateUi = (field, value) => { const newUiCustomization = { ...uiCustomization, [field]: value }; + if (field === "title" || field === "description" || field === "backgroundColor") { + // Don't fade in for those fields + setOldUiCustomization(newUiCustomization); + } else { + // To make a fade effect, the new preview fades in, + // then the old preview is updated, and the preview on top fades out + setOpacity(1); + setTimeout(() => { + setOldUiCustomization(newUiCustomization); + setOpacity(0); + }, 250); + } + axios( configApiCall( api_path_blueprints + "?name=" + blueprintName, @@ -337,6 +359,23 @@ export default function EditBlueprintUi({ blueprintName }) { <Grid container spacing={5}> <Grid item xs={12} sm={12} md={12}> <Grid container spacing={2}> + <Grid + item + xs={12} + sm={12} + md={12} + className={classes.previewContainer} + > + <CustomUiPreview + opacity={opacity} + uiCustomization={policyData.uiCustomization} + /> + <CustomUiPreview + isOldPreview + opacity="1" + uiCustomization={oldUiCustomization} + /> + </Grid> <Grid item xs={12} sm={12} md={12}> <EditBlueprintUiForm uiCustomization={policyData.uiCustomization}