import React from "react"

export const useImageProxy = () => {
  // This function handles image URL generation for avatars
  // It can process custom avatars, generate Gravatar URLs, or provide a default avatar
  const returnImageProxy = (image, pubkey, size = 90) => {
    // If a custom image URL is provided
    if (image) {
      // Use the proxy URL to avoid CORS issues and potentially optimize the image
      const proxyUrl = `${process.env.NEXT_PUBLIC_PROXY_URL}?imageUrl=${encodeURIComponent(image)}`;
      return proxyUrl;
    } 
    // If no image is provided, but a pubkey is available
    else if (pubkey) {
      // Generate a Gravatar URL using the pubkey as the identifier
      // 's' parameter sets the size of the image
      // 'd=identicon' ensures a default identicon is generated if no Gravatar exists for this pubkey
      return `https://secure.gravatar.com/avatar/${pubkey}?s=${size}&d=identicon`;
    } 
    // If neither image nor pubkey is provided
    else {
      // Return a completely generic Gravatar URL
      // This will always generate a random identicon
      return `https://secure.gravatar.com/avatar/?s=${size}&d=identicon`;
    }
  }

  // Return the function so it can be used by components
  return { returnImageProxy };
}