2023-10-13 08:59:12 +00:00
|
|
|
import {React, useState} from 'react'
|
2023-10-16 09:00:12 +00:00
|
|
|
import { useNavigate } from 'react-router-dom';
|
2023-10-13 08:59:12 +00:00
|
|
|
import {SbTitle, SbSub, SbLink} from './Sb.style'
|
|
|
|
|
import { FcFolder, FcOpenedFolder, FcFile } from 'react-icons/fc'
|
|
|
|
|
import { AiOutlinePlusSquare, AiOutlineMinusSquare } from 'react-icons/ai'
|
|
|
|
|
|
|
|
|
|
const SbItem = ({ item }) => {
|
|
|
|
|
const [collapsed, setCollapsed] = useState(false);
|
2023-10-16 09:00:12 +00:00
|
|
|
const navigate = useNavigate();
|
2023-10-13 08:59:12 +00:00
|
|
|
function toggleCollapse() {
|
|
|
|
|
setCollapsed(prevValue => !prevValue);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(item.childrens.length > 0){
|
|
|
|
|
const icon1 = collapsed?<AiOutlinePlusSquare />:<AiOutlineMinusSquare />;
|
|
|
|
|
const icon2 = collapsed?<FcOpenedFolder />:<FcFolder />;
|
|
|
|
|
return (
|
|
|
|
|
<div>
|
|
|
|
|
<SbTitle depth={item.doc_level} onClick={toggleCollapse}>{icon1}{icon2} {(item.doc_level === 1?'':item.doc_code)+' '+item.doc_code_name}</SbTitle>
|
|
|
|
|
<SbSub isOpen={collapsed}>
|
|
|
|
|
{item.childrens.map((child) => (
|
|
|
|
|
<SbItem item={child} />
|
|
|
|
|
))}
|
|
|
|
|
</SbSub>
|
|
|
|
|
</div>
|
|
|
|
|
)
|
|
|
|
|
}else{
|
|
|
|
|
const icon = <FcFile />;
|
|
|
|
|
return (
|
|
|
|
|
<SbTitle depth={item.doc_level}>
|
2023-10-16 09:00:12 +00:00
|
|
|
{/*<a onClick={()=>{
|
|
|
|
|
navigate('/standardCode/viewer', {
|
|
|
|
|
state:{
|
|
|
|
|
docCode: item.doc_code
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
}}>{icon} {(item.doc_level === 1?'':item.doc_code)+' '+item.doc_code_name}</a>*/}
|
|
|
|
|
<SbLink to={"/standardCode/viewer/"+item.doc_code}>{icon} {(item.doc_level === 1?'':item.doc_code)+' '+item.doc_code_name}</SbLink>
|
2023-10-13 08:59:12 +00:00
|
|
|
</SbTitle>
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export default SbItem
|