diff --git a/frontend/src/components/VideoCard.jsx b/frontend/src/components/VideoCard.jsx
index 792c202..497a18c 100644
--- a/frontend/src/components/VideoCard.jsx
+++ b/frontend/src/components/VideoCard.jsx
@@ -318,8 +318,8 @@ export default function VideoCard({ video, size = "md", onDismiss, variant = "gr
)}
- {/* Actions — always visible on mobile, fade on desktop */}
-
+ {/* Actions — hover only everywhere */}
+
{actions}
diff --git a/frontend/src/pages/Watch.jsx b/frontend/src/pages/Watch.jsx
index e27c0b9..3538c18 100644
--- a/frontend/src/pages/Watch.jsx
+++ b/frontend/src/pages/Watch.jsx
@@ -4,7 +4,7 @@ import { useQuery, useMutation, useQueryClient } from "@tanstack/react-query";
import {
getVideoByYtId, updateProgress, createDownload, getDownload, deleteDownload,
followChannelByUrl, toggleQueue, toggleLike, getChannelVideos, getChannel,
- getSettings, updateSettings, getRelatedVideos, getDownloads, rateVideo,
+ getSettings, updateSettings, getRelatedVideos, getDownloads,
getBookmarks, createBookmark, updateBookmark, deleteBookmark, importChapters, clearChapters,
getCollections, addToCollection, getQueue,
getVideoComments, refreshVideoComments,
@@ -561,7 +561,6 @@ export default function Watch() {
const [currentTime, setCurrentTime] = useState(0);
const [queued, setQueued] = useState(null);
const [liked, setLiked] = useState(null);
- const [rating, setRating] = useState(null);
const [selectedQuality, setSelectedQuality] = useState(null);
const [speed, setSpeed] = useState(1);
const [autoplay, setAutoplay] = useState(false);
@@ -773,11 +772,6 @@ export default function Watch() {
onSuccess: (res) => { setLiked(res.data.liked); qc.invalidateQueries({ queryKey: ["liked-videos"] }); },
});
- const rateMut = useMutation({
- mutationFn: (r) => rateVideo(video.id, r),
- onSuccess: (res) => setRating(res.data.rating),
- });
-
const handlePiP = useCallback(async () => {
if (!videoRef.current) return;
try {
@@ -793,7 +787,6 @@ export default function Watch() {
const startAt = video?.watch_progress_seconds ?? 0;
const isQueued = queued ?? video?.queued ?? false;
const isLiked = liked ?? video?.liked ?? false;
- const currentRating = rating ?? video?.rating ?? null;
const dlComplete = dlStatus?.status === "complete" || video?.is_downloaded;
const isFollowed = followMut.isSuccess || video?.channel_followed;
const subs = formatSubs(channel?.subscriber_count);
@@ -844,7 +837,7 @@ export default function Watch() {
{/* ── Left: video + info ───────────────────────────────────────────── */}
-
+
{/* Player */}
@@ -981,32 +974,6 @@ export default function Watch() {
)}
- {video?.id && (
- <>
-
rateMut.mutate(currentRating === 1 ? 0 : 1)}
- disabled={rateMut.isPending}
- >
-
- Good
-
-
rateMut.mutate(currentRating === -1 ? 0 : -1)}
- disabled={rateMut.isPending}
- >
-
- Not for me
-
- >
- )}
{video?.id && (
queueMut.mutate()} disabled={queueMut.isPending}>
@@ -1018,16 +985,15 @@ export default function Watch() {
)}
{fileReady && document.pictureInPictureEnabled && (
-
+
- Mini
)}
- setTheater(t => !t)}>
+ setTheater(t => !t)} title={theater ? "Exit theater" : "Theater mode"}>
- Theater