Feature: Watch Together - History, Titel-Fetch, Next-Button

Server:
- Video-History Tracking (max 50 Einträge pro Raum)
- History wird bei Skip und Play-Video gespeichert
- Server-seitiger Titel-Fetch via noembed.com als Fallback

Client:
- Aufklappbare History-Sektion im Queue-Panel
- "Weiter" Button mit Text-Label statt nur Icon
- YouTube-Thumbnails in der Warteschlange
- History in RoomState integriert

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Daniel 2026-03-07 15:31:56 +01:00
parent a1a1f31c8e
commit 6c57419959
3 changed files with 169 additions and 6 deletions

View file

@ -779,3 +779,92 @@
display: none;
}
}
/* ── History Section ── */
.wt-history-section {
border-top: 1px solid var(--bg-tertiary);
margin-top: 8px;
padding-top: 8px;
}
.wt-history-toggle {
width: 100%;
background: none;
border: none;
color: var(--text-muted);
font-size: 13px;
cursor: pointer;
padding: 6px 8px;
text-align: left;
border-radius: var(--radius);
transition: background var(--transition), color var(--transition);
}
.wt-history-toggle:hover {
background: var(--bg-tertiary);
color: var(--text-normal);
}
.wt-history-list {
max-height: 200px;
overflow-y: auto;
margin-top: 4px;
}
.wt-history-item {
display: flex;
flex-direction: column;
gap: 2px;
padding: 8px 10px;
border-radius: var(--radius);
opacity: 0.6;
transition: opacity var(--transition), background var(--transition);
}
.wt-history-item:hover {
opacity: 1;
background: var(--bg-tertiary);
}
.wt-history-item-title {
font-size: 13px;
color: var(--text-muted);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.wt-history-item-by {
font-size: 11px;
color: var(--text-faint);
}
/* ── Queue Thumbnail ── */
.wt-queue-item-info {
display: flex;
align-items: center;
gap: 10px;
min-width: 0;
flex: 1;
}
.wt-queue-thumb {
width: 48px;
height: 36px;
object-fit: cover;
border-radius: 4px;
flex-shrink: 0;
}
.wt-queue-item-text {
min-width: 0;
flex: 1;
}
/* ── Next Button ── */
.wt-next-btn {
display: flex;
align-items: center;
gap: 4px;
font-size: 13px;
padding: 6px 12px;
white-space: nowrap;
}