Why is my pending varfialbe not working hnere?
none of hte laoidng states re showing
/* eslint-disable @next/next/no-img-element */
"use client";
import axios from "axios";
import { generateCoverArt } from "@/server/generate";
import { use, useEffect, useRef, useState } from "react";
import { useFormState, useFormStatus } from "react-dom";
import { Playlist } from "@/types/spotify";
import { Loader2 } from "lucide-react";
export default function Form() {
const submitRef = useRef<React.ElementRef<"button">>(null);
const [formState, formAction] = useFormState(generateCoverArt, null);
const imageGen = formState?.image;
const { pending } = useFormStatus();
return (
<form action={formAction}>
<div className="mt-2 flex h-12 mb-5">
<input
type="url"
name="spotify-url"
id="spotify-url"
onKeyDown={(e) => {
if (e.key === "Enter") {
e.preventDefault();
submitRef.current?.click();
}
}}
className="block w-full rounded-lg py-1.5 pl-2 text-white-900 border-2 outline-none border-green-500 shadow-sm ring-1 ring-inset placeholder:text-gray-400 focus:ring-2 ring-green-300 focus:ring-inset focus:ring-green-400 sm:text-sm sm:leading-6 bg-black"
placeholder="Spotify playlist link"
required
/>
<button
ref={submitRef}
disabled={pending}
aria-disabled={pending}
type="submit"
className="button w-40 bg-green-500 rounded-lg flex justify-center items-center ml-5"
>
{pending ? (
<Loader2
size={16}
className="animate-spin text-white font-bold text-lg"
/>
) : (
<span className="text-white font-bold text-lg">Generate</span>
)}
</button>
</div>
<div className="">
{imageGen ? (
<img
src={imageGen}
alt="Generated Art"
className="rounded-lg aspect-[1/1] w-full"
/>
) : (
pending && (
<div className="aspect-[1/1] w-full bg-green-500 rounded-lg flex flex-col items-center justify-center">
<div className="animate-spin rounded-full border-b-2 border-white h-16 w-16"></div>
<p className="mt-6">
This can take anywhere from 30 to 60 seconds to finish.
</p>
</div>
)
)}
</div>
</form>
);
}