Skip to content

Commit d18e6ef

Browse files
committed
Queue add buttons for moving video
1 parent 82e7b6f commit d18e6ef

4 files changed

Lines changed: 35 additions & 7 deletions

File tree

src/scripts/content/queue/listener.ts

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,15 @@ export function clickElements(this: Queue, e: MouseEvent) {
1212
if (i === -1)
1313
return;
1414
const r = (e.target as HTMLElement).closest('.r');
15-
if (r === null)
16-
this.goto(i);
17-
else
18-
this.remove(i);
15+
if (r !== null)
16+
return this.remove(i);
17+
const u = (e.target as HTMLElement).closest('.up');
18+
if (u !== null)
19+
return this.move(i, i - 1);
20+
const d = (e.target as HTMLElement).closest('.down');
21+
if (d !== null)
22+
return this.move(i, i + 1);
23+
this.goto(i);
1924
}
2025

2126
export function clickTop(this: Queue, e: MouseEvent) {

src/scripts/content/queue/transform.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ export function toggle(this: Queue) {
1414
}
1515

1616
export function move(this: Queue, orig: number, index: number) {
17+
if (index < 0 || index >= this.queue.length) return;
1718
const [ name, elem ] = this.queue.splice2(orig, 1);
1819
if (this.queuepos >= 0) {
1920
// adjust index based on new and old positions, difference always 1 (except when moving current)

src/scripts/helpers/VideoQueue.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import iconDelete from '../../icons/delete.svg';
2+
import iconNext from '../../icons/next.svg';
23
import iconPlay from '../../icons/play.svg';
34
import { callback as ArrayCallback, DOMArray } from './DOMArray';
45

@@ -24,7 +25,7 @@ export class VideoArray extends DOMArray<string> {
2425
const n = document.createElement('div');
2526
n.className = 'element';
2627
n.innerHTML = `
27-
<div class="drag">&#x2630;</div>
28+
<div class="drag"><span class="up clickable">${iconNext}</span><span class="handle">&#x2630;</span><span class="down clickable">${iconNext}</span></div>
2829
<div class="thumb">
2930
<img src="${this.store[name].thumbnail}" draggable="false" />
3031
<div class="play">${iconPlay}</div>

src/styles/queue/queue.scss

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
@import '../helpers/mixins';
22
@import '../helpers/variables';
33

4+
$disabled_alpha: 0.55;
5+
46
%hidden {
57
display: none;
68
}
@@ -61,6 +63,7 @@
6163

6264
.clickable {
6365
cursor: pointer;
66+
opacity: 1;
6467
}
6568

6669
.top::after, .element::before {
@@ -120,7 +123,7 @@
120123
}
121124

122125
.prev, .next {
123-
opacity: 0.55;
126+
opacity: $disabled_alpha;
124127

125128
&.clickable {
126129
opacity: 1;
@@ -150,7 +153,25 @@
150153
text-align: center;
151154
width: 22px;
152155
flex-shrink: 0;
153-
cursor: move;
156+
157+
.handle {
158+
cursor: move;
159+
}
160+
}
161+
162+
$nextscale: 0.6;
163+
164+
.up svg {
165+
transform: scale($nextscale) rotate(-90deg);
166+
}
167+
168+
.down svg {
169+
transform: scale($nextscale) rotate(90deg);
170+
}
171+
172+
&:first-child .up, &:last-child .down {
173+
opacity: $disabled_alpha;
174+
cursor: initial;
154175
}
155176

156177
img {

0 commit comments

Comments
 (0)