From 31cad16403615eb0747cd258251eaf77ef6ebb6d Mon Sep 17 00:00:00 2001
From: thePR0M3TH3AN <53631862+PR0M3TH3AN@users.noreply.github.com>
Date: Wed, 8 Oct 2025 09:47:44 -0400
Subject: [PATCH 1/5] feat: highlight private videos for owners
---
css/style.css | 10 ++++++++++
js/channelProfile.js | 4 ++++
js/ui/components/VideoCard.js | 3 ++-
js/ui/views/VideoListView.js | 5 ++---
4 files changed, 18 insertions(+), 4 deletions(-)
diff --git a/css/style.css b/css/style.css
index 37694f0f..5b7818a4 100644
--- a/css/style.css
+++ b/css/style.css
@@ -8,6 +8,7 @@
--color-surface: #0f172a;
--color-bg: var(--color-surface);
--color-card: #1e293b;
+ --color-card-private: #3b1d74;
--color-primary: #fe0032;
--color-secondary: #ff93a5;
--color-card-critical: #3f0b13;
@@ -167,6 +168,15 @@ header img {
box-shadow: var(--shadow-md);
}
+.video-card.video-card--owner-private {
+ background-color: var(--color-card-private) !important;
+ box-shadow: 0 0 0 0.125rem rgba(168, 85, 247, 0.55), var(--shadow-md);
+}
+
+.video-card.video-card--owner-private:hover {
+ box-shadow: 0 0 0 0.125rem rgba(192, 132, 252, 0.65), var(--shadow-lg);
+}
+
.video-card[data-owner-is-viewer="false"][data-url-health-state="offline"][data-stream-health-state="unhealthy"] {
display: none;
}
diff --git a/js/channelProfile.js b/js/channelProfile.js
index 336fda23..deff1985 100644
--- a/js/channelProfile.js
+++ b/js/channelProfile.js
@@ -1819,6 +1819,9 @@ function renderChannelVideosFromList({
? app.formatTimeAgo(video.created_at)
: new Date(video.created_at * 1000).toLocaleString();
+ const highlightClass =
+ canEdit && video.isPrivate ? "video-card--owner-private" : "";
+
const videoCard = new VideoCard({
document,
video,
@@ -1826,6 +1829,7 @@ function renderChannelVideosFromList({
shareUrl,
pointerInfo,
timeAgo,
+ highlightClass,
capabilities: {
canEdit,
canDelete: canEdit,
diff --git a/js/ui/components/VideoCard.js b/js/ui/components/VideoCard.js
index 8c08f6a6..bbdb561f 100644
--- a/js/ui/components/VideoCard.js
+++ b/js/ui/components/VideoCard.js
@@ -28,7 +28,8 @@ export class VideoCard {
this.video = video;
this.index = index;
this.shareUrl = shareUrl;
- this.highlightClass = highlightClass || "";
+ this.highlightClass =
+ typeof highlightClass === "string" ? highlightClass : "";
this.animationClass = animationClass || "";
this.pointerInfo = pointerInfo;
this.capabilities = {
diff --git a/js/ui/views/VideoListView.js b/js/ui/views/VideoListView.js
index 91ce4050..d0d77467 100644
--- a/js/ui/views/VideoListView.js
+++ b/js/ui/views/VideoListView.js
@@ -321,9 +321,8 @@ export class VideoListView {
const shareUrl = this.buildShareUrl(video, shareBase);
const canEdit = this.utils.canEditVideo(video);
const canDelete = this.utils.canDeleteVideo(video);
- const highlightClass = canEdit && video.isPrivate
- ? "border-2 border-yellow-500"
- : "border-none";
+ const highlightClass =
+ canEdit && video.isPrivate ? "video-card--owner-private" : "";
const isNewlyRendered = !previouslyRenderedIds.has(video.id);
const animationClass = isNewlyRendered ? "video-card--enter" : "";
const timeAgo = this.formatters.formatTimeAgo(video.created_at);
From fb07d706b1474ef15a5e4747ed3f94cbf1f87857 Mon Sep 17 00:00:00 2001
From: thePR0M3TH3AN <53631862+PR0M3TH3AN@users.noreply.github.com>
Date: Wed, 8 Oct 2025 10:07:19 -0400
Subject: [PATCH 2/5] Add visibility toggle to edit modal
---
components/edit-video-modal.html | 55 ++++++++++
css/style.css | 51 +++++++++
js/ui/components/EditModal.js | 171 ++++++++++++++++++++++++++++++-
3 files changed, 276 insertions(+), 1 deletion(-)
diff --git a/components/edit-video-modal.html b/components/edit-video-modal.html
index a3541d9c..9b2d9545 100644
--- a/components/edit-video-modal.html
+++ b/components/edit-video-modal.html
@@ -199,6 +199,59 @@
+
+
+ Visibility
+
+
+
+
+
+
+
+
+
+
+ Private notes stay visible only to you. Switch back to public when you're ready to share.
+
+
+
+
+