+ {/* Mobile Layout */}
+
+
+ {/* Poster Section */}
+
+
+
+
+ {/* Basic Info Section */}
+
+ {/* Title */}
+
+
+
+
+
+ {/* Tags */}
+
+
+
+
+ {/* Overview */}
+
+
+
+
+
+
+ {/* Watch Button */}
+
+
+
+
+ {/* Details Section */}
+
+
+
+
+
+ {/* Genres */}
+
+
+ {/* Studios & Producers */}
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+ {/* Desktop Layout */}
+
+
+ {/* Poster Section */}
+
+
+
+
+ {/* Info Section */}
+
+ {/* Title */}
+
+
+
+
+
+ {/* Tags */}
+
+
+
+
+ {/* Overview */}
+
+
+
+
+ {/* Watch Button */}
+
+
+ {/* Details Section */}
+
+
+
+
+
+ {/* Genres */}
+
+
+ {/* Studios & Producers */}
+
+
+
+
+
-
-
+
+ {/* Recommendations Section */}
+
+
-
-
-
-
>
);
}
+
export default AnimeInfoLoader;
diff --git a/src/components/Loader/AtoZ.loader.jsx b/src/components/Loader/AtoZ.loader.jsx
index 8c9ba62..1f9beab 100644
--- a/src/components/Loader/AtoZ.loader.jsx
+++ b/src/components/Loader/AtoZ.loader.jsx
@@ -2,25 +2,44 @@ import { Skeleton } from "../ui/Skeleton/Skeleton";
import CategoryCardLoader from "./CategoryCard.loader";
const SkeletonItems = ({ count, className }) => (
- [...Array(count)].map((_, index) =>
)
+ [...Array(count)].map((_, index) =>
)
);
function AtoZLoader() {
- return (
-
- );
+ const gridClass = "grid-cols-8 max-[1600px]:grid-cols-6 max-[1200px]:grid-cols-4 max-[758px]:grid-cols-3 max-[478px]:grid-cols-3 max-[478px]:gap-x-2";
+
+ return (
+
+
+
+
+ {[...Array(38)].map((_, index) => (
+
+ ))}
+
+
+
+
+
+
+ {[...Array(5)].map((_, index) => (
+
+ ))}
+
+
+
+
+ );
}
export default AtoZLoader;
diff --git a/src/components/Loader/Category.loader.jsx b/src/components/Loader/Category.loader.jsx
index 45a6b21..96bd880 100644
--- a/src/components/Loader/Category.loader.jsx
+++ b/src/components/Loader/Category.loader.jsx
@@ -1,23 +1,43 @@
-import { Skeleton } from "../ui/Skeleton/Skeleton"
-import CategoryCardLoader from "./CategoryCard.loader"
-import SidecardLoader from "./Sidecard.loader"
+import { Skeleton } from "../ui/Skeleton/Skeleton";
+import CategoryCardLoader from "./CategoryCard.loader";
+import SidecardLoader from "./Sidecard.loader";
+
+const GenreLoader = () => (
+
+ {[...Array(8)].map((_, index) => (
+
+ ))}
+
+);
function CategoryLoader() {
- return (
-
-
-
-
-
-
+ return (
+
+
+
+
+
+
+
+
+ {[...Array(5)].map((_, index) => (
+
+ ))}
+
- )
+
+
+
+
+
+
+ );
}
-export default CategoryLoader
\ No newline at end of file
+export default CategoryLoader;
\ No newline at end of file
diff --git a/src/components/Loader/CategoryCard.loader.jsx b/src/components/Loader/CategoryCard.loader.jsx
index c170069..2d14064 100644
--- a/src/components/Loader/CategoryCard.loader.jsx
+++ b/src/components/Loader/CategoryCard.loader.jsx
@@ -1,30 +1,27 @@
import { Skeleton } from "../ui/Skeleton/Skeleton";
-function CategoryCardLoader({ className, showLabelSkeleton = true }) {
+function CategoryCardLoader({ className, showLabelSkeleton = true, gridClass }) {
return (
{showLabelSkeleton && (
)}
-
- {[...Array(12)].map((_, index) => (
+
+ {[...Array(24)].map((_, index) => (
@@ -33,3 +30,4 @@ function CategoryCardLoader({ className, showLabelSkeleton = true }) {
}
export default CategoryCardLoader;
+
diff --git a/src/components/Loader/Home.loader.jsx b/src/components/Loader/Home.loader.jsx
index 21f8491..6068a78 100644
--- a/src/components/Loader/Home.loader.jsx
+++ b/src/components/Loader/Home.loader.jsx
@@ -1,28 +1,93 @@
-import CartLoader from "./Cart.loader";
+import { Skeleton } from "../ui/Skeleton/Skeleton";
import CategoryCardLoader from "./CategoryCard.loader";
import SidecardLoader from "./Sidecard.loader";
import SpotlightLoader from "./Spotlight.loader";
-import Trendingloader from "./Trending.loader";
+import TrendingLoader from "./Trending.loader";
+
+const GenreLoader = () => (
+
+ {[...Array(8)].map((_, index) => (
+
+ ))}
+
+);
+
+const ContinueWatchingLoader = () => (
+
+
+
+ {[...Array(6)].map((_, index) => (
+
+
+
+
+ ))}
+
+
+);
+
+const ScheduleLoader = () => (
+
+
+
+ {[...Array(6)].map((_, index) => (
+
+ ))}
+
+
+);
+
+const TabbedAnimeSectionLoader = () => (
+
+
+ {[...Array(3)].map((_, index) => (
+
+ ))}
+
+
+ {[...Array(12)].map((_, index) => (
+
+
+
+
+ ))}
+
+
+);
+
function HomeLoader() {
return (
-
+
-
-
-
-
-
-
+
+
-
diff --git a/src/components/Loader/Producer.loader.jsx b/src/components/Loader/Producer.loader.jsx
index b48b908..50c91f9 100644
--- a/src/components/Loader/Producer.loader.jsx
+++ b/src/components/Loader/Producer.loader.jsx
@@ -1,12 +1,28 @@
+import { Skeleton } from "../ui/Skeleton/Skeleton";
import CategoryCardLoader from "./CategoryCard.loader";
-import SidecardLoader from "./Sidecard.loader";
function ProducerLoader() {
+ const gridClass = "grid-cols-8 max-[1600px]:grid-cols-6 max-[1200px]:grid-cols-4 max-[758px]:grid-cols-3 max-[478px]:grid-cols-3 max-[478px]:gap-x-2";
+
return (
-
-
-
-
+
+
+
+
+
+
+ {[...Array(5)].map((_, index) => (
+
+ ))}
+
+
);
diff --git a/src/components/producer/Producer.jsx b/src/components/producer/Producer.jsx
index f1ff8d9..c1c0580 100644
--- a/src/components/producer/Producer.jsx
+++ b/src/components/producer/Producer.jsx
@@ -50,7 +50,7 @@ function Producer() {
const producerName = (id.charAt(0).toUpperCase() + id.slice(1)).split("-").join(" ");
return (
-
+
{loading ? (
@@ -71,8 +71,8 @@ function Producer() {
+
Sort By Letters
@@ -91,8 +91,8 @@ function AtoZ({ path }) {
data={categoryInfo}
limit={categoryInfo.length}
showViewMore={false}
- className="mt-0"
- cardStyle="max-[1400px]:h-[35vw]"
+ className="mt-8"
+ cardStyle="grid-cols-8 max-[1600px]:grid-cols-6 max-[1200px]:grid-cols-4 max-[758px]:grid-cols-3 max-[478px]:grid-cols-3 max-[478px]:gap-x-2"
/>
)}
diff --git a/src/pages/search/Search.jsx b/src/pages/search/Search.jsx
index 076714c..8f53c21 100644
--- a/src/pages/search/Search.jsx
+++ b/src/pages/search/Search.jsx
@@ -36,11 +36,13 @@ function Search() {
setSearchParams({ keyword, page: newPage });
};
+ const searchGridClass = "grid-cols-8 max-[1600px]:grid-cols-6 max-[1200px]:grid-cols-4 max-[758px]:grid-cols-3 max-[478px]:grid-cols-3 max-[478px]:gap-x-2";
+
return (
-
+
{loading ? (
-
+
) : page > totalPages ? (
@@ -59,7 +61,7 @@ function Search() {
data={searchData}
showViewMore={false}
className="mt-0"
- cardStyle="max-[1400px]:h-[35vw]"
+ gridClass={searchGridClass}
/>