import React, { useEffect, useState } from 'react'; import styles from './style/index.module.less'; import CustomCard from '@/components/CustomCard/index'; import CollapseBox from './collapseBox'; import { Space, Input, Button, Tabs, Tag } from '@arco-design/web-react'; const TabPane = Tabs.TabPane; function ComponentLibrary() { const userInfo = JSON.parse(sessionStorage.getItem('userInfo') || '{}'); const componentData = JSON.parse(sessionStorage.getItem(`compLibs${userInfo.userId}`)); const [inputValue, setInputValue] = useState(''); const [activeKey, setActiveKey] = useState<'myLibs' | 'pubLibs' | 'teamLibs'>('myLibs'); const [componentsTree, setComponentsTree] = useState([]); const [filteredComponentsTree, setFilteredComponentsTree] = useState([]); const handelChangeTabs = (key) => { if (componentData && Object.keys(componentData).length > 0) setComponentsTree(componentData[key]); setActiveKey(key); }; const handelSearch = () => { const newTree = componentsTree.map(item => { const filteredChildren = item.children.filter(sub => sub.label.toLowerCase().includes(inputValue.toLowerCase())); return { ...item, children: filteredChildren }; }) .filter(item => item.children.length > 0); setFilteredComponentsTree(newTree); }; useEffect(() => { handelSearch(); }, [inputValue, activeKey]); return ( <>
setInputValue(value)} allowClear placeholder="输入名称搜索组件" style={{ width: 350 }} /> {/**/} handelChangeTabs(e)} > 我的组件 {componentData.myLibs.length} } > 公开组件 {componentData.pubLibs.length} }> 协同组件 {componentData.teamLibs.length} } >
); } export default ComponentLibrary;