/* eslint-disable @typescript-eslint/ban-ts-comment */ import React, { createRef, useEffect, useMemo, useRef } from 'react'; import Viewer from 'viewerjs'; import 'viewerjs/dist/viewer.css'; import { expandObj } from 'src/types'; import './index.scss'; interface PreviewImageI { data?: string | string[]; options?: expandObj; numPerLine?: number; padding?: number; viewRef?: React.RefObject; itemStyle: expandObj; imageStyle: expandObj; } const isNeedPadding = (index: number, numPerLine: number) => { return index % numPerLine !== numPerLine - 1; }; export default function PreviewImage(props: PreviewImageI) { const { data, options = {}, numPerLine = 1, padding = 1, viewRef, itemStyle, imageStyle, } = props; const imageRef = createRef(); const viewer = viewRef || createRef(); useEffect(() => { if (imageRef.current) { // @ts-ignore viewer.current = new Viewer(imageRef.current as HTMLElement, options); } }, []); const images = useMemo(() => { return Array.isArray(data) ? data : [data ?? '']; }, [data]); return ( // @ts-ignore ); }