Updated Album showcase

This commit is contained in:
2024-10-11 20:13:39 -03:00
parent fa461dc37c
commit c54b65789c

View File

@@ -4,6 +4,11 @@ import { useEffect, useState } from "react";
import Tilt from "react-parallax-tilt"; import Tilt from "react-parallax-tilt";
import { TrackByAlbum } from "./spotify-data"; import { TrackByAlbum } from "./spotify-data";
import { api } from "@/trpc/react"; import { api } from "@/trpc/react";
import { quantum } from "ldrs";
import { ring2 } from "ldrs";
ring2.register();
quantum.register();
export default function AlbumShowcase({ export default function AlbumShowcase({
album, album,
@@ -70,13 +75,13 @@ export default function AlbumShowcase({
return ( return (
<div <div
onClick={() => setShowSpookyImage(!showSpookyImage)}
key={album.id} key={album.id}
className="flex w-full flex-wrap gap-3 rounded-xl bg-white bg-opacity-10 p-5 backdrop-blur-lg backdrop-filter" className="flex w-full flex-wrap gap-3 rounded-xl bg-white bg-opacity-10 p-5 backdrop-blur-lg backdrop-filter"
> >
<div> <div className="cursor-pointer">
<Tilt tiltMaxAngleX={10} tiltMaxAngleY={10} transitionSpeed={200}> <Tilt tiltMaxAngleX={10} tiltMaxAngleY={10} transitionSpeed={200}>
<img <img
onClick={() => setShowSpookyImage(!showSpookyImage)}
className="h-36 w-36 cursor-pointer rounded" className="h-36 w-36 cursor-pointer rounded"
style={{ style={{
display: showSpookyImage ? "none" : "block", display: showSpookyImage ? "none" : "block",
@@ -86,20 +91,41 @@ export default function AlbumShowcase({
/> />
{!!spookyImageSource && ( {!!spookyImageSource && (
<img <img
onClick={() => setShowSpookyImage(!showSpookyImage)}
className="h-36 w-36 cursor-pointer rounded" className="h-36 w-36 cursor-pointer rounded"
style={{ style={{
display: showSpookyImage ? "block" : "none", display:
showSpookyImage && spookyImageLoaded ? "block" : "none",
}} }}
src={spookyImageSource} src={spookyImageSource}
alt={album.name} alt={album.name}
onLoad={() => { onLoad={() => {
if (!spookyImageLoaded && generateSpookyImage.data) { if (!spookyImageLoaded && generateSpookyImage.data) {
setSpookyImageLoaded(true); // setSpookyImageLoaded(true);
} }
}} }}
/> />
)} )}
{showSpookyImage && !spookyImageLoaded && (
<div className="flex h-36 w-36 items-center justify-center rounded bg-slate-300 bg-opacity-10">
<div>
{generateSpookyImage.data ? (
<>
<l-quantum
size="100"
speed="1.75"
color="white"
></l-quantum>
<p className="text-center">Generating...</p>
</>
) : (
<>
<l-ring-2 size="100" speed="1.75" color="white"></l-ring-2>
<p className="text-center">Generating...</p>
</>
)}
</div>
</div>
)}
</Tilt> </Tilt>
</div> </div>
<section className="flex h-36 flex-grow flex-col"> <section className="flex h-36 flex-grow flex-col">