Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

106
Views
Add button to close all tabs

I want to add a close button after the tab. That close button should close all the opened tab. How can closing all tabs can be done? There should be a close button at the end of the tabpane the functionality is to close the tabs that are open. How can this be done and what is the functionality to do this action.

Link - https://jsfiddle.net/t5q37nbe/2/

const { Tabs, Button } = antd
const { TabPane } = Tabs

class App extends React.Component {
  constructor(props) {
    super(props)

    this.state = {
      focusingPaneKey: '1',
      openingPaneKeys: ['1'],
    }
  }

  openPane = (paneKey) => {
    this.setState(({ ...state }) => {
      if (!state.openingPaneKeys.includes(paneKey)) {
        state.openingPaneKeys = [...state.openingPaneKeys, paneKey]
      }

      state.focusingPaneKey = paneKey
      return state
    })
  }

  closePane = (paneKey) => {
    this.setState(({ ...state }) => {
      if (paneKey === state.focusingPaneKey) {
        const paneKeyIndex = state.openingPaneKeys.indexOf(paneKey)
        state.focusingPaneKey = state.openingPaneKeys[paneKeyIndex - 1]
      }

      state.openingPaneKeys = state.openingPaneKeys.filter((openingPaneKey) => openingPaneKey !== paneKey)

      return state
    })
  }

  handleTabsEdit = (key, action) => {
    if (action === 'remove') {
      this.closePane(key)
    }
  }

  render() {
    const { panes } = this.props
    const keysOfPane = Object.keys(panes)

    return (
      <div className="tab-section">
        <div style={{ marginBottom: 16 }}>
          {keysOfPane.map((key) => (
            <Button key={key} onClick={() => this.openPane(key)}>
              ADD Tab-{key}
            </Button>
          ))}
        </div>
        <Tabs
          hideAdd
          onChange={this.openPane}
          activeKey={this.state.focusingPaneKey}
          type="editable-card"
          onEdit={this.handleTabsEdit}
        >
          {this.state.openingPaneKeys
            .map((key) => panes[key])
            .map((pane) => (
              <TabPane tab={pane.title} key={pane.key}>
                {pane.content}
              </TabPane>
            ))}
            <div><BiWindowClose /></div>
        </Tabs>
      </div>
    )
  }
}

const panes = {
  1: { key: '1', title: 'Tab 1', content: 'Content of Tab Pane 1' },
  2: { key: '2', title: 'Tab 2', content: 'Content of Tab Pane 2' },
  3: { key: '3', title: 'Tab 3', content: 'Content of Tab Pane 3' },
}

ReactDOM.render(<App panes={panes} />, document.getElementById('container'))
about 4 years ago · Santiago Trujillo
1 answers
Answer question

0

This should add a 'Close All Tabs' button. When this button is clicked, all the tabs will be closed.

Code Sample

<div style={{ marginBottom: 16 }}>
  {keysOfPane.map((key) => (
    <Button key={key} onClick={() => this.openPane(key)}>
      ADD Tab-{key}
    </Button>
  ))}
  <Button
    onClick={() => keysOfPane.forEach(
      id => this.handleTabsEdit(id, 'remove')
    )}
  >
    Close All Tabs
  </Button>
</div>

Explanation

The onClick event iterates over the keys array and invokes the handleTabsEdit for each key with the action as remove.

This was tested on mplungjan jsfiddle: https://jsfiddle.net/mplungjan/pm52Lhnr/

Please take a copy as this may not remain available for later.

about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!