import React from "react";
import styles from "./index.less";
import { Tabs } from "antd";
const { TabPane } = Tabs;
class Demo extends React.Component {
constructor(props) {
super(props);
this.newTabIndex = 0;
const panes = [
{ title: "Tab 1", content: "Content of Tab 1", key: "1" },
{ title: "Tab 2", content: "Content of Tab 2", key: "2" },
{
title: "Tab 3",
content: "Content of Tab 3",
key: "3",
closable: false
}
];
this.state = {
activeKey: panes[0].key,
panes
};
}
onChange = activeKey => {
this.setState({ activeKey });
};
onEdit = (targetKey, action) => {
this[action](targetKey);
};
add = () => {
const { panes } = this.state;
const activeKey = `newTab${this.newTabIndex++}`;
panes.push({
title: "New Tab",
content: "Content of new Tab",
key: activeKey
});
this.setState({ panes, activeKey });
};
remove = targetKey => {
let { activeKey } = this.state;
let lastIndex;
this.state.panes.forEach((pane, i) => {
if (pane.key === targetKey) {
lastIndex = i - 1;
}
});
const panes = this.state.panes.filter(pane => pane.key !== targetKey);
if (panes.length && activeKey === targetKey) {
if (lastIndex >= 0) {
activeKey = panes[lastIndex].key;
} else {
activeKey = panes[0].key;
}
}
this.setState({ panes, activeKey });
};
render() {
return (