import React from "react";
import Link from "next/link";
import dayjs from 'dayjs'
import { useRouter } from "next/router";
import UserIcon from "./UserIcon";


const utc = require("dayjs/plugin/utc");
const relativeTime = require("dayjs/plugin/relativeTime");

function NotificationCard(props) {
    const router = useRouter();
    dayjs.extend(utc);
    dayjs.extend(relativeTime);
    const Subicon= ()=> {
        switch(props.type) {
            case "like":
                return (
                    <svg className="absolute right-0 top-7 h-5 w-5" width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
                    <circle cx="10" cy="10" r="9.375" className="fill-gray-100 dark:fill-gray-600" />
                    <path d="M9.99999 16.1538C9.82185 16.1538 9.64372 16.0932 9.49797 15.9718C8.97975 15.5471 8.47772 15.1376 8.02428 14.7887C6.72874 13.7421 5.59513 12.8472 4.8178 11.9675C3.94331 10.9816 3.53845 10.0412 3.53845 9.02492C3.53845 8.02383 3.89473 7.11376 4.55869 6.44637C5.22266 5.76381 6.14574 5.38461 7.14979 5.38461C7.89473 5.38461 8.57489 5.61213 9.17408 6.03683C9.48177 6.26435 9.75708 6.52221 9.99999 6.84073C10.2429 6.52221 10.5182 6.26435 10.8259 6.03683C11.4251 5.59696 12.1053 5.38461 12.8502 5.38461C13.8542 5.38461 14.7611 5.76381 15.4413 6.44637C16.1053 7.11376 16.4615 8.039 16.4615 9.02492C16.4615 10.0563 16.0567 10.9816 15.1822 11.9675C14.4049 12.8472 13.2712 13.7421 11.9757 14.7887C11.5385 15.1376 11.0202 15.5471 10.502 15.9718C10.3563 16.0932 10.1781 16.1538 9.99999 16.1538Z" fill="#E81212"/>
                    </svg>
                );
                break
            case "follower":
                return (
                    <svg className="absolute right-0 top-7 h-5 w-5" width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
                        <circle cx="10" cy="10" r="9.375" className="fill-gray-100 dark:fill-gray-600" />
                        <path d="M10.9444 9.77783H9.05555C8.05362 9.77783 7.09273 10.1758 6.38426 10.8843C5.67579 11.5928 5.27777 12.5537 5.27777 13.5556V14.9723C5.27777 15.0975 5.32752 15.2176 5.41608 15.3062C5.50464 15.3947 5.62475 15.4445 5.74999 15.4445H14.25C14.3752 15.4445 14.4953 15.3947 14.5839 15.3062C14.6725 15.2176 14.7222 15.0975 14.7222 14.9723V13.5556C14.7222 12.5537 14.3242 11.5928 13.6157 10.8843C12.9073 10.1758 11.9464 9.77783 10.9444 9.77783Z" fill="#085AF6"/>
                        <path d="M9.99997 9.30575C10.467 9.30575 10.9234 9.16728 11.3117 8.90783C11.7 8.64839 12.0026 8.27964 12.1813 7.8482C12.3601 7.41676 12.4068 6.94202 12.3157 6.48401C12.2246 6.026 11.9997 5.60529 11.6695 5.27508C11.3393 4.94487 10.9186 4.72 10.4606 4.6289C10.0026 4.53779 9.52785 4.58455 9.09641 4.76326C8.66497 4.94196 8.29622 5.24459 8.03677 5.63288C7.77733 6.02116 7.63885 6.47766 7.63885 6.94464C7.63885 7.57085 7.88761 8.1714 8.33041 8.6142C8.7732 9.05699 9.37376 9.30575 9.99997 9.30575Z" fill="#085AF6"/>
                    </svg>
                );
                break
            case "branch":
                return (
                    <svg className="absolute right-0 top-7 h-5 w-5" width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
                        <circle cx="10" cy="10" r="9.375" className="fill-gray-100 dark:fill-gray-600" />
                        <path d="M15.7518 5.62486C15.6026 5.46571 15.4161 5.30657 15.2297 5.18722H15.1924C14.0363 4.43129 12.5445 4.3915 11.3884 5.18722C10.4188 5.82378 9.78482 6.97757 9.74753 8.21092C9.26271 7.61414 8.62872 7.21628 7.88285 7.01735C7.47263 6.898 7.0624 6.898 6.68946 6.93778C6.50299 6.93778 6.31653 6.97757 6.13006 7.05714L4.37727 7.61414C4.1908 7.65392 4.07892 7.85285 4.07892 8.05178C4.07892 8.29049 4.11621 8.5292 4.15351 8.72813C4.15351 8.72813 4.15351 8.72813 4.15351 8.76792C4.45185 10.2002 5.49607 11.3142 6.83864 11.6325C7.13698 11.7121 7.39804 11.7518 7.65909 11.7518C8.40496 11.7518 9.11354 11.5131 9.74753 11.0357V14.8551C9.74753 15.0938 9.934 15.2928 10.1578 15.2928C10.3815 15.2928 10.568 15.0938 10.568 14.8551V9.52384C10.9782 9.68299 11.4257 9.76256 11.836 9.76256C12.5072 9.76256 13.1412 9.56363 13.7379 9.16577C14.0736 8.92706 14.3719 8.64856 14.633 8.33028C14.7449 8.17113 14.8567 8.01199 14.9686 7.81306L15.8264 6.10228C15.9382 5.98293 15.901 5.74421 15.7518 5.62486Z" fill="#34C74F"/>
                    </svg>
                );
                break
            case "reply":
                return (
                    <svg className="absolute right-0 top-7 h-5 w-5" width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
                    <circle cx="10" cy="10" r="9.375" className="fill-gray-100 dark:fill-gray-600" />
                    <path d="M8.27653 14.2557L8.27324 14.2619L8.27016 14.2683C8.15102 14.5147 8.05766 14.6978 7.95522 14.8235C7.86263 14.9372 7.80847 14.9485 7.76784 14.9485C7.71247 14.9485 7.65468 14.9354 7.58246 14.8844L7.58259 14.8842L7.57089 14.8764C6.68677 14.2934 5.95652 13.5536 5.31938 12.6083L5.3194 12.6082L5.31712 12.6049C4.6741 11.6696 4.43631 10.3025 4.43631 9.68105C4.43631 7.096 6.69883 5.05191 9.84952 5.05191C13.1558 5.05191 15.6791 7.20404 15.6791 9.68105C15.6791 10.7449 15.248 11.5048 14.3482 12.0268C13.4098 12.5712 11.9364 12.8688 9.84952 12.8688C9.36943 12.8688 9.03299 13.1094 8.79603 13.394C8.60291 13.626 8.45112 13.919 8.32648 14.1596C8.30933 14.1927 8.29269 14.2248 8.27653 14.2557Z" fill="#085AF6" stroke="#085AF6" strokeWidth="0.872624" strokeMiterlimit="10"/>
                    </svg>
                );
                break
            case "payment":
                return (
                    <svg className="absolute right-0 top-7 h-5 w-5" width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
                    <path d="M17.3084 6.51104L17.104 7.05724L17.6348 7.2989C18.6626 7.76689 19.375 8.80085 19.375 10C19.375 11.1996 18.6631 12.2339 17.6353 12.7009L17.1037 12.9423L17.3085 13.4891C17.7041 14.5456 17.4765 15.7808 16.6289 16.6292C15.7818 17.4771 14.5469 17.7043 13.489 17.3084L12.9428 17.104L12.7011 17.6348C12.2331 18.6626 11.1991 19.375 10 19.375C8.80085 19.375 7.76689 18.6626 7.2989 17.6348L7.05718 17.1039L6.5109 17.3085C5.45437 17.7041 4.21915 17.4765 3.37075 16.6289C2.52294 15.7818 2.29569 14.5469 2.69159 13.489L2.89599 12.9428L2.36523 12.7011C1.3374 12.2331 0.625 11.1991 0.625 10C0.625 8.80085 1.3374 7.76689 2.36523 7.2989L2.89611 7.05718L2.69154 6.5109C2.29589 5.45437 2.52346 4.21915 3.37113 3.37075C4.21822 2.52294 5.45312 2.29569 6.51104 2.69159L7.05724 2.89599L7.2989 2.36523C7.76689 1.3374 8.80085 0.625 10 0.625C11.1994 0.625 12.2339 1.33759 12.7009 2.36489L12.9425 2.89623L13.4891 2.69154C14.5456 2.29589 15.7808 2.52346 16.6292 3.37113L17.071 2.929L16.6292 3.37113C17.4771 4.21822 17.7043 5.45312 17.3084 6.51104Z" className="stroke-gray-100 dark:stroke-gray-600"  fill="#34C74F" strokeWidth="1.25"/>
                    <path d="M10.4119 4.75645V5.38067C10.4119 5.44309 10.4119 5.44309 10.4744 5.44309C10.6616 5.44309 11.2234 5.50551 11.4107 5.50551C11.7228 5.56793 12.0973 5.63035 12.347 5.69277C12.4719 5.7552 12.5343 5.88004 12.5343 6.00489V7.06606C12.5343 7.25332 12.2222 7.44059 12.0349 7.31574H11.9101L11.3483 7.12848C11.161 7.06606 10.9737 7.06606 10.7865 7.00363C10.5992 7.00363 10.4119 6.94121 10.2871 6.94121C10.0374 6.94121 9.85015 6.94121 9.66288 7.00363C9.47561 7.06606 9.35077 7.12848 9.22593 7.1909C9.10108 7.25332 8.97624 7.37817 8.91382 7.44059C8.8514 7.56543 8.78897 7.69028 8.78897 7.81512C8.78897 7.93997 8.8514 8.12723 8.91382 8.18965C8.97624 8.3145 9.10108 8.43934 9.22593 8.50176C9.35077 8.62661 9.53804 8.68903 9.7253 8.81387C9.91257 8.93872 10.1623 9.00114 10.4119 9.12598C10.7865 9.25083 11.0986 9.43809 11.3483 9.62536C11.6604 9.81262 11.8476 9.99989 12.0973 10.1872C12.347 10.3744 12.4719 10.6241 12.5343 10.8738C12.6591 11.1235 12.7216 11.4356 12.7216 11.8101C12.7216 12.3095 12.6591 12.684 12.4719 13.0586C12.2846 13.3707 12.0349 13.6828 11.7228 13.8701C11.4107 14.0573 10.9737 14.2446 10.5992 14.307H10.3495V14.9312C10.3495 15.1185 10.4119 15.5554 9.7253 15.5554H9.22593C8.72655 15.5554 8.53929 15.3682 8.53929 14.9936V14.3694C8.53929 14.3694 8.03991 14.307 7.66538 14.2446C7.29085 14.1822 7.10358 14.0573 6.97874 13.9325C6.6042 13.6828 6.79147 11.8725 7.29085 12.1847C7.54053 12.3095 7.66538 12.4343 7.91507 12.4968C8.35202 12.6216 8.72655 12.7465 9.1635 12.7465C9.41319 12.7465 9.66288 12.7465 9.78772 12.684C9.97499 12.6216 10.1623 12.5592 10.2871 12.4968C10.4119 12.4343 10.5368 12.3095 10.5368 12.1847C10.5992 12.0598 10.6616 11.935 10.6616 11.8101C10.6616 11.6229 10.5992 11.498 10.5368 11.3732C10.4119 11.2483 10.2871 11.1235 10.0998 10.9986C9.91257 10.8738 9.7253 10.749 9.47561 10.6865C9.22593 10.5617 8.97624 10.4993 8.72655 10.3744C8.03991 10.0623 7.54053 9.7502 7.166 9.31325C6.85389 8.87629 6.66663 8.37692 6.66663 7.81512C6.66663 7.37817 6.72905 6.94121 6.91631 6.6291C7.10358 6.31699 7.35327 6.00489 7.66538 5.81762C7.97749 5.63035 7.97749 5.56793 8.41444 5.38067C8.47686 5.38067 8.47686 5.31824 8.47686 5.31824V4.75645C8.47686 4.6316 8.60171 4.44434 8.85139 4.44434H9.91257C10.2247 4.50676 10.4119 4.6316 10.4119 4.75645Z" fill="#F6F7FF"/>
                    </svg>

                );
                break
            case "invite": 
                return null;
                break
            case "mention": 
                return (
                    <svg className="absolute right-0 top-7 h-5 w-5" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none">
                    <circle cx="10" cy="10" r="9.375" fill="#ECEDF9" stroke="#F6F7FF" strokeWidth="1.25"/>
                    <path d="M4.03516 10.7328C4.03516 13.663 6.26999 15.9309 9.28287 15.9309C10.5079 15.9309 11.6998 15.5501 12.7262 14.888L12.4116 14.441C11.5177 15.0039 10.5079 15.3515 9.34909 15.3515C6.61763 15.3515 4.63111 13.3484 4.63111 10.6997C4.63111 7.60408 7.36257 4.8064 10.541 4.8064C13.3552 4.8064 15.1928 6.7267 15.1928 9.4085C15.1928 11.5771 14.1167 12.3221 13.4711 12.3221C13.0738 12.3221 12.7427 12.0406 12.7427 11.4943C12.7427 11.395 12.7593 11.2295 12.7758 11.1301L13.7029 6.77637H12.3454L12.1468 7.75307C11.8157 7.07434 11.0873 6.52805 10.0444 6.52805C8.09096 6.52805 6.18722 8.36558 6.18722 10.6501C6.18722 12.2558 7.18047 13.365 8.73658 13.365C9.74639 13.365 10.7065 12.769 11.2859 11.9579L11.3025 12.0572C11.3687 12.7359 11.8819 13.365 12.842 13.365C14.2326 13.365 15.8218 12.0572 15.8218 9.4085C15.8218 6.56116 13.736 4.21045 10.6072 4.21045C7.16392 4.21045 4.03516 7.17367 4.03516 10.7328ZM11.468 10.9149C11.0211 11.544 10.2596 12.289 9.18355 12.289C8.17373 12.289 7.59433 11.5606 7.59433 10.5507C7.59433 9.06086 8.76969 7.60408 10.3258 7.60408C11.2363 7.60408 11.7495 8.2497 11.9316 8.71322L11.468 10.9149Z" fill="#085AF6"/>
                    </svg>
                );
                break
            case "trolltoll":
                return null
                break
            default:
                return null
        }
    }
    

    

    const getDetail = (e) => {
        e.stopPropagation();
        router.push(props.url);
    };

  return (
    <div
      onClick={getDetail}
      className="grid grid-flow-col-dense grid-cols-12 p-3 cursor-pointer bg-gray-100 dark:bg-gray-600 hover:bg-gray-200 hover:dark:bg-gray-500 mb-0.5 "
    >
      <div className="relative col-span-2 sm:col-span-1">
        <Link
          href={`/u/${props.userByActorUserId.id}`}
        >
          <div className="flex justify-center"><UserIcon src={props.userByActorUserId.icon} size={46} />
          <Subicon/>
          </div>
        </Link>
      </div>
      <div className="col-span-10 sm:col-span-11 pl-4 flex flex-col text-gray-900 dark:text-white">
        <div className="flex">
          <Link
            href={`/u/${props.actorUserId}`}
          >
            <p className="text-lg font-bold cursor-pointer hover:underline">{props.userByActorUserId.name}
            <span className="ml-1 text-base font-normal text-gray-500 dark:text-gray-300">
              @{props.actorUserId}
            </span>
            </p>
          </Link>
          <div className="grow" />
          <p className='text-xs leading-5 whitespace-nowrap text-gray-500 dark:text-gray-300'>
                {dayjs.utc(props.createdAt).format("MMM DD")}
            </p>    
        </div>
        <div className="flex">
          <p className="">{props.description}</p>
          <div className="grow" />
          <p className="text-green-500">+ ${props.price.toFixed(2)}</p>
        </div>
      </div>
    </div>
  );
}

export default NotificationCard;
