UNPKG

react-tabs

Version:

An accessible and easy tab component for ReactJS

1 lines 1.72 kB
"use strict";exports.__esModule=true;exports.default=void 0;var _react=_interopRequireWildcard(require("react"));var _clsx=_interopRequireDefault(require("clsx"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap,n=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var o,i,f={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return f;if(o=t?n:r){if(o.has(e))return o.get(e);o.set(e,f)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((i=(o=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(i.get||i.set)?o(f,t,i):f[t]=e[t]);return f})(e,t)}const DEFAULT_CLASS="react-tabs__tab";const defaultProps={className:DEFAULT_CLASS,disabledClassName:`${DEFAULT_CLASS}--disabled`,focus:false,id:null,selected:false,selectedClassName:`${DEFAULT_CLASS}--selected`};const Tab=props=>{let nodeRef=(0,_react.useRef)();const{children,className,disabled,disabledClassName,focus,id,selected,selectedClassName,tabIndex,tabRef,...attributes}={...defaultProps,...props};(0,_react.useEffect)(()=>{if(selected&&focus){nodeRef.current.focus()}},[selected,focus]);return _react.default.createElement("li",Object.assign({},attributes,{className:(0,_clsx.default)(className,{[selectedClassName]:selected,[disabledClassName]:disabled}),ref:node=>{nodeRef.current=node;if(tabRef)tabRef(node)},role:"tab",id:`tab${id}`,"aria-selected":selected?"true":"false","aria-disabled":disabled?"true":"false","aria-controls":`panel${id}`,tabIndex:tabIndex||(selected?"0":null),"data-rttab":true}),children)};Tab.tabsRole="Tab";var _default=exports.default=Tab;