Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
cleanup: Reference TransformState directly
  • Loading branch information
DrJKL committed Nov 23, 2025
commit 722ddec7cb290dda2effc37bb974ab21c6d5e875
39 changes: 13 additions & 26 deletions src/renderer/extensions/vueNodes/components/LGraphNode.vue
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,6 @@ import { useTelemetry } from '@/platform/telemetry'
import { useCanvasStore } from '@/renderer/core/canvas/canvasStore'
import { useCanvasInteractions } from '@/renderer/core/canvas/useCanvasInteractions'
import { layoutStore } from '@/renderer/core/layout/store/layoutStore'
import { useTransformState } from '@/renderer/core/layout/transform/useTransformState'
import SlotConnectionDot from '@/renderer/extensions/vueNodes/components/SlotConnectionDot.vue'
import { useNodeEventHandlers } from '@/renderer/extensions/vueNodes/composables/useNodeEventHandlers'
import { useNodePointerInteractions } from '@/renderer/extensions/vueNodes/composables/useNodePointerInteractions'
Expand Down Expand Up @@ -201,13 +200,6 @@ const { bringNodeToFront } = useNodeZIndex()

useVueElementTracking(() => nodeData.id, 'node')

const transformState = useTransformState()
if (!transformState) {
throw new Error(
'TransformState must be provided for node resize functionality'
)
}

const { selectedNodeIds } = storeToRefs(useCanvasStore())
const isSelected = computed(() => {
return selectedNodeIds.value.has(nodeData.id)
Expand Down Expand Up @@ -364,29 +356,24 @@ const cornerResizeHandles: CornerResizeHandle[] = [

const MIN_NODE_WIDTH = 225

const { startResize } = useNodeResize(
(result, element) => {
if (isCollapsed.value) return
const { startResize } = useNodeResize((result, element) => {
if (isCollapsed.value) return

// Clamp width to minimum to avoid conflicts with CSS min-width
const clampedWidth = Math.max(result.size.width, MIN_NODE_WIDTH)
// Clamp width to minimum to avoid conflicts with CSS min-width
const clampedWidth = Math.max(result.size.width, MIN_NODE_WIDTH)

// Apply size directly to DOM element - ResizeObserver will pick this up
element.style.setProperty('--node-width', `${clampedWidth}px`)
element.style.setProperty('--node-height', `${result.size.height}px`)
// Apply size directly to DOM element - ResizeObserver will pick this up
element.style.setProperty('--node-width', `${clampedWidth}px`)
element.style.setProperty('--node-height', `${result.size.height}px`)

const currentPosition = position.value
const deltaX = Math.abs(result.position.x - currentPosition.x)
const deltaY = Math.abs(result.position.y - currentPosition.y)
const currentPosition = position.value
const deltaX = Math.abs(result.position.x - currentPosition.x)
const deltaY = Math.abs(result.position.y - currentPosition.y)

if (deltaX > POSITION_EPSILON || deltaY > POSITION_EPSILON) {
moveNodeTo(result.position)
}
},
{
transformState
if (deltaX > POSITION_EPSILON || deltaY > POSITION_EPSILON) {
moveNodeTo(result.position)
}
)
})

const handleResizePointerDown = (direction: ResizeHandleDirection) => {
return (event: PointerEvent) => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,7 @@ import { useShiftKeySync } from '@/renderer/extensions/vueNodes/composables/useS

import type { ResizeHandleDirection } from './resizeMath'
import { createResizeSession, toCanvasDelta } from './resizeMath'
import type { useTransformState } from '@/renderer/core/layout/transform/useTransformState'

interface UseNodeResizeOptions {
/** Transform state for coordinate conversion */
transformState: ReturnType<typeof useTransformState>
}
import { useTransformState } from '@/renderer/core/layout/transform/useTransformState'

interface ResizeCallbackPayload {
size: Size
Expand All @@ -26,13 +21,9 @@ interface ResizeCallbackPayload {
* Handles pointer capture, coordinate calculations, and size constraints.
*/
export function useNodeResize(
resizeCallback: (
payload: ResizeCallbackPayload,
element: HTMLElement
) => void,
options: UseNodeResizeOptions
resizeCallback: (payload: ResizeCallbackPayload, element: HTMLElement) => void
) {
const { transformState } = options
const transformState = useTransformState()

const isResizing = ref(false)
const resizeStartPointer = ref<Point | null>(null)
Expand Down