@bizhermit/react-sdk
Version:
React SDK
1 lines • 1.69 kB
JavaScript
;var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&__createBinding(t,e,n);return __setModuleDefault(t,e),t},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});const react_1=__importStar(require("react")),button_1=__importDefault(require("./button")),ToggleButton=e=>{const[t,n]=(0,react_1.useState)((()=>null==e.defaultKey?e.children[0]:e.children.find((t=>t.key===e.defaultKey))??e.children[0])),r=()=>{n(e.children[(e.children.findIndex((e=>e===t))+e.children.length+1)%e.children.length])},i=t=>{const r=e.children.find((e=>e.key===t));null!=r&&n(r)};return(0,react_1.useEffect)((()=>{const r=t.key;if(null==r){const t=e.children.find((e=>e.key===r));null!=t&&n(t)}}),[e.children]),react_1.default.createElement(button_1.default,{...t,$click:async(e,n)=>{(async()=>{const l=t.$click?.((t=>e(t)),n);null==l?(e(),r()):"string"==typeof l?(e(),i(l)):"function"!=typeof l.then?r():l.then((e=>{null==e||"string"!=typeof e?r():i(e)}))})()}})};exports.default=ToggleButton;