File size: 1,255 Bytes
372531f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import Image from "next/image";
import { useState } from "react";

const SourceCard = ({ source }: { source: { name: string; url: string } }) => {
  const [imageSrc, setImageSrc] = useState(`https://www.google.com/s2/favicons?domain=${source.url}&sz=128`);

  const handleImageError = () => {
    setImageSrc("/img/globe.svg");
  };

  return (
    <div className="flex h-[79px] w-full items-center gap-2.5 rounded border border-solid border-[#C1C1C1] bg-neutral-50 px-1.5 py-1 md:w-auto">

      <div className="">

        <Image

          src={imageSrc}

          alt={source.url}

          className="p-1"

          width={44}

          height={44}

          onError={handleImageError}  // Update src on error

        />

      </div>

      <div className="flex max-w-[192px] flex-col justify-center gap-[7px]">

        <h6 className="line-clamp-2 text-sm font-light leading-[normal] text-[#1B1B16]">

          {source.name}

        </h6>

        <a

          target="_blank"

          rel="noopener noreferrer"

          href={source.url}

          className="truncate text-sm font-light text-[#1B1B16]/30"

        >

          {source.url}

        </a>

      </div>

    </div>
  );
};

export default SourceCard;