import React from 'react'; import { styled } from '@mui/material/styles'; import Card from '@mui/material/Card'; import { CardActionArea } from '@mui/material'; import Paper from '@mui/material/Paper'; import List from '@mui/material/List'; import ListItem from '@mui/material/ListItem'; import EditIcon from '@mui/icons-material/Edit'; import ListItemText from '@mui/material/ListItemText'; import IconButton from '@mui/material/IconButton'; import Grid from '@mui/material/Grid'; import Typography from '@mui/material/Typography'; import DeleteIcon from '@mui/icons-material/Delete'; import AddIcon from '@mui/icons-material/Add'; import styledComponent from "styled-components"; const StyledDiv = styledComponent.div` .text-item.active { background-color: #676767; } `; function generate(items, element, onClickListner,nameKey, idKey) { let returnValue = []; let nIndex = 0; Object.keys(items).forEach(function(key) { returnValue = [ ...returnValue, React.cloneElement(element, { key, }, {onClickListner(e, key);}}> ), ]; nIndex++; }); return returnValue; } const Demo = styled('div')(({ theme }) => ({ backgroundColor: theme.palette.background.paper, })); const Item = styled(Paper)(({ theme }) => ({ backgroundColor: theme.palette.mode === 'dark' ? '#1A2027' : '#fff', ...theme.typography.body2, padding: theme.spacing(1), textAlign: 'center', color: theme.palette.text.secondary, })); function ListCreateUpdateDelete(props) { const handleClickOpen = () => { if( props.itemIndex[props.depthSelectedArrayIndex-1] === undefined ) { alert('상위 코드를 선택해주세요.'); props.setIsPopupOpen(false); return false; } props.setCreateCondition({...props.createCondition, paramCodeLevel : props.paramCodeLevel, paramOrgId : props.itemIndex[props.depthSelectedArrayIndex-1]}); props.setIsPopupOpen(true); }; const onClickItem = (e, index) => { index = Number(index); // 기존 active를 모두 해제 한다. let siblingEle = e.currentTarget.parentNode.parentNode.firstChild; do { siblingEle.firstChild.classList.remove('active'); // eslint-disable-next-line no-cond-assign } while (siblingEle = siblingEle.nextSibling); e.currentTarget.classList.add('active'); const myKey = Number(index); props.itemIndex[props.depthSelectedArrayIndex] = myKey; let forChangeObject = [...props.itemIndex]; props.setItemIndex(forChangeObject); }; return ( {props.title} {generate( props.items, } > , onClickItem, props.nameKey, props.idKey )} ); } export default ListCreateUpdateDelete;