Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@bsonntag/react-tabs

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@bsonntag/react-tabs

Flexible tab components for react

  • 0.1.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
5
increased by150%
Maintainers
1
Weekly downloads
 
Created
Source

@bsonntag/react-tabs

Flexible tab components for react.

Installation

Using npm:

$ npm install --save @bsonntag/react-tabs

Using yarn:

$ yarn add @bsonntag/react-tabs

This module uses react's createContext API, so make sure you have at least version 16.3.0 installed.

Example usage

import { Tab, TabPanel, Tabs } from '@bsonntag/react-tabs';
import React, { Component } from 'react';

class App extends Component {

  state = {
    selectedTab: 0
  };

  handleSelect = selectedTab => this.setState({ selectedTab });

  render() {
    return (
      <Tabs
        onSelect={this.handleSelect}
        selectedTab={this.state.selectedTab}
      >
        <ul>
          <Tab tab={0}>
            {({ select }) => (
              <li onClick={select}>
                {'First tab'}
              </li>
            )}
          </Tab>

          <Tab tab={1}>
            {({ select }) => (
              <li onClick={select}>
                {'Second tab'}
              </li>
            )}
          </Tab>
        </ul>

        <TabPanel tab={0}>
          {isSelected => isSelected && (
            <div>
              {'First tab content'}
            </div>
          )}
        </TabPanel>

        <TabPanel tab={1}>
          {isSelected => isSelected && (
            <div>
              {'Second tab content'}
            </div>
          )}
        </TabPanel>
      </Tabs>
    );
  }

}

Components

This module contains three components.

<Tabs />

Works mainly as a provider. It only renders its children.

This is a controlled component, so you'll have to save the selected tab on another component's state.

children: React$Node

This component only renders its children.

onSelect: (tab: string | number) => void

The event handler that is called when a tab is selected. This is called with the selected tab.

selectedTab: string | number

The currently selected tab.

<Tab />

children: (args: { isSelected: boolean, select: () => void }) => React$Node

This component receives a function as its children. It calls the children function with an object with two properties:

  • isSelected: this will be true if the tab is selected.
  • select: a function to call when this tab is selected.

This component will render the result of calling its children.

tab: string | number

This tab's identifier.

<TabPanel />

children: (isSelected: boolean) => React$Node

This component receives a function as its children. It calls the children function with an a boolean that will be true if the tab is selected.

This component will render the result of calling its children.

tab: string | number

This tab's identifier.

Contributing

Please feel free to submit any issues or pull requests.

License

MIT

FAQs

Package last updated on 08 Jun 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc