aboutsummaryrefslogtreecommitdiff
path: root/src/app
diff options
context:
space:
mode:
authorreal-zephex <[email protected]>2024-04-07 13:10:56 +0530
committerGitHub <[email protected]>2024-04-07 13:10:56 +0530
commit7f8d767a38f9bbb2c514305ec3bf2b95ce1a4c4a (patch)
treebf69af70dda71b8fdd2cb8bc9638d595c4f26453 /src/app
parentMerge pull request #2 from real-zephex/kdrama-section-rewrite (diff)
parentsome minor fixes and qol improvements (diff)
downloaddramalama-7f8d767a38f9bbb2c514305ec3bf2b95ce1a4c4a.tar.xz
dramalama-7f8d767a38f9bbb2c514305ec3bf2b95ce1a4c4a.zip
Merge pull request #3 from real-zephex/kdrama-section-rewrite
minor fixes, will merge later
Diffstat (limited to 'src/app')
-rw-r--r--src/app/kdrama/[id]/buttons.jsx54
-rw-r--r--src/app/kdrama/components/cacher.js1
-rw-r--r--src/app/kdrama/components/searchQuery.js2
-rw-r--r--src/app/kdrama/loading.jsx9
-rw-r--r--src/app/kdrama/styles/info.module.css9
-rw-r--r--src/app/kdrama/styles/loading.module.css22
-rw-r--r--src/app/page.module.css11
7 files changed, 77 insertions, 31 deletions
diff --git a/src/app/kdrama/[id]/buttons.jsx b/src/app/kdrama/[id]/buttons.jsx
index 8ec633f..c760b96 100644
--- a/src/app/kdrama/[id]/buttons.jsx
+++ b/src/app/kdrama/[id]/buttons.jsx
@@ -1,7 +1,7 @@
"use client";
import styles from "../styles/info.module.css";
import getVideoLink from "../components/videoLink";
-import React, { useState } from "react";
+import React, { useEffect, useState } from "react";
import { MediaPlayer, MediaProvider } from "@vidstack/react";
import "@vidstack/react/player/styles/base.css";
import "@vidstack/react/player/styles/plyr/theme.css";
@@ -20,6 +20,23 @@ export default function EpisodesButtons({ data: episodeData, id: dramaId }) {
setEpisode(episodeText);
}
+ // Auto loads the first episode
+ useEffect(() => {
+ const fetchData = async () => {
+ try {
+ let firstVideoLink = episodeData[0].id;
+ let firstLink = await getVideoLink(firstVideoLink, dramaId);
+ setVideoLink(firstLink);
+ setEpisode("Episode 1");
+ } catch (error) {
+ console.log("Some error occured", error);
+ return;
+ }
+ };
+
+ fetchData();
+ }, []);
+
return (
<div>
<div className={styles.EpisodesContainer}>
@@ -38,22 +55,25 @@ export default function EpisodesButtons({ data: episodeData, id: dramaId }) {
))}
</div>
</div>
- {videoLink && (
- <div className={styles.VideoContainer}>
- <MediaPlayer
- title="dramaPlayer"
- src={videoLink}
- aspectRatio="16/9"
- load="eager"
- className={styles.VideoPlayer}
- playsInline
- >
- <MediaProvider />
- <PlyrLayout icons={plyrLayoutIcons} />
- </MediaPlayer>
- <p>{episode.toUpperCase()}</p>
- </div>
- )}
+
+ <div className={styles.VideoContainer}>
+ {videoLink && (
+ <div className={styles.Video}>
+ <MediaPlayer
+ title="dramaPlayer"
+ src={videoLink}
+ aspectRatio="16/9"
+ load="eager"
+ className={styles.VideoPlayer}
+ playsInline
+ >
+ <MediaProvider />
+ <PlyrLayout icons={plyrLayoutIcons} />
+ </MediaPlayer>
+ <p>{episode}</p>
+ </div>
+ )}
+ </div>
</div>
);
}
diff --git a/src/app/kdrama/components/cacher.js b/src/app/kdrama/components/cacher.js
index b04c932..934fdd6 100644
--- a/src/app/kdrama/components/cacher.js
+++ b/src/app/kdrama/components/cacher.js
@@ -1,4 +1,5 @@
// This function pre-fetches all the video links for a drama in the background
+"use server";
export default async function PreFetchVideoLinks(data, dramaId) {
try {
diff --git a/src/app/kdrama/components/searchQuery.js b/src/app/kdrama/components/searchQuery.js
index 64e428b..cd02d43 100644
--- a/src/app/kdrama/components/searchQuery.js
+++ b/src/app/kdrama/components/searchQuery.js
@@ -1,3 +1,5 @@
+"use server";
+
export default async function FetchSearchTitle(title) {
const res = await fetch(
`https://consumet-api-di2e.onrender.com/movies/dramacool/${title}`,
diff --git a/src/app/kdrama/loading.jsx b/src/app/kdrama/loading.jsx
new file mode 100644
index 0000000..2415575
--- /dev/null
+++ b/src/app/kdrama/loading.jsx
@@ -0,0 +1,9 @@
+import styles from "./styles/loading.module.css";
+
+export default async function Loading() {
+ return (
+ <div className={styles.Main}>
+ <div className={styles.LoadingContainer}></div>;
+ </div>
+ );
+}
diff --git a/src/app/kdrama/styles/info.module.css b/src/app/kdrama/styles/info.module.css
index 90a33b5..3ff021f 100644
--- a/src/app/kdrama/styles/info.module.css
+++ b/src/app/kdrama/styles/info.module.css
@@ -89,15 +89,18 @@
.VideoContainer {
margin-top: 20px;
+}
+
+.Video {
display: flex;
- align-items: center;
flex-direction: column;
+ align-items: center;
}
-.VideoContainer p {
+.Video p {
color: white;
font-family: "Atkinson Hyperlegible";
- color: var(--neon-green);
+ color: var(--pastel-red);
}
.VideoPlayer {
diff --git a/src/app/kdrama/styles/loading.module.css b/src/app/kdrama/styles/loading.module.css
new file mode 100644
index 0000000..2a24411
--- /dev/null
+++ b/src/app/kdrama/styles/loading.module.css
@@ -0,0 +1,22 @@
+.Main {
+ height: 100vh;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+
+
+.LoadingContainer {
+ width: 50px;
+ height: 50px;
+ border-radius: 50%;
+ border: 8px solid;
+ border-color: #F4F4F4 #0000;
+ animation: s1 1s infinite;
+}
+
+@keyframes s1 {
+ to {
+ transform: rotate(.5turn)
+ }
+} \ No newline at end of file
diff --git a/src/app/page.module.css b/src/app/page.module.css
index 85f94db..1d3be60 100644
--- a/src/app/page.module.css
+++ b/src/app/page.module.css
@@ -13,15 +13,4 @@
font-family: "Quicksand";
font-size: 20px;
color: white;
-}
-
-.auth button {
- padding: 5px;
- margin: 5px;
- font-family: "Atkinson Hyperlegible";
- font-size: 16px;
- border: none;
- outline: none;
- border-radius: 5px;
- background-color: var(--neon-green);
} \ No newline at end of file