From 674f541bd177884f34469f71f3c7b9009bfa911f Mon Sep 17 00:00:00 2001 From: xche529 Date: Mon, 30 Sep 2024 13:30:44 +1300 Subject: [PATCH 1/5] fix: fix button zooming --- .../src/features/authoring/Canvas/Canvas.jsx | 2 +- .../authoring/Canvas/componentResolver.jsx | 4 ++- .../authoring/components/ButtonComponent.jsx | 33 +++++++++++++++++-- 3 files changed, 34 insertions(+), 5 deletions(-) diff --git a/frontend/src/features/authoring/Canvas/Canvas.jsx b/frontend/src/features/authoring/Canvas/Canvas.jsx index 6d0224b1..264feb83 100644 --- a/frontend/src/features/authoring/Canvas/Canvas.jsx +++ b/frontend/src/features/authoring/Canvas/Canvas.jsx @@ -108,7 +108,7 @@ export default function Canvas() {
{currentScene?.components?.map((component, index) => - componentResolver(component, index, selectElement) + componentResolver(component, index, selectElement, true) )}
diff --git a/frontend/src/features/authoring/Canvas/componentResolver.jsx b/frontend/src/features/authoring/Canvas/componentResolver.jsx index 0515821b..0158e90d 100644 --- a/frontend/src/features/authoring/Canvas/componentResolver.jsx +++ b/frontend/src/features/authoring/Canvas/componentResolver.jsx @@ -14,7 +14,7 @@ import TextComponent from "../components/TextComponent"; * componentResolver(component, index, selectElement) * )} */ -export default function componentResolver(component, index, onClick) { +export default function componentResolver(component, index, onClick, isEditing) { switch (component.type) { // ADD NEW COMPONENT TYPES HERE case "BUTTON": @@ -24,6 +24,7 @@ export default function componentResolver(component, index, onClick) { id={index} onClick={onClick} component={component} + isEditing={isEditing} /> ); case "RESET_BUTTON": @@ -33,6 +34,7 @@ export default function componentResolver(component, index, onClick) { id={index} onClick={onClick} component={component} + isEditing={isEditing} /> ); case "SPEECHTEXT": diff --git a/frontend/src/features/authoring/components/ButtonComponent.jsx b/frontend/src/features/authoring/components/ButtonComponent.jsx index 31e5e0e9..1dd1ffc6 100644 --- a/frontend/src/features/authoring/components/ButtonComponent.jsx +++ b/frontend/src/features/authoring/components/ButtonComponent.jsx @@ -1,4 +1,5 @@ import { Button } from "@material-ui/core"; +import React, { useEffect, useState } from "react"; import useStyles from "./components.styles"; /** @@ -11,13 +12,39 @@ import useStyles from "./components.styles"; * component={component} * /> */ -export default function ButtonComponent({ id, onClick, component }) { +export default function ButtonComponent({ id, onClick, component, isEditing }) { const styles = useStyles(component); + const [zoomLevel, setZoomLevel] = useState(1); + const userDefinedWidth = component.width; + const userDefinedHeight = component.height; + useEffect(() => { + const handleResize = () => { + if (isEditing) { + setZoomLevel(1); + return; + } + setZoomLevel(window.devicePixelRatio); + }; + + window.addEventListener("resize", handleResize); + + return () => { + window.removeEventListener("resize", handleResize); + }; + }, []); + console.log(`Zoom level: ${zoomLevel}`); return (