MentionItem.tsx 679 B

1234567891011121314151617181920212223242526272829303132
  1. import React, { useEffect, useRef } from "react";
  2. interface MentionItemProps extends React.ComponentPropsWithoutRef<"div"> {
  3. isActive: boolean;
  4. }
  5. export const MentionItem = ({
  6. isActive,
  7. className,
  8. style,
  9. ...props
  10. }: MentionItemProps) => {
  11. const ref = useRef<HTMLDivElement | null>(null);
  12. useEffect(() => {
  13. if (isActive) {
  14. ref.current?.scrollIntoView({ block: "nearest" });
  15. }
  16. }, [isActive]);
  17. return (
  18. <div
  19. ref={ref}
  20. className={"mentionsItem" + (className ? ` ${className}` : "")}
  21. style={{
  22. backgroundColor: isActive ? "rgba(88, 101, 242, 0.3)" : undefined,
  23. ...style
  24. }}
  25. {...props}
  26. />
  27. );
  28. };