Spaces:
Running
Running
File size: 1,405 Bytes
9cd6ddb |
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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
import classNames from "classnames";
import { useState } from "react";
import { useMount, useUpdateEffect } from "react-use";
import { Clyde } from "./clyde";
export const ClydeMessage = ({
message,
auto = false,
onClick,
}: {
message: string;
auto?: boolean;
onClick: any;
}) => {
const [show, setShow] = useState(false);
useMount(() => {
if (auto) {
setTimeout(() => {
setShow(true);
}, 2000);
}
});
useUpdateEffect(() => {
if (auto && show) {
setTimeout(() => {
setShow(false);
}, 5000);
}
}, [show]);
return (
<div
className="left-0 lg:left-14 max-w-max group absolute top-0 transform -translate-y-[calc(100%-10px)] -z-1"
onClick={onClick}
>
<Clyde />
<div
className={classNames(
"transition-all duration-200 absolute top-2 left-0 bg-white shadow-xl text-sm text-dark-200 font-medium rounded-lg px-3.5 py-1.5 whitespace-nowrap transform group-hover:translate-x-[90px] opacity-0 group-hover:opacity-100",
{
"translate-x-[90px] opacity-100": show,
}
)}
>
{message}
<div className="w-[0px] h-[0px] border-t-[7px] border-t-transparent border-b-[7px] border-b-transparent border-r-[7px] border-r-white absolute top-[calc(50%-7px)] -left-[6px]" />
</div>
{/* Hello<p>lol</p> */}
</div>
);
};
|