Skip to content

Commit a527945

Browse files
authored
Merge pull request #1115 from Adez017/revert-fixes
removed the empty progress on broadcast page
2 parents e177558 + 5e58f5c commit a527945

File tree

1 file changed

+10
-28
lines changed

1 file changed

+10
-28
lines changed

src/pages/broadcasts/index.tsx

Lines changed: 10 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -7,23 +7,20 @@ import "./video.css";
77
interface VideoData {
88
id: string;
99
youtubeUrl: string;
10-
type: "video" | "live" | "other"; // Changed type to include 'live' and 'other'
10+
type: "video" | "live" | "other";
1111
}
1212

1313
const getYoutubeVideoId = (url: string): string => {
14-
// Handle youtu.be short links
1514
if (url.includes("youtu.be/")) {
1615
const match = url.match(/youtu\.be\/([^?&\s]+)/);
1716
return match ? match[1].split("?")[0] : "";
1817
}
1918

20-
// Handle youtube.com/watch?v= links
2119
if (url.includes("youtube.com/watch")) {
2220
const match = url.match(/[?&]v=([^&\s]+)/);
2321
return match ? match[1].split("&")[0] : "";
2422
}
2523

26-
// Handle youtube.com/shorts/ links
2724
if (url.includes("youtube.com/shorts/")) {
2825
const match = url.match(/shorts\/([^?&\s]+)/);
2926
return match ? match[1].split("?")[0] : "";
@@ -32,7 +29,6 @@ const getYoutubeVideoId = (url: string): string => {
3229
return "";
3330
};
3431

35-
// Updated function to determine video type
3632
const getYoutubeContentType = (url: string): "video" | "live" | "other" => {
3733
if (
3834
url.includes("youtu.be/rbi6XhWp2TU") ||
@@ -42,14 +38,12 @@ const getYoutubeContentType = (url: string): "video" | "live" | "other" => {
4238
) {
4339
return "live";
4440
} else if (url.includes("/shorts/")) {
45-
return "other"; // Changed 'shorts' to 'other'
41+
return "other";
4642
} else {
4743
return "video";
4844
}
4945
};
5046

51-
// Youtube Video URLS
52-
// List of both videos and shorts which will be handeled by the component
5347
const videoUrls: string[] = [
5448
"https://youtu.be/3dnQ2lDNeGI?list=PLrLTYhoDFx-kiuFiGQqVpYYZ56pIhUW63",
5549
"https://youtu.be/XWjx-RjmhRM?list=PLrLTYhoDFx-kiuFiGQqVpYYZ56pIhUW63",
@@ -82,15 +76,13 @@ const VideoCard: React.FC<{
8276
const [thumbnailUrl, setThumbnailUrl] = useState("");
8377
const videoId = getYoutubeVideoId(video.youtubeUrl);
8478

85-
// Try different thumbnail qualities in sequence
8679
const tryThumbnailUrl = (url: string) => {
8780
if (!videoId) return;
8881

8982
const img = new Image();
90-
img.crossOrigin = "anonymous"; // Handle CORS if needed
83+
img.crossOrigin = "anonymous";
9184

9285
img.onload = () => {
93-
// Only set the URL if it's not an error image
9486
if (img.width > 0 && img.height > 0) {
9587
setThumbnailUrl(url);
9688
} else {
@@ -106,28 +98,22 @@ const VideoCard: React.FC<{
10698
console.log(`Failed to load thumbnail: ${failedUrl}`);
10799

108100
if (failedUrl.includes("maxresdefault")) {
109-
// Try hqdefault if maxresdefault fails
110101
tryThumbnailUrl(`https://i.ytimg.com/vi/${videoId}/hqdefault.jpg`);
111102
} else if (failedUrl.includes("hqdefault")) {
112-
// Try mqdefault if hqdefault fails
113103
tryThumbnailUrl(`https://i.ytimg.com/vi/${videoId}/mqdefault.jpg`);
114104
} else if (failedUrl.includes("mqdefault")) {
115-
// Try default if mqdefault fails
116105
tryThumbnailUrl(`https://i.ytimg.com/vi/${videoId}/default.jpg`);
117106
} else {
118-
// All options failed, show placeholder
119107
setThumbnailUrl("");
120108
}
121109
};
122110

123111
useEffect(() => {
124112
if (!videoId) return;
125113

126-
// Start with the highest quality thumbnail
127114
console.log(`Loading thumbnails for video ID: ${videoId}`);
128115
tryThumbnailUrl(`https://i.ytimg.com/vi/${videoId}/maxresdefault.jpg`);
129116

130-
// Also try the first frame as a fallback (sometimes works when others don't)
131117
const firstFrameUrl = `https://img.youtube.com/vi/${videoId}/0.jpg`;
132118
setTimeout(() => {
133119
if (!thumbnailUrl) {
@@ -136,7 +122,6 @@ const VideoCard: React.FC<{
136122
}
137123
}, 1000);
138124

139-
// Fetch video title
140125
const fetchVideoTitle = async () => {
141126
try {
142127
const response = await fetch(
@@ -171,7 +156,6 @@ const VideoCard: React.FC<{
171156
>
172157
{title}
173158
</div>
174-
<div className="video-type"></div>
175159
</div>
176160
<div className="video-thumbnail">
177161
<div className="thumbnail-container">
@@ -185,7 +169,6 @@ const VideoCard: React.FC<{
185169
onError={(e) => {
186170
const img = e.target as HTMLImageElement;
187171
console.log("Image error:", img.src);
188-
// Let the parent component handle the error
189172
setThumbnailUrl("");
190173
}}
191174
/>
@@ -194,7 +177,6 @@ const VideoCard: React.FC<{
194177
<span>Loading thumbnail...</span>
195178
</div>
196179
)}
197-
{/* Play button removed as per request */}
198180
</div>
199181
</div>
200182
</div>
@@ -253,7 +235,7 @@ const Pagination: React.FC<{
253235
function BroadcastsPage(): ReactElement {
254236
const history = useHistory();
255237
const [currentPage, setCurrentPage] = useState(1);
256-
const [activeTab, setActiveTab] = useState<"videos" | "live">("videos"); // Changed 'shorts' to 'live'
238+
const [activeTab, setActiveTab] = useState<"videos" | "live">("videos");
257239
const videosPerPage = 12;
258240

259241
const videoData: VideoData[] = videoUrls.map((url, index) => ({
@@ -263,7 +245,7 @@ function BroadcastsPage(): ReactElement {
263245
}));
264246

265247
const regularVideos = videoData.filter((video) => video.type === "video");
266-
const liveVideos = videoData.filter((video) => video.type === "live"); // Changed 'shorts' to 'live'
248+
const liveVideos = videoData.filter((video) => video.type === "live");
267249
const otherVideos = videoData.filter((video) => video.type === "other");
268250

269251
const indexOfLastVideo = currentPage * videosPerPage;
@@ -276,11 +258,11 @@ function BroadcastsPage(): ReactElement {
276258
const paginatedLiveVideos = liveVideos.slice(
277259
indexOfFirstVideo,
278260
indexOfLastVideo,
279-
); // Changed 'shorts' to 'live'
261+
);
280262
const totalPages = Math.ceil(
281263
(activeTab === "videos" ? regularVideos.length : liveVideos.length) /
282264
videosPerPage,
283-
); // Changed 'shorts' to 'live'
265+
);
284266

285267
useEffect(() => {
286268
setCurrentPage(1);
@@ -312,7 +294,7 @@ function BroadcastsPage(): ReactElement {
312294
🎥 Videos
313295
</button>
314296
<button
315-
className={`tab-button ${activeTab === "live" ? "active" : ""}`} // Changed 'shorts' to 'live'
297+
className={`tab-button ${activeTab === "live" ? "active" : ""}`}
316298
onClick={() => setActiveTab("live")}
317299
>
318300
🔴 Past Live
@@ -334,11 +316,11 @@ function BroadcastsPage(): ReactElement {
334316
</>
335317
)}
336318

337-
{activeTab === "live" && ( // Changed 'shorts' to 'live'
319+
{activeTab === "live" && (
338320
<>
339321
<VideoSection
340322
title="Past Live Videos"
341-
videos={paginatedLiveVideos} // Changed 'shorts' to 'live'
323+
videos={paginatedLiveVideos}
342324
onClick={handleVideoClick}
343325
/>
344326
<Pagination

0 commit comments

Comments
 (0)