From 280e039a5ba85fd077acac488efe3ed08ce85f94 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期五, 08 三月 2024 15:57:59 +0800
Subject: [PATCH] #
---
zy-asrs-flow/src/pages/map/index.jsx | 18 ++++++++++++++----
1 files changed, 14 insertions(+), 4 deletions(-)
diff --git a/zy-asrs-flow/src/pages/map/index.jsx b/zy-asrs-flow/src/pages/map/index.jsx
index a102917..00e3809 100644
--- a/zy-asrs-flow/src/pages/map/index.jsx
+++ b/zy-asrs-flow/src/pages/map/index.jsx
@@ -71,6 +71,7 @@
const [mapContainer, setMapContainer] = React.useState(null);
const [didClickSprite, setDidClickSprite] = React.useState(false);
const [spriteBySettings, setSpriteBySettings] = React.useState(null);
+ const prevSpriteBySettingsRef = React.useRef();
// init func
React.useEffect(() => {
@@ -131,6 +132,7 @@
player.activateMapEvent(Utils.MapEvent.SELECTION_BOX);
Utils.removeSelectedEffect();
+ setSpriteBySettings(null);
setSettingsVisible(false);
mapContainer.children.forEach(child => {
@@ -156,12 +158,12 @@
}, [model]);
// Add New Device
- const onDrop = (sprite, x, y) => {
+ const onDrop = (sprite, type, x, y) => {
const { mapX, mapY } = Utils.getRealPosition(x, y, mapContainer);
sprite.x = mapX;
sprite.y = mapY;
- Utils.initSprite(sprite);
+ Utils.initSprite(sprite, type);
mapContainer.addChild(sprite);
Utils.beMovable(sprite, setDidClickSprite);
};
@@ -171,9 +173,14 @@
player.updateDidClickSprite(didClickSprite);
}, [didClickSprite])
+ // watch spriteBySettings
React.useEffect(() => {
if (!mapContainer) {
return;
+ }
+ prevSpriteBySettingsRef.current = spriteBySettings;
+ if (spriteBySettings && prevSpriteBySettings !== spriteBySettings) {
+ Utils.removeSelectedEffect();
}
if (spriteBySettings) {
Utils.showSelectedEffect(spriteBySettings)
@@ -182,8 +189,10 @@
Utils.removeSelectedEffect();
}
}, [spriteBySettings])
+ const prevSpriteBySettings = prevSpriteBySettingsRef.current;
const settingsFinish = () => {
+ setSettingsVisible(false);
setSpriteBySettings(null);
}
@@ -272,7 +281,7 @@
<Edit
open={deviceVisible}
onCancel={() => {
- // setDeviceVisible(false);
+ setDeviceVisible(false);
}}
refCurr={mapRef.current}
onDrop={onDrop}
@@ -280,12 +289,13 @@
<Settings
open={settingsVisible}
+ curSprite={spriteBySettings}
onCancel={() => {
setSettingsVisible(false);
setSpriteBySettings(null);
}}
refCurr={mapRef.current}
- onDrop={settingsFinish}
+ onSubmit={settingsFinish}
/>
</>
)
--
Gitblit v1.9.1