import { Tooltip } from "../../packages/excalidraw/components/Tooltip"; import { warning } from "../../packages/excalidraw/components/icons"; import clsx from "clsx"; import { useEffect, useRef, useState } from "react"; import "./CollabError.scss"; import { atom } from "jotai"; type ErrorIndicator = { message: string | null; /** used to rerun the useEffect responsible for animation */ nonce: number; }; export const collabErrorIndicatorAtom = atom({ message: null, nonce: 0, }); const CollabError = ({ collabError }: { collabError: ErrorIndicator }) => { const [isAnimating, setIsAnimating] = useState(false); const clearAnimationRef = useRef(); useEffect(() => { setIsAnimating(true); clearAnimationRef.current = setTimeout(() => { setIsAnimating(false); }, 1000); return () => { clearTimeout(clearAnimationRef.current); }; }, [collabError.message, collabError.nonce]); if (!collabError.message) { return null; } return (
{warning}
); }; CollabError.displayName = "CollabError"; export default CollabError;