전략편집기 전략컨트롤 드래그
This commit is contained in:
@@ -51,6 +51,10 @@ export default function PaletteChip({
|
||||
});
|
||||
|
||||
const onDragStart = (e: React.DragEvent) => {
|
||||
if (needsPointerPaletteDrag()) {
|
||||
e.preventDefault();
|
||||
return;
|
||||
}
|
||||
writePaletteHtmlDragData(e, buildPayload());
|
||||
};
|
||||
|
||||
@@ -95,7 +99,7 @@ export default function PaletteChip({
|
||||
return (
|
||||
<div
|
||||
draggable={!needsPointerPaletteDrag()}
|
||||
className={`se-palette-card ${color ? `se-palette-card--${color}` : 'se-palette-card--ind'}${composite ? ' se-palette-card--composite' : ''}${selected ? ' se-palette-card--selected' : ''}`}
|
||||
className={`se-palette-card ${color ? `se-palette-card--${color}` : 'se-palette-card--ind'}${composite ? ' se-palette-card--composite' : ''}${selected ? ' se-palette-card--selected' : ''}${needsPointerPaletteDrag() ? ' se-palette-card--pointer' : ''}`}
|
||||
onDragStart={onDragStart}
|
||||
onDragEnd={onDragEnd}
|
||||
onPointerDown={onPointerDown}
|
||||
|
||||
@@ -78,6 +78,10 @@ function SidewaysFilterChip({
|
||||
|
||||
const onDragStart = (e: React.DragEvent) => {
|
||||
hideHint();
|
||||
if (needsPointerPaletteDrag()) {
|
||||
e.preventDefault();
|
||||
return;
|
||||
}
|
||||
const payload: SidewaysFilterDragPayload = {
|
||||
type: 'sidewaysFilter',
|
||||
value: item.id,
|
||||
@@ -127,7 +131,7 @@ function SidewaysFilterChip({
|
||||
return (
|
||||
<div
|
||||
draggable={!needsPointerPaletteDrag()}
|
||||
className={`se-palette-card se-palette-card--range se-palette-card--range-${item.mode}${selected ? ' se-palette-card--selected' : ''}`}
|
||||
className={`se-palette-card se-palette-card--range se-palette-card--range-${item.mode}${selected ? ' se-palette-card--selected' : ''}${needsPointerPaletteDrag() ? ' se-palette-card--pointer' : ''}`}
|
||||
onDragStart={onDragStart}
|
||||
onDragEnd={onDragEnd}
|
||||
onPointerDown={onPointerDown}
|
||||
|
||||
@@ -1336,20 +1336,10 @@ function StrategyEditorCanvasInner({
|
||||
if (!needsPointerPaletteDrag()) return;
|
||||
return subscribePaletteDrag((ev: PaletteDragEvent) => {
|
||||
if (ev.phase === 'move') {
|
||||
if (!isOverStrategyBuilder(ev.x, ev.y)) {
|
||||
if (lastPreviewAnchorRef.current != null) {
|
||||
lastPreviewAnchorRef.current = null;
|
||||
lastPreviewKeyRef.current = null;
|
||||
clearPreviewRef.current();
|
||||
}
|
||||
return;
|
||||
}
|
||||
const { flowPos, anchorId } = resolveDropFromClientRef.current(ev.x, ev.y);
|
||||
if (anchorId) {
|
||||
const sideKey = `${anchorId}:${Math.round(flowPos.x / 8)}:${Math.round(flowPos.y / 8)}`;
|
||||
if (sideKey === lastPreviewKeyRef.current) return;
|
||||
lastPreviewKeyRef.current = sideKey;
|
||||
lastPreviewAnchorRef.current = anchorId;
|
||||
lastPreviewKeyRef.current = `${anchorId}:${Math.round(flowPos.x / 8)}:${Math.round(flowPos.y / 8)}`;
|
||||
updatePreviewRef.current(anchorId, flowPos);
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user