import React, { useEffect, useState, useRef } from 'react'; import { useNavigate } from 'react-router-dom'; import clsx from 'clsx'; import { useTranslation } from 'react-i18next'; import { List, Button } from 'antd'; import type { Space, SpaceModalRef } from './types'; import SpaceModal from './components/SpaceModal'; import RbCard from '@/components/RbCard/Card' import { getWorkspaces, switchWorkspace } from '@/api/workspaces' import BodyWrapper from '@/components/Empty/BodyWrapper' import Tag from '@/components/Tag' const SpaceManagement: React.FC = () => { const { t } = useTranslation(); const navigate = useNavigate(); const [loading, setLoading] = useState(false); const [data, setData] = useState([]); const spaceModalRef = useRef(null); const loadMoreData = () => { setLoading(true); getWorkspaces() .then((res) => { const response = res as Space[]; const results = Array.isArray(response) ? response : []; setData(results); }) .catch(() => { console.error('Failed to load data'); }) .finally(() => { setLoading(false); }); }; useEffect(() => { loadMoreData(); }, []); const handleCreate = () => { spaceModalRef.current?.handleOpen(); } const handleJump = (id: string) => { switchWorkspace(id) .then(() => { localStorage.removeItem('user') navigate('/') }) } return ( <> ( {item.name[0]} } title={item.name} subTitle={{t(`space.${item.storage_type || 'neo4j'}`)}} >
{item.is_active ? t('space.associated') : t('space.notAssociated')}
)} className="rb:h-[calc(100vh-148px)] rb:overflow-y-auto rb:overflow-x-hidden" />
); }; export default SpaceManagement;