diff --git a/src/components/_albums/_ImageList.tsx b/src/components/_albums/_ImageList.tsx
deleted file mode 100644
index 7585898..0000000
--- a/src/components/_albums/_ImageList.tsx
+++ /dev/null
@@ -1,41 +0,0 @@
-import { Image } from "@/generated/prisma";
-import clsx from "clsx";
-import NextImage from "next/image";
-import Link from "next/link";
-
-export default function ImageList({ images, gallerySlug, albumSlug }: { images: Image[], gallerySlug: string, albumSlug: string }) {
-
- return (
-
- Images
-
- {images ? images.map((img) => (
-
-
-
- {img.fileKey ? (
-
- ) : (
-
- No cover image
-
- )}
-
-
-
{img.imageName}
-
-
-
- )) : "There are no images here!"}
-
-
- );
-}
\ No newline at end of file
diff --git a/src/components/artists/_ArtistImageGrid.tsx b/src/components/artists/_ArtistImageGrid.tsx
deleted file mode 100644
index 3366894..0000000
--- a/src/components/artists/_ArtistImageGrid.tsx
+++ /dev/null
@@ -1,34 +0,0 @@
-"use client";
-
-// import ImageCard from "@/components/image/ImageCard"; // You likely have this already
-// import type { Album, Gallery, Image, ImageVariant } from "@prisma/client";
-import { Album, Gallery, Image, ImageVariant } from "@/generated/prisma";
-import { useState } from "react";
-import ImageCard from "./ImageCard";
-
-type Props = {
- images: (Image & {
- album: Album & { gallery: Gallery | null } | null;
- variants: ImageVariant[];
- })[];
-};
-
-export default function ArtistImageGrid({ images }: Props) {
- const [showNSFW, setShowNSFW] = useState(false);
-
- return (
-
-
-
- {images.map((img) => (
-
- ))}
-
-
- );
-}
diff --git a/src/components/artists/_ImageCard.tsx b/src/components/artists/_ImageCard.tsx
deleted file mode 100644
index 0cae72b..0000000
--- a/src/components/artists/_ImageCard.tsx
+++ /dev/null
@@ -1,45 +0,0 @@
-import { Album, Gallery, Image, ImageVariant } from "@/generated/prisma";
-import NextImage from "next/image";
-import Link from "next/link";
-
-type Props = {
- image: Image & {
- variants: ImageVariant[];
- album: Album & { gallery: Gallery | null } | null;
- };
- showNSFW?: boolean;
-};
-
-export default function ImageCard({ image, showNSFW = false }: Props) {
- const variant = image.variants.find(v => v.type === "thumbnail") || image.variants[0];
- if (!variant) return null;
-
- const href = image.album?.gallery && image.album
- ? `/galleries/${image.album.gallery.slug}/${image.album.slug}/${image.id}`
- : `/image/${image.id}`;
-
- const shouldBlur = image.nsfw && !showNSFW;
-
- return (
-
-
-
- {image.nsfw && (
-
- NSFW
-
- )}
-
- {image.imageName}
-
-
-
- );
-}
diff --git a/src/components/cards/_AlbumCard.tsx b/src/components/cards/_AlbumCard.tsx
deleted file mode 100644
index 2adc6b1..0000000
--- a/src/components/cards/_AlbumCard.tsx
+++ /dev/null
@@ -1,47 +0,0 @@
-import { Album, Image } from "@/generated/prisma";
-import NextImage from "next/image";
-import Link from "next/link";
-
-type Props = {
- album: Album & {
- coverImage: Image | null;
- };
- gallerySlug: string;
-};
-
-export default function AlbumCard({ album, gallerySlug }: Props) {
- const href = `/galleries/${gallerySlug}/${album.slug}`;
- const cover = album.coverImage;
-
- return (
-
-
- {cover ? (
-
- ) : (
-
- No cover image
-
- )}
-
- {/* Overlay: Album label */}
-
- Album
-
-
- {/* Bottom: Album name */}
-
- {album.name}
-
-
-
- );
-}
diff --git a/src/components/categories/_CategoryImageList.tsx b/src/components/categories/_CategoryImageList.tsx
deleted file mode 100644
index 46f5e23..0000000
--- a/src/components/categories/_CategoryImageList.tsx
+++ /dev/null
@@ -1,48 +0,0 @@
-import { Album, Gallery, Image } from "@/generated/prisma";
-import NextImage from "next/image";
-import Link from "next/link";
-
-type ImagesWithItems = (Pick & {
- album?: (Pick & {
- gallery?: Pick | null
- }) | null
-})[]
-
-export default function CategoryImageList({ images }: { images: ImagesWithItems }) {
- return (
-
- Images
-
- {images ? images.map((img) => {
- const gallerySlug = img.album?.gallery?.slug;
- const albumSlug = img.album?.slug;
- if (!gallerySlug || !albumSlug || !img.id) return null;
-
- return (
-
-
-
- {img.fileKey ? (
-
- ) : (
-
- No cover image
-
- )}
-
-
-
{img.imageName}
-
-
-
- )
- }) : "There are no images here!"}
-
-
- );
-}
\ No newline at end of file
diff --git a/src/components/galleries/_AlbumList.tsx b/src/components/galleries/_AlbumList.tsx
deleted file mode 100644
index 8e3a82b..0000000
--- a/src/components/galleries/_AlbumList.tsx
+++ /dev/null
@@ -1,40 +0,0 @@
-import { Album, Image } from "@/generated/prisma";
-import NextImage from "next/image";
-import Link from "next/link";
-
-type AlbumsWithItems = Album & {
- coverImage: Image | null;
-}
-
-export default function AlbumList({ albums, gallerySlug }: { albums: AlbumsWithItems[], gallerySlug: string }) {
- return (
-
- Albums
-
- {albums ? albums.map((album) => (
-
-
-
- {album.coverImage?.fileKey ? (
-
- ) : (
-
- No cover image
-
- )}
-
-
-
{album.name}
-
-
-
- )) : "There are no albums here!"}
-
-
- );
-}
\ No newline at end of file
diff --git a/src/components/images/_GlowingImageBorder.tsx b/src/components/images/_GlowingImageBorder.tsx
deleted file mode 100644
index dddc173..0000000
--- a/src/components/images/_GlowingImageBorder.tsx
+++ /dev/null
@@ -1,81 +0,0 @@
-"use client"
-
-import { Color, ImageColor, ImageVariant } from "@/generated/prisma"
-import clsx from "clsx"
-import { useTheme } from "next-themes"
-import NextImage from "next/image"
-import { useEffect, useState } from "react"
-
-type Colors = ImageColor & {
- color: Color
-}
-
-type Props = {
- alt: string,
- variant: ImageVariant,
- colors: Colors[],
- src: string,
- revealed?: boolean,
- className?: string,
- animate?: boolean
-}
-
-export default function GlowingImageBorder({
- alt,
- variant,
- colors,
- src,
- className,
- revealed = true,
- animate = true,
-}: Props) {
- const { resolvedTheme } = useTheme()
- const [mounted, setMounted] = useState(false);
-
- useEffect(() => {
- setMounted(true);
- }, []);
-
- const getColor = (type: string) =>
- colors.find((c) => c.type === type)?.color.hex
-
- const vibrantLight = getColor("Vibrant") || "#ff5ec4"
- const mutedLight = getColor("Muted") || "#5ecaff"
-
- const darkVibrant = getColor("DarkVibrant") || "#fc03a1"
- const darkMuted = getColor("DarkMuted") || "#035efc"
-
- const vibrant = resolvedTheme === "dark" ? darkVibrant : vibrantLight
- const muted = resolvedTheme === "dark" ? darkMuted : mutedLight
-
- if (!mounted) return null;
-
- return (
-
- )
-}
diff --git a/src/components/images/_GlowingImageWithToggle.tsx b/src/components/images/_GlowingImageWithToggle.tsx
deleted file mode 100644
index c2b1fae..0000000
--- a/src/components/images/_GlowingImageWithToggle.tsx
+++ /dev/null
@@ -1,56 +0,0 @@
-"use client"
-
-import { Color, ImageColor, ImageVariant } from "@/generated/prisma";
-import Link from "next/link";
-import { useState } from "react";
-import { Label } from "../ui/label";
-import { Switch } from "../ui/switch";
-import GlowingImageBorder from "./GlowingImageBorder";
-
-type Props = {
- variant: ImageVariant;
- colors: (ImageColor & { color: Color })[];
- alt: string;
- src: string;
- nsfw: boolean;
- imageId: string;
-}
-
-export default function GlowingImageWithToggle({ variant, colors, alt, src, nsfw, imageId }: Props) {
- const [animate, setAnimate] = useState(true);
- const [revealed, setRevealed] = useState(!nsfw)
-
- return (
-
-
-
-
-
-
-
-
- {
- nsfw && (
-
- )
- }
-
- );
-}
diff --git a/src/components/images/_ImageInfoPanel.tsx b/src/components/images/_ImageInfoPanel.tsx
deleted file mode 100644
index fba4a30..0000000
--- a/src/components/images/_ImageInfoPanel.tsx
+++ /dev/null
@@ -1,100 +0,0 @@
-import { Image as ImageType } from "@/generated/prisma";
-import Link from "next/link";
-// import { SocialIcon } from "react-social-icons";
-
-type Props = {
- image: ImageType & {
- artist?: {
- id: string;
- slug: string;
- displayName: string;
- socials?: { type: string; handle: string; link: string }[];
- };
- categories?: { id: string; name: string }[];
- tags?: { id: string; name: string }[];
- album?: { id: string; name: string; slug: string };
- };
-};
-
-export default function ImageInfoPanel({ image }: Props) {
- return (
-
- {/* Creator */}
- {image.artist && (
-
-
Creator
-
- {image.artist.displayName}
-
-
- {image.artist.socials?.length > 0 && (
-
- {image.artist.socials.map((social, i) => (
-
- ))}
-
- )}
-
- )}
-
- {/* Album */}
- {image.album && (
-
-
Album
-
- {image.album.name}
-
-
- )}
-
- {/* Categories */}
- {image.categories?.length > 0 && (
-
-
Categories
-
- {image.categories.map((cat) => (
-
- {cat.name}
-
- ))}
-
-
- )}
-
- {/* Tags */}
- {image.tags?.length > 0 && (
-
-
Tags
-
- {image.tags.map((tag) => (
-
- #{tag.name}
-
- ))}
-
-
- )}
-
- );
-}