| import { | |
| useFetchUserInfo, | |
| useListTenantUser, | |
| } from '@/hooks/user-setting-hooks'; | |
| import { Button, Card, Flex, Space } from 'antd'; | |
| import { useTranslation } from 'react-i18next'; | |
| import { TeamOutlined, UserAddOutlined, UserOutlined } from '@ant-design/icons'; | |
| import AddingUserModal from './add-user-modal'; | |
| import { useAddUser } from './hooks'; | |
| import styles from './index.less'; | |
| import TenantTable from './tenant-table'; | |
| import UserTable from './user-table'; | |
| const iconStyle = { fontSize: 20, color: '#1677ff' }; | |
| const UserSettingTeam = () => { | |
| const { data: userInfo } = useFetchUserInfo(); | |
| const { t } = useTranslation(); | |
| useListTenantUser(); | |
| const { | |
| addingTenantModalVisible, | |
| hideAddingTenantModal, | |
| showAddingTenantModal, | |
| handleAddUserOk, | |
| } = useAddUser(); | |
| return ( | |
| <div className={styles.teamWrapper}> | |
| <Card className={styles.teamCard}> | |
| <Flex align="center" justify={'space-between'}> | |
| <span> | |
| {userInfo.nickname} {t('setting.workspace')} | |
| </span> | |
| <Button type="primary" onClick={showAddingTenantModal}> | |
| <UserAddOutlined /> | |
| {t('setting.invite')} | |
| </Button> | |
| </Flex> | |
| </Card> | |
| <Card | |
| title={ | |
| <Space> | |
| <UserOutlined style={iconStyle} /> {t('setting.teamMembers')} | |
| </Space> | |
| } | |
| bordered={false} | |
| > | |
| <UserTable></UserTable> | |
| </Card> | |
| <Card | |
| title={ | |
| <Space> | |
| <TeamOutlined style={iconStyle} /> {t('setting.joinedTeams')} | |
| </Space> | |
| } | |
| bordered={false} | |
| > | |
| <TenantTable></TenantTable> | |
| </Card> | |
| {addingTenantModalVisible && ( | |
| <AddingUserModal | |
| visible | |
| hideModal={hideAddingTenantModal} | |
| onOk={handleAddUserOk} | |
| ></AddingUserModal> | |
| )} | |
| </div> | |
| ); | |
| }; | |
| export default UserSettingTeam; | |