diff --git a/src/components/CourseCard.tsx b/src/components/CourseCard.tsx
index d0ca115d5..9a16e3258 100644
--- a/src/components/CourseCard.tsx
+++ b/src/components/CourseCard.tsx
@@ -21,12 +21,12 @@ export const CourseCard = ({
{course.totalVideos !== undefined &&
course.totalVideosWatched !== undefined && (
-
- )}
+
+ )}
diff --git a/src/components/Sidebar.tsx b/src/components/Sidebar.tsx
index 6bdac5d62..89f7469b1 100644
--- a/src/components/Sidebar.tsx
+++ b/src/components/Sidebar.tsx
@@ -157,16 +157,16 @@ export function ToggleButton({
);
diff --git a/src/components/VideoPlayer.tsx b/src/components/VideoPlayer.tsx
index ef1cbb434..92ef05e61 100644
--- a/src/components/VideoPlayer.tsx
+++ b/src/components/VideoPlayer.tsx
@@ -22,23 +22,23 @@ export const VideoPlayer = ({
}
const handleKeyPress = (event: any) => {
switch (event.code) {
- case 'Space': // Space bar for play/pause
- if (player.paused()) {
- player.play();
+ case 'Space': // Space bar for play/pause
+ if (player.paused()) {
+ player.play();
+ event.stopPropagation();
+ } else {
+ player.pause();
+ event.stopPropagation();
+ }
+ break;
+ case 'ArrowRight': // Right arrow for seeking forward 5 seconds
+ player.currentTime(player.currentTime() + 5);
event.stopPropagation();
- } else {
- player.pause();
+ break;
+ case 'ArrowLeft': // Left arrow for seeking backward 5 seconds
+ player.currentTime(player.currentTime() - 5);
event.stopPropagation();
- }
- break;
- case 'ArrowRight': // Right arrow for seeking forward 5 seconds
- player.currentTime(player.currentTime() + 5);
- event.stopPropagation();
- break;
- case 'ArrowLeft': // Left arrow for seeking backward 5 seconds
- player.currentTime(player.currentTime() - 5);
- event.stopPropagation();
- break;
+ break;
}
};
diff --git a/src/components/VideoPlayer2.tsx b/src/components/VideoPlayer2.tsx
index b14d2bfa1..258835548 100644
--- a/src/components/VideoPlayer2.tsx
+++ b/src/components/VideoPlayer2.tsx
@@ -57,6 +57,7 @@ export const VideoPlayer: FunctionComponent
= ({
let volumeSetTimeout: ReturnType | null = null;
const handleKeyPress = (event: any) => {
const isShiftPressed = event.shiftKey;
+ const tracks: TextTrackList = player.textTracks();
if (isShiftPressed) {
const currentIndexPeriod: number = PLAYBACK_RATES.indexOf(
player.playbackRate(),
@@ -77,40 +78,40 @@ export const VideoPlayer: FunctionComponent = ({
const newIndexDown =
currentIndexDown !== 0 ? currentIndexDown - 1 : currentIndexDown;
switch (event.code) {
- case 'Period': // Increase playback speed
- player.playbackRate(PLAYBACK_RATES[newIndexPeriod]);
- event.stopPropagation();
- break;
- case 'Comma': // Decrease playback speed
- player.playbackRate(PLAYBACK_RATES[newIndexComma]);
- event.stopPropagation();
- break;
- case 'ArrowUp': // Increase volume
- videoRef.current?.children[0].children[6].children[3].classList.add(
- 'vjs-hover',
- );
- if (volumeSetTimeout !== null) clearTimeout(volumeSetTimeout);
- volumeSetTimeout = setTimeout(() => {
- videoRef.current?.children[0].children[6].children[3].classList.remove(
+ case 'Period': // Increase playback speed
+ player.playbackRate(PLAYBACK_RATES[newIndexPeriod]);
+ event.stopPropagation();
+ break;
+ case 'Comma': // Decrease playback speed
+ player.playbackRate(PLAYBACK_RATES[newIndexComma]);
+ event.stopPropagation();
+ break;
+ case 'ArrowUp': // Increase volume
+ videoRef.current?.children[0].children[6].children[3].classList.add(
'vjs-hover',
);
- }, 1000);
- player.volume(VOLUME_LEVELS[newIndexUp]);
- event.stopPropagation();
- break;
- case 'ArrowDown': // Decrease volume
- videoRef.current?.children[0].children[6].children[3].classList.add(
- 'vjs-hover',
- );
- if (volumeSetTimeout !== null) clearTimeout(volumeSetTimeout);
- volumeSetTimeout = setTimeout(() => {
- videoRef.current?.children[0].children[6].children[3].classList.remove(
+ if (volumeSetTimeout !== null) clearTimeout(volumeSetTimeout);
+ volumeSetTimeout = setTimeout(() => {
+ videoRef.current?.children[0].children[6].children[3].classList.remove(
+ 'vjs-hover',
+ );
+ }, 1000);
+ player.volume(VOLUME_LEVELS[newIndexUp]);
+ event.stopPropagation();
+ break;
+ case 'ArrowDown': // Decrease volume
+ videoRef.current?.children[0].children[6].children[3].classList.add(
'vjs-hover',
);
- }, 1000);
- player.volume(VOLUME_LEVELS[newIndexDown]);
- event.stopPropagation();
- break;
+ if (volumeSetTimeout !== null) clearTimeout(volumeSetTimeout);
+ volumeSetTimeout = setTimeout(() => {
+ videoRef.current?.children[0].children[6].children[3].classList.remove(
+ 'vjs-hover',
+ );
+ }, 1000);
+ player.volume(VOLUME_LEVELS[newIndexDown]);
+ event.stopPropagation();
+ break;
}
} else if (event.code === 'KeyT') {
player.playbackRate(2);
@@ -126,70 +127,74 @@ export const VideoPlayer: FunctionComponent = ({
return; // Do nothing if the active element is an input or textarea
}
switch (event.code) {
- case 'Space': // Space bar for play/pause
- if (player.paused()) {
- player.play();
+ case 'Space': // Space bar for play/pause
+ if (player.paused()) {
+ player.play();
+ event.stopPropagation();
+ } else {
+ player.pause();
+ event.stopPropagation();
+ }
+ event.preventDefault();
+ break;
+ case 'ArrowRight': // Right arrow for seeking forward 5 seconds
+ player.currentTime(player.currentTime() + 5);
event.stopPropagation();
- } else {
- player.pause();
+ break;
+ case 'ArrowLeft': // Left arrow for seeking backward 5 seconds
+ player.currentTime(player.currentTime() - 5);
event.stopPropagation();
- }
- event.preventDefault();
- break;
- case 'ArrowRight': // Right arrow for seeking forward 5 seconds
- player.currentTime(player.currentTime() + 5);
- event.stopPropagation();
- break;
- case 'ArrowLeft': // Left arrow for seeking backward 5 seconds
- player.currentTime(player.currentTime() - 5);
- event.stopPropagation();
- break;
- case 'KeyF': // F key for fullscreen
- if (player.isFullscreen_) document.exitFullscreen();
- else player.requestFullscreen();
- event.stopPropagation();
- break;
- case 'KeyR': // 'R' key to restart playback from the beginning
- player.currentTime(0);
- event.stopPropagation();
- break;
- case 'KeyM': // 'M' key to toggle mute/unmute
- if (player.volume() === 0) {
- player.volume(1);
- } else {
- player.volume(0);
- }
- event.stopPropagation();
- break;
- case 'KeyK': // 'K' key for play/pause toggle
- if (player.paused()) {
- player.play();
- } else {
- player.pause();
- }
- event.stopPropagation();
- break;
- case 'KeyJ': // 'J' key for seeking backward 10 seconds multiplied by the playback rate
- player.currentTime(
- player.currentTime() - 10 * player.playbackRate(),
- );
- event.stopPropagation();
- break;
- case 'KeyL': // 'L' key for seeking forward 10 seconds multiplied by the playback rate
- player.currentTime(
- player.currentTime() + 10 * player.playbackRate(),
- );
- event.stopPropagation();
- break;
- case 'KeyC':
- if (subtitles && player.textTracks().length) {
- if (player.textTracks()[0].mode === 'showing') {
- player.textTracks()[0].mode = 'hidden';
+ break;
+ case 'KeyF': // F key for fullscreen
+ if (player.isFullscreen_) document.exitFullscreen();
+ else player.requestFullscreen();
+ event.stopPropagation();
+ break;
+ case 'KeyR': // 'R' key to restart playback from the beginning
+ player.currentTime(0);
+ event.stopPropagation();
+ break;
+ case 'KeyM': // 'M' key to toggle mute/unmute
+ if (player.volume() === 0) {
+ player.volume(1);
} else {
- player.textTracks()[0].mode = 'showing';
+ player.volume(0);
}
- }
- break;
+ event.stopPropagation();
+ break;
+ case 'KeyK': // 'K' key for play/pause toggle
+ if (player.paused()) {
+ player.play();
+ } else {
+ player.pause();
+ }
+ event.stopPropagation();
+ break;
+ case 'KeyJ': // 'J' key for seeking backward 10 seconds multiplied by the playback rate
+ player.currentTime(
+ player.currentTime() - 10 * player.playbackRate(),
+ );
+ event.stopPropagation();
+ break;
+ case 'KeyL': // 'L' key for seeking forward 10 seconds multiplied by the playback rate
+ player.currentTime(
+ player.currentTime() + 10 * player.playbackRate(),
+ );
+ event.stopPropagation();
+ break;
+ case 'KeyC':
+ for (let i = 0; i < tracks.length; i++) {
+ const track = tracks[i];
+
+ if (track.kind === 'subtitles' && track.language === 'en') {
+ if (track.mode === 'hidden') {
+ track.mode = 'showing';
+ } else {
+ track.mode = 'hidden';
+ }
+ }
+ }
+ break;
}
}
};
diff --git a/src/components/bookmark/BookmarkView.tsx b/src/components/bookmark/BookmarkView.tsx
index bed0c839d..649ca34cc 100644
--- a/src/components/bookmark/BookmarkView.tsx
+++ b/src/components/bookmark/BookmarkView.tsx
@@ -19,12 +19,12 @@ const BookmarkView = ({
{bookmarkData === null ||
'error' in bookmarkData ||
!bookmarkData.length ? (
-
-
No bookmark added yet!
-
- ) : (
-
- )}
+
+
No bookmark added yet!
+
+ ) : (
+
+ )}
);
diff --git a/src/components/landing/us-section/why-us-card/why-us-content.ts b/src/components/landing/us-section/why-us-card/why-us-content.ts
index 96f986b7f..302b9e830 100644
--- a/src/components/landing/us-section/why-us-card/why-us-content.ts
+++ b/src/components/landing/us-section/why-us-card/why-us-content.ts
@@ -51,6 +51,6 @@ export const whyUs: TwhyUs = [
tagline: 'Assignments',
headline: 'Learn by doing',
description:
- 'Harkirat personally creates assignments after every lecture, so it\'s extremely hands on.',
+ "Harkirat personally creates assignments after every lecture, so it's extremely hands on.",
},
];
diff --git a/src/db/course.ts b/src/db/course.ts
index b9a69ace6..348ba0bf9 100644
--- a/src/db/course.ts
+++ b/src/db/course.ts
@@ -54,7 +54,7 @@ export async function getAllCoursesAndContentHierarchy(): Promise<
contentId: number;
}[];
}[]
- > {
+> {
const value = await Cache.getInstance().get(
'getAllCoursesAndContentHierarchy',
[],
@@ -100,7 +100,7 @@ export async function getAllVideos(): Promise<
createdAt: Date;
notionMetadataId: number | null;
}[]
- > {
+> {
const value = await Cache.getInstance().get('getAllVideos', []);
if (value) {
return value;
@@ -252,13 +252,13 @@ export const getFullCourseContent = async (courseId: number) => {
videoProgress:
content.type === 'video'
? {
- duration: videoProgress.find((x) => x.contentId === content.id)
- ?.currentTimestamp,
- markAsCompleted: videoProgress.find(
- (x) => x.contentId === content.id,
- )?.markAsCompleted,
- videoFullDuration: content.VideoMetadata?.duration,
- }
+ duration: videoProgress.find((x) => x.contentId === content.id)
+ ?.currentTimestamp,
+ markAsCompleted: videoProgress.find(
+ (x) => x.contentId === content.id,
+ )?.markAsCompleted,
+ videoFullDuration: content.VideoMetadata?.duration,
+ }
: null,
},
]),
diff --git a/src/lib/utils.ts b/src/lib/utils.ts
index b63b64c8a..46120fa7d 100644
--- a/src/lib/utils.ts
+++ b/src/lib/utils.ts
@@ -265,17 +265,17 @@ export const constructCommentPrismaQuery = (
let orderBy: Prisma.Enumerable = {};
switch (commentfilter) {
- case CommentFilter.mu:
- orderBy = { upvotes: 'desc' };
- break;
- case CommentFilter.md:
- orderBy = { downvotes: 'desc' };
- break;
- case CommentFilter.mr:
- orderBy = { createdAt: 'desc' };
- break;
- default:
- orderBy = { upvotes: 'desc' };
+ case CommentFilter.mu:
+ orderBy = { upvotes: 'desc' };
+ break;
+ case CommentFilter.md:
+ orderBy = { downvotes: 'desc' };
+ break;
+ case CommentFilter.mr:
+ orderBy = { createdAt: 'desc' };
+ break;
+ default:
+ orderBy = { upvotes: 'desc' };
}
const where: Prisma.CommentWhereInput = {};