完善全类型资源非破坏性编辑
禁用新增资源并为所有现役资源提供按类型编辑入口。 图片、视频、音频、文本、任务产物和项目版本派生新资源且保留原资源。 完善 External operation 私有账本、幂等恢复、旧指纹迁移与安全校验。 修复画布生成期间交互冻结、滚轮平移缩放与 Shift 选择行为。 同步资源编辑合同、决策记录与排障经验。
This commit is contained in:
@@ -12,9 +12,8 @@ import {
|
||||
getWorldPointFromClient,
|
||||
moveViewportFromMinimapDrag as resolveViewportFromMinimapDrag,
|
||||
moveViewportFromMinimapPointer as resolveViewportFromMinimapPointer,
|
||||
panViewportFromWheel,
|
||||
resolveViewportFromWheel,
|
||||
scaleViewportFromScreenPoint,
|
||||
zoomViewportFromWheel,
|
||||
} from '@genarrative/image-canvas-core';
|
||||
import {
|
||||
type Dispatch,
|
||||
@@ -369,32 +368,22 @@ export function useImageCanvasViewportControls({
|
||||
|
||||
event.preventDefault();
|
||||
|
||||
if (!event.ctrlKey && !event.metaKey) {
|
||||
const useShiftWheelHorizontalFallback =
|
||||
event.shiftKey && event.deltaX === 0;
|
||||
setViewport((currentViewport) =>
|
||||
panViewportFromWheel({
|
||||
viewport: currentViewport,
|
||||
deltaX: useShiftWheelHorizontalFallback
|
||||
? event.deltaY
|
||||
: event.deltaX,
|
||||
deltaY: useShiftWheelHorizontalFallback ? 0 : event.deltaY,
|
||||
}),
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
const rect = viewportElement.getBoundingClientRect();
|
||||
const screenPoint = {
|
||||
x: event.clientX - rect.left,
|
||||
y: event.clientY - rect.top,
|
||||
};
|
||||
setViewport((currentViewport) =>
|
||||
zoomViewportFromWheel({
|
||||
viewport: currentViewport,
|
||||
deltaY: event.deltaY,
|
||||
screenPoint,
|
||||
}),
|
||||
setViewport(
|
||||
(currentViewport) =>
|
||||
resolveViewportFromWheel({
|
||||
viewport: currentViewport,
|
||||
deltaX: event.deltaX,
|
||||
deltaY: event.deltaY,
|
||||
shiftKey: event.shiftKey,
|
||||
ctrlKey: event.ctrlKey,
|
||||
metaKey: event.metaKey,
|
||||
screenPoint,
|
||||
}).viewport,
|
||||
);
|
||||
},
|
||||
[canvasViewportRef, setViewport],
|
||||
|
||||
Reference in New Issue
Block a user