/* eslint-disable @typescript-eslint/ban-ts-comment */ import React, { ReactNode, useEffect, useState } from 'react'; import classNames from 'classnames'; import { ArrowIcon } from '../common-view'; import './index.scss'; interface oplistI { dataSource: any[]; renderItem: (record: any, index: number) => any; renderDetails: (record: any, index: number) => any; clickRowOpen: boolean; hasBorder: boolean; iconSize: number; } export default function OPList(props: oplistI) { const { dataSource, renderItem, renderDetails, clickRowOpen = true, hasBorder = true, iconSize = 14, } = props; const [openState, setOpenState] = useState([]); useEffect(() => { // @ts-ignore setOpenState(Array(dataSource.length).fill(false)); }, [dataSource]); const changeOpen = (index: number, from: 'item' | 'icon') => { if ( (clickRowOpen && from === 'icon') || (!clickRowOpen && from === 'item') ) { return; } const oldVal = openState[index]; // @ts-ignore openState[index] = !oldVal; setOpenState(openState.slice()); }; return (