refactor rect selection to make it work in shares

This commit is contained in:
2025-09-04 19:02:14 +02:00
parent 735e825c7d
commit 91c65e0861
7 changed files with 187 additions and 154 deletions

View File

@@ -1,6 +1,9 @@
import type { SelectionMode } from '~/shared/types/selection';
export const useSelectionRect = defineStore('selection-rect', {
state: () => ({
enabled: false as boolean,
dirty: false as boolean,
a: {
x: 0 as number,
y: 0 as number,
@@ -9,9 +12,14 @@ export const useSelectionRect = defineStore('selection-rect', {
x: 0 as number,
y: 0 as number,
},
mode: 'set' as SelectionMode,
}),
actions: {
set(a: { x: number; y: number }, b: { x: number; y: number }) {
set(
a: { x: number; y: number },
b: { x: number; y: number },
mode: SelectionMode
) {
this.a.x = a.x;
this.a.y = a.y;
@@ -19,6 +27,7 @@ export const useSelectionRect = defineStore('selection-rect', {
this.b.y = b.y;
this.enabled = true;
this.mode = mode;
},
updateB(x: number, y: number) {
this.b.x = x;