Skip to content

Commit 332c5f9

Browse files
committed
Clear drag.
1 parent 9e1acf7 commit 332c5f9

File tree

3 files changed

+30
-12
lines changed

3 files changed

+30
-12
lines changed

src/pg/tree/tree.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,7 @@ export default class PgTree extends HTMLElement {
192192
this.#getItem(parent).items.splice(position === 'after' ? index + 1 : index, 0, cache);
193193
}
194194
this.#selectedIndexes.clear();
195+
this.$items.classList.toggle('dragging', false);
195196
}
196197
}
197198
}

src/pg/treeItem/treeItem.css

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
align-items: center;
2929
font-family: var(--pg-font-family);
3030
font-size: var(--pg-tree-item-font-size, 1rem);
31-
margin: -0.25rem -0.75rem -0.25rem -0.25rem;
31+
margin: -0.25rem -0.25rem -0.25rem -0.25rem;
3232
padding: 0 0.75rem 0 0.25rem;
3333
}
3434

@@ -120,13 +120,13 @@
120120
}
121121
[part=item].items.selected:not(.expanded):not(.dragging) [part=toggle] {
122122
border-radius: 0.125rem;
123-
background-color: var(--pg-tree-item-background-selected, #453C4F);
123+
background-color: var(--pg-tree-item-background-selected, rgb(79, 143, 249));
124124
background-image: url("data:image/svg+xml; utf8, <svg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27><path d=%27M 17,13L 17,11L 11,5L 9,7L 14,12L 9,17L 11,19%27 fill='white' /></svg>") !important;
125125
}
126126

127127
[part=item].items.selected.expanded:not(.dragging) [part=toggle] {
128128
border-radius: 0.125rem;
129-
background-color: var(--pg-tree-item-background-selected, #453C4F);
129+
background-color: var(--pg-tree-item-background-selected, rgb(79, 143, 249));
130130
background-image: url("data:image/svg+xml; utf8, <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M 11,17L 13,17L 19,11L 17,9L 12,14L 7,9L 5,11' fill='white' /></svg>") !important;
131131
}
132132

@@ -143,7 +143,7 @@
143143
margin-top: -0.125rem;
144144
margin-bottom: -0.125rem;
145145
border-radius: 0.125rem;
146-
background: #453C4F;
146+
background: rgb(79, 143, 249);
147147
}
148148

149149
[part=item]:not(.dragging):not(.items).selected [part=selected] {

src/pg/treeItem/treeItem.ts

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ export default class PgTreeItem extends HTMLElement {
4545
this.$item.addEventListener('dragend', this.#handleDragEnd.bind(this));
4646
this.$labelButton.addEventListener('dblclick', this.#handleDoubleClick.bind(this));
4747
this.$labelButton.addEventListener('click', this.#handleClick.bind(this));
48+
this.$labelButton.addEventListener('keydown', this.#handleKeyDownLabel.bind(this));
4849
this.$iconButton.addEventListener('dblclick', this.#handleIconDoubleClick.bind(this));
4950
this.$iconButton.addEventListener('click', this.#handleIconClick.bind(this));
5051
this.$iconButton.addEventListener('keydown', this.#handleIconKeyDown.bind(this));
@@ -88,6 +89,10 @@ export default class PgTreeItem extends HTMLElement {
8889
}
8990
}
9091

92+
disconnectedCallback() {
93+
console.log('disconnect', this.index);
94+
}
95+
9196
#initItemsOnce = true;
9297
#initItems() {
9398
if (this.#initItemsOnce) {
@@ -178,6 +183,14 @@ export default class PgTreeItem extends HTMLElement {
178183
}));
179184
}
180185

186+
#handleKeyDownLabel(e: KeyboardEvent) {
187+
if (e.key === 'Enter') {
188+
this.#enableRename();
189+
e.preventDefault();
190+
}
191+
// todo arrow keys
192+
}
193+
181194
#handlePointerEnter() {
182195
this.dispatchEvent(new CustomEvent('enter', {
183196
bubbles: true,
@@ -246,12 +259,7 @@ export default class PgTreeItem extends HTMLElement {
246259
e.preventDefault();
247260
}
248261

249-
#ignoreNextClick = false;
250-
#handleDoubleClick(e: MouseEvent) {
251-
const { ctrlKey, shiftKey } = e;
252-
if (ctrlKey || shiftKey) {
253-
return;
254-
}
262+
#enableRename() {
255263
this.$labelButton.classList.add('hide');
256264
this.$actions.classList.add('hide');
257265
this.$input.classList.remove('hide');
@@ -266,14 +274,23 @@ export default class PgTreeItem extends HTMLElement {
266274
indexes: [this.index]
267275
}
268276
}));
277+
}
278+
279+
#ignoreNextClick = false;
280+
#handleDoubleClick(e: MouseEvent) {
281+
const { ctrlKey, shiftKey } = e;
282+
if (ctrlKey || shiftKey) {
283+
return;
284+
}
285+
this.#enableRename();
269286
e.preventDefault();
270287
}
271288

272289
#handleBlur() {
273290
this.$labelButton.classList.remove('hide');
274291
this.$actions.classList.remove('hide');
275292
this.$input.classList.add('hide');
276-
this.$labelButton.focus();
293+
this.$labelButton.click();
277294
this.dispatchEvent(new CustomEvent('rename', {
278295
bubbles: true,
279296
composed: true,
@@ -315,7 +332,7 @@ export default class PgTreeItem extends HTMLElement {
315332
this.$actions.classList.remove('hide');
316333
this.$input.classList.add('hide');
317334
this.$input.value = this.label;
318-
this.$labelButton.focus();
335+
this.$labelButton.click();
319336
break;
320337
case 'ArrowUp':
321338
this.dispatchEvent(new CustomEvent('up', {

0 commit comments

Comments
 (0)