지표 선택 마우스 스크롤

This commit is contained in:
Macbook
2026-06-16 10:23:06 +09:00
parent c7b92dbec5
commit 484f477d6c
3 changed files with 19 additions and 2 deletions
+1
View File
@@ -7619,6 +7619,7 @@ html.desktop-client .tmb-logo-version {
width: min(320px, calc(100vw - 24px)); width: min(320px, calc(100vw - 24px));
max-height: min(420px, 60vh); max-height: min(420px, 60vh);
overflow: auto; overflow: auto;
overscroll-behavior: contain;
padding: 8px 10px; padding: 8px 10px;
border-radius: 8px; border-radius: 8px;
border: 1px solid color-mix(in srgb, #a78bfa 45%, transparent); border: 1px solid color-mix(in srgb, #a78bfa 45%, transparent);
@@ -93,6 +93,21 @@ export default function ConditionPresetPicker({
}; };
}, [onClose]); }, [onClose]);
/** 그래프 모드: 팝업 위 휠 스크롤이 React Flow 줌으로 전달되지 않도록 차단 */
useEffect(() => {
const el = popRef.current;
if (!el) return;
const onWheel = (e: WheelEvent) => {
e.stopPropagation();
};
el.addEventListener('wheel', onWheel, { capture: true, passive: true });
return () => el.removeEventListener('wheel', onWheel, { capture: true });
}, []);
const stopWheelBubble = (e: React.WheelEvent) => {
e.stopPropagation();
};
const handlePick = (preset: ConditionPreset) => { const handlePick = (preset: ConditionPreset) => {
if (isCompoundConditionPreset(preset)) { if (isCompoundConditionPreset(preset)) {
onReplaceNode(applyCompoundConditionPreset(nodeId, condition, preset, def)); onReplaceNode(applyCompoundConditionPreset(nodeId, condition, preset, def));
@@ -104,7 +119,7 @@ export default function ConditionPresetPicker({
if (presets.length === 0) { if (presets.length === 0) {
return ( return (
<div ref={popRef} className={popoverClassName} role="dialog" aria-label="조건 선택"> <div ref={popRef} className={popoverClassName} role="dialog" aria-label="조건 선택" onWheel={stopWheelBubble}>
<div className="se-cond-preset-head"> <div className="se-cond-preset-head">
<span> </span> <span> </span>
<button type="button" className="se-flow-settings-close" onClick={onClose} aria-label="닫기">×</button> <button type="button" className="se-flow-settings-close" onClick={onClose} aria-label="닫기">×</button>
@@ -115,7 +130,7 @@ export default function ConditionPresetPicker({
} }
return ( return (
<div ref={popRef} className={popoverClassName} role="dialog" aria-label="조건 선택"> <div ref={popRef} className={popoverClassName} role="dialog" aria-label="조건 선택" onWheel={stopWheelBubble}>
<div className="se-cond-preset-head"> <div className="se-cond-preset-head">
<span> </span> <span> </span>
<button type="button" className="se-flow-settings-close" onClick={onClose} aria-label="닫기">×</button> <button type="button" className="se-flow-settings-close" onClick={onClose} aria-label="닫기">×</button>
+1
View File
@@ -1262,6 +1262,7 @@
width: min(320px, calc(100vw - 24px)); width: min(320px, calc(100vw - 24px));
max-height: min(420px, 60vh); max-height: min(420px, 60vh);
overflow: auto; overflow: auto;
overscroll-behavior: contain;
padding: 8px 10px; padding: 8px 10px;
border-radius: 8px; border-radius: 8px;
border: 1px solid color-mix(in srgb, #a78bfa 45%, transparent); border: 1px solid color-mix(in srgb, #a78bfa 45%, transparent);