diff --git a/components/CanvasEditor.vue b/components/CanvasEditor.vue
index a21d288..d29d2a3 100644
--- a/components/CanvasEditor.vue
+++ b/components/CanvasEditor.vue
@@ -1,5 +1,6 @@
-
+
@@ -483,7 +505,7 @@ useShortcuts({
'transform-origin': 'center center',
}" class="h-full">
-
+
diff --git a/components/canvas/CanvasNodeEditor.vue b/components/canvas/CanvasNodeEditor.vue
index c23b0ac..7d25daa 100644
--- a/components/canvas/CanvasNodeEditor.vue
+++ b/components/canvas/CanvasNodeEditor.vue
@@ -38,17 +38,16 @@ import type { Direction } from '~/shared/canvas.util';
import FakeA from '../prose/FakeA.vue';
import type { CanvasNode } from '~/types/canvas';
-const { node, index, zoom } = defineProps<{
+const { node, zoom } = defineProps<{
node: CanvasNode
- index: number
zoom: number
}>();
const emit = defineEmits<{
- (e: 'select', index: number): void,
- (e: 'edit', index: number): void,
- (e: 'move', index: number, x: number, y: number): void,
- (e: 'resize', index: number, x: number, y: number, w: number, h: number): void,
+ (e: 'select', id: string): void,
+ (e: 'edit', id: string): void,
+ (e: 'move', id: string, x: number, y: number): void,
+ (e: 'resize', id: string, x: number, y: number, w: number, h: number): void,
}>();
const dom = useTemplateRef('dom');
@@ -59,7 +58,7 @@ function selectNode(e: Event) {
return;
focusing.value = true;
- emit('select', index);
+ emit('select', node.id);
dom.value?.addEventListener('mousedown', dragstart, { passive: true });
}
@@ -70,7 +69,7 @@ function editNode(e: Event) {
e.stopImmediatePropagation();
dom.value?.removeEventListener('mousedown', dragstart);
- emit('edit', index);
+ emit('edit', node.id);
}
function resizeNode(e: MouseEvent, x: number, y: number, w: number, h: number) {
e.stopImmediatePropagation();
@@ -88,7 +87,7 @@ function resizeNode(e: MouseEvent, x: number, y: number, w: number, h: number) {
const resizeend = (e: MouseEvent) => {
if(e.button !== 0)
return;
- emit('resize', index, node.x - startx, node.y - starty, node.width - startw, node.height - starth);
+ emit('resize', node.id, node.x - startx, node.y - starty, node.width - startw, node.height - starth);
window.removeEventListener('mousemove', resizemove);
window.removeEventListener('mouseup', resizeend);
@@ -123,7 +122,7 @@ const dragend = (e: MouseEvent) => {
window.removeEventListener('mouseup', dragend);
if(node.x - lastx !== 0 && node.y - lasty !== 0)
- emit('move', index, node.x - lastx, node.y - lasty);
+ emit('move', node.id, node.x - lastx, node.y - lasty);
};
const dragstart = (e: MouseEvent) => {
if(e.button !== 0)
@@ -135,7 +134,7 @@ const dragstart = (e: MouseEvent) => {
window.addEventListener('mouseup', dragend, { passive: true });
};
-defineExpose({ unselect, dom });
+defineExpose({ unselect, dom, ...node });
const style = computed(() => {
return node.color ? node.color?.class ?
diff --git a/db.sqlite-wal b/db.sqlite-wal
index a4c26d8..3089977 100644
Binary files a/db.sqlite-wal and b/db.sqlite-wal differ