Skip to content

Commit 6d0d31f

Browse files
committed
Added off-set when pasting multiple times.
1 parent b07d487 commit 6d0d31f

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

src/core/providers/canvas-schema/canvas-schema.provider.tsx

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -188,23 +188,28 @@ export const CanvasSchemaProvider: React.FC<Props> = props => {
188188
};
189189

190190
const [clipboardTable, setClipboardTable] = useState<TableVm | null>(null);
191+
const [pasteOffset, setPasteOffset] = useState({ x: 0, y: 0 });
191192

192193
const copySelectedTable = () => {
193194
const selectedTable = canvasSchema.tables.find(
194195
table => table.id === canvasSchema.selectedElementId
195196
);
196197
if (selectedTable) {
197198
setClipboardTable(selectedTable);
199+
setPasteOffset({ x: 0, y: 0 }); // Reset offset on copy
198200
}
199201
};
200202

201203
const pasteTable = () => {
202204
if (clipboardTable) {
205+
// Increment offset
206+
const newOffset = { x: pasteOffset.x + 50, y: pasteOffset.y + 50 };
207+
203208
const newTable: TableVm = {
204209
...clipboardTable,
205210
id: crypto.randomUUID(),
206-
x: clipboardTable.x + 50,
207-
y: clipboardTable.y + 50,
211+
x: clipboardTable.x + newOffset.x,
212+
y: clipboardTable.y + newOffset.y,
208213
fields: clipboardTable.fields.map(field => ({
209214
...field,
210215
id: crypto.randomUUID(),
@@ -216,6 +221,8 @@ export const CanvasSchemaProvider: React.FC<Props> = props => {
216221
tables: [...prev.tables, newTable],
217222
isPristine: false,
218223
}));
224+
225+
setPasteOffset(newOffset);
219226
}
220227
};
221228

0 commit comments

Comments
 (0)