From 1f17671cfca8615d13081ae47a93c99cc424276e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Banno-Cloutier?= <leo.banno-cloutier@savoirfairelinux.com> Date: Wed, 14 Jun 2023 17:46:08 -0400 Subject: [PATCH] jams-react-client: show CustomUiPreview in Customization tab Change-Id: I537f76a77cbe6ef49da26c5d70bf3abc808dd1f8 --- .../src/views/Blueprint/EditBlueprintUi.js | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/jams-react-client/src/views/Blueprint/EditBlueprintUi.js b/jams-react-client/src/views/Blueprint/EditBlueprintUi.js index 7fe1480d..79064858 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} -- GitLab