19 lines
654 B
TypeScript

import type { AnyNode } from '@pascal-app/core'
import { createSlotPaintCapability, previewSlotByUserData } from '../shared/slot-paint'
import type { ColumnNode } from './schema'
export const columnPaint = createSlotPaintCapability({
resolveRole: (args) => {
const slotId = args.hitObject?.userData?.slotId
return typeof slotId === 'string' ? slotId : null
},
applyPreview: previewSlotByUserData,
legacyEffective: (node: AnyNode) => {
const column = node as ColumnNode
if (column.materialPreset || column.material) {
return { material: column.material, materialPreset: column.materialPreset }
}
return null
},
})