From b185a4c409e8140cbd11f9574d17d0d485815b86 Mon Sep 17 00:00:00 2001
From: Eugen Ciur <eugen@papermerge.com>
Date: Sat, 29 Jan 2022 08:23:18 +0100
Subject: [PATCH] add basic ui select modifier

---
 app/components/commander/index.hbs |  5 +++-
 app/modifiers/ui_select.js         | 47 ++++++++++++++++++++++++++++++
 2 files changed, 51 insertions(+), 1 deletion(-)
 create mode 100644 app/modifiers/ui_select.js

diff --git a/app/components/commander/index.hbs b/app/components/commander/index.hbs
index ec5b188..e18a28e 100644
--- a/app/components/commander/index.hbs
+++ b/app/components/commander/index.hbs
@@ -1,7 +1,10 @@
 <div class="panel commander col m-2 p-2"
   {{droppable
     onDrop=this.onDrop
-    onDragOver=this.onDragOver }}>
+    onDragOver=this.onDragOver }}
+
+  {{uiSelect}}>
+
   <div class="d-flex justify-content-between">
     <Commander::ActionButtons
       @openNewFolderModal={{this.openNewFolderModal}}
diff --git a/app/modifiers/ui_select.js b/app/modifiers/ui_select.js
new file mode 100644
index 0000000..21020e9
--- /dev/null
+++ b/app/modifiers/ui_select.js
@@ -0,0 +1,47 @@
+import { action } from '@ember/object';
+import Modifier from 'ember-modifier';
+
+
+export default class UISelectModifier extends Modifier {
+
+  ui_select = undefined; 
+
+  addEventListener() {
+    this.element.addEventListener('mousedown', this.onMouseDown);
+    this.element.addEventListener('mouseup', this.onMouseUp);
+    this.element.addEventListener('mousemove', this.onMouseMove);
+  }
+
+  removeEventListener() {
+    this.element.removeEventListener('mousedown', this.onMouseDown);
+    this.element.removeEventListener('mouseup', this.onMouseUp);
+    this.element.removeEventListener('mousemove', this.onMouseMove);
+  }
+
+  // lifecycle hooks
+  didReceiveArguments() {
+    this.removeEventListener();
+    this.addEventListener();
+  }
+
+  willDestroy() {
+    this.removeEventListener();
+  }
+
+  @action
+  onMouseMove(event) {
+    if (this.ui_select) {
+      console.log('on mouse move');
+    }
+  }
+
+  @action
+  onMouseUp(event) {
+    this.ui_select = false;
+  }
+
+  @action
+  onMouseDown(event) {
+    this.ui_select = true;
+  }
+}
\ No newline at end of file
-- 
GitLab