/* eslint-disable eqeqeq */
import { useModel } from '@umijs/max';
import { Image } from 'antd';
import { useRef,useState  } from 'react';

function Limit({ content, style={} }) {
  const [preview, setpreview] = useState({
    visible: false,
  });
  const containerRef = useRef();

  const handleClick = (e) => {
    if (e.target.tagName !== 'IMG') {
      return;
    }
    let srcarr = [],
      current = 0;
    if (containerRef?.current) {
      const imgTags = containerRef.current.querySelectorAll('img');
      srcarr = Array.from(imgTags)?.map((el, i) => {
        if (el.src === e.target.src) {
          current = i + 1;
        }
        return el.src;
      });
    }
    setpreview((s) => ({
      current: current,
      urls: srcarr,
      visible: true,
    }));
  };

  return (
    <div style={style}>
      <div
        style={{
          display: 'none',
        }}
      >
        <Image.PreviewGroup
          preview={{
            visible: preview?.visible,
            current: preview?.current-1,
            onVisibleChange: (vis) =>
              setpreview((s) => ({
                ...s,
                visible: vis,
              })),
          }}
        >
          {preview?.urls?.map?.((it) => (
            <Image src={it} key={it} />
          ))}
        </Image.PreviewGroup>
      </div>
      <div
        onClick={handleClick}
        ref={containerRef}
        dangerouslySetInnerHTML={{ __html: content }}
        className="limit"
      ></div>
    </div>
  );
}

export default Limit;