import React, { useEffect, useState } from 'react';
import { observer } from 'mobx-react';
import { Modal, Row, Col, Tree, Table } from 'antd';
import styles from './index.module.css';
import store from './store';
export default observer(function (props) {
const [loading, setLoading] = useState(false);
const [group, setGroup] = useState({});
const [dataSource, setDataSource] = useState([]);
const [selectedRowKeys, setSelectedRowKeys] = useState([]);
useEffect(() => {
if (!store.treeData.length) {
store.fetchRecords()
store.fetchGroups()
.then(() => setGroup(store.treeData[0]))
} else {
setGroup(store.treeData[0])
}
}, [])
useEffect(() => {
if (group.key) {
const records = store.records.filter(x => group.self_host_ids.includes(x.id));
setDataSource(records)
}
}, [group])
function treeRender(nodeData) {
return (
{nodeData.title}{nodeData.self_host_ids && nodeData.self_host_ids.length ? `(${nodeData.self_host_ids.length})` : null}
)
}
function handleClickRow(record) {
const index = selectedRowKeys.indexOf(record.id);
if (index !== -1) {
selectedRowKeys.splice(index, 1)
} else {
selectedRowKeys.push(record.id)
}
setSelectedRowKeys([...selectedRowKeys])
}
function handleSubmit() {
if (props.onOk) {
setLoading(true)
props.onOk(group, selectedRowKeys)
.then(props.onCancel, () => setLoading(false))
}
}
return (
setGroup(node)}
/>
{
return {
onClick: () => handleClickRow(record)
}
}}
rowSelection={{
selectedRowKeys,
onChange: (keys) => setSelectedRowKeys(keys)
}}>
a.name.localeCompare(b.name)}/>
a.name.localeCompare(b.name)}/>
)
})