mirror of
https://github.com/zoldar/jenot.git
synced 2026-01-03 14:32:54 +00:00
Fix drag handle and focus issues
This commit is contained in:
parent
5061e785c4
commit
c1bb17b299
3 changed files with 33 additions and 6 deletions
|
|
@ -90,7 +90,7 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<template id="task-list-item">
|
<template id="task-list-item">
|
||||||
<div class="handle"><button>||</button></div>
|
<div class="handle">||</div>
|
||||||
<div class="checkbox"><input type="checkbox" /></div>
|
<div class="checkbox"><input type="checkbox" /></div>
|
||||||
<editable-area></editable-area>
|
<editable-area></editable-area>
|
||||||
<div class="remove"><button>X</button></div>
|
<div class="remove"><button>X</button></div>
|
||||||
|
|
|
||||||
|
|
@ -161,7 +161,15 @@ class TaskListItem extends HTMLElement {
|
||||||
// drag and drop events
|
// drag and drop events
|
||||||
|
|
||||||
this.parentNode.addEventListener("dragstart", (e) => {
|
this.parentNode.addEventListener("dragstart", (e) => {
|
||||||
this.parentNode.classList.add("dragging");
|
const isHandle = e.explicitOriginalTarget.closest
|
||||||
|
? e.explicitOriginalTarget.closest(".handle")
|
||||||
|
: e.explicitOriginalTarget.parentNode.closest(".handle");
|
||||||
|
|
||||||
|
if (isHandle) {
|
||||||
|
this.parentNode.classList.add("dragging");
|
||||||
|
} else {
|
||||||
|
e.preventDefault();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
this.parentNode.addEventListener("dragend", () => {
|
this.parentNode.addEventListener("dragend", () => {
|
||||||
|
|
@ -457,6 +465,12 @@ class NoteForm extends HTMLElement {
|
||||||
this.saveButton = this.querySelector(".save");
|
this.saveButton = this.querySelector(".save");
|
||||||
|
|
||||||
this.addEventListener("click", (e) => {
|
this.addEventListener("click", (e) => {
|
||||||
|
const textareaInside = e.target.querySelector("textarea");
|
||||||
|
if (textareaInside) {
|
||||||
|
textareaInside.focus();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
if (
|
if (
|
||||||
!(
|
!(
|
||||||
e.target instanceof HTMLInputElement ||
|
e.target instanceof HTMLInputElement ||
|
||||||
|
|
|
||||||
|
|
@ -5,9 +5,10 @@
|
||||||
--font-color: #222;
|
--font-color: #222;
|
||||||
--button-text-color: #222;
|
--button-text-color: #222;
|
||||||
--background: #eee;
|
--background: #eee;
|
||||||
--note-background: beige;
|
--note-background: bisque;
|
||||||
|
--highlight-color: beige;
|
||||||
--shadow-color: rgb(0 0 0 / 0.8);
|
--shadow-color: rgb(0 0 0 / 0.8);
|
||||||
--button-background: lightray;
|
--button-background: lightgray;
|
||||||
--inactive-color: gray;
|
--inactive-color: gray;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -17,6 +18,7 @@
|
||||||
--button-text-color: black;
|
--button-text-color: black;
|
||||||
--background: #222;
|
--background: #222;
|
||||||
--note-background: dimgray;
|
--note-background: dimgray;
|
||||||
|
--highlight-color: gray;
|
||||||
--shadow-color: rgb(211 211 211 / 0.8);
|
--shadow-color: rgb(211 211 211 / 0.8);
|
||||||
--button-background: silver;
|
--button-background: silver;
|
||||||
--inactive-color: lightgray;
|
--inactive-color: lightgray;
|
||||||
|
|
@ -137,13 +139,16 @@ editable-area textarea:focus {
|
||||||
task-list ul {
|
task-list ul {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
gap: 5px;
|
|
||||||
wdith: 100%;
|
wdith: 100%;
|
||||||
list-style-type: none;
|
list-style-type: none;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
task-list ul {
|
||||||
|
padding: 4px 0;
|
||||||
|
}
|
||||||
|
|
||||||
task-list li:has(.checkbox input:checked) {
|
task-list li:has(.checkbox input:checked) {
|
||||||
order: 1;
|
order: 1;
|
||||||
}
|
}
|
||||||
|
|
@ -153,6 +158,10 @@ task-list-item .remove {
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (hover: hover) and (pointer: fine) {
|
@media (hover: hover) and (pointer: fine) {
|
||||||
|
task-list li:hover {
|
||||||
|
background: var(--highlight-color);
|
||||||
|
}
|
||||||
|
|
||||||
task-list li:hover .remove {
|
task-list li:hover .remove {
|
||||||
visibility: visible;
|
visibility: visible;
|
||||||
}
|
}
|
||||||
|
|
@ -181,7 +190,11 @@ task-list-item {
|
||||||
align-items: baseline;
|
align-items: baseline;
|
||||||
}
|
}
|
||||||
|
|
||||||
task-list-item .handle button {
|
task-list-item .handle {
|
||||||
|
margin: 2px 0;
|
||||||
|
padding: 4px 8px;
|
||||||
|
color: var(--button-text-color);
|
||||||
|
background: var(--button-background);
|
||||||
cursor: grab;
|
cursor: grab;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue