UNPKG

@madeja-studio/telar

Version:

UI component library by Madeja Studio

2 lines 4.24 kB
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.Button=void 0;var _asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _react=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _index=_interopRequireDefault(require("../../tailwind/index.js"));var _ThemeContextProvider=require("../../theme/ThemeContextProvider.js");var _index2=require("../Icon/index.js");var _index3=require("../layout/index.js");var _Container=require("./Container.js");var _jsxRuntime=require("react/jsx-runtime");var _excluded=["color","hasAutoLoad","icon","isDisabled","isLoading","onPress","rowStyle","text","textStyle","textTint","tint","variant"];var _this=void 0,_jsxFileName="/Users/sergio/Development/madeja.studio/telar/src/component/Button/Button.tsx";function _getRequireWildcardCache(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap(),t=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(e){return e?t:r;})(e);}function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=_getRequireWildcardCache(r);if(t&&t.has(e))return t.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&{}.hasOwnProperty.call(e,u)){var i=a?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(n,u,i):n[u]=e[u];}return n.default=e,t&&t.set(e,n),n;}var Button=exports.Button=function Button(_ref){var _theme$button$default;var _ref$color=_ref.color,color=_ref$color===void 0?'primary':_ref$color,hasAutoLoad=_ref.hasAutoLoad,icon=_ref.icon,isDisabled=_ref.isDisabled,isLoading=_ref.isLoading,onPress=_ref.onPress,rowStyle=_ref.rowStyle,text=_ref.text,textStyle=_ref.textStyle,textTint=_ref.textTint,tint=_ref.tint,_ref$variant=_ref.variant,variant=_ref$variant===void 0?'contained':_ref$variant,props=(0,_objectWithoutProperties2.default)(_ref,_excluded);var _useState=(0,_react.useState)(false),_useState2=(0,_slicedToArray2.default)(_useState,2),isAutoLoading=_useState2[0],setIsAutoLoading=_useState2[1];var _useTheme=(0,_ThemeContextProvider.useTheme)(),theme=_useTheme.theme;var resolvedHasAutoload=(_theme$button$default=theme.button.defaults.hasAutoLoad)!=null?_theme$button$default:hasAutoLoad;return(0,_jsxRuntime.jsx)(_Container.Container,Object.assign({isDisabled:isAutoLoading||isLoading||isDisabled,onPress:(0,_asyncToGenerator2.default)(function*(){if(resolvedHasAutoload)setIsAutoLoading(true);try{yield onPress==null?void 0:onPress();}finally{if(resolvedHasAutoload)setIsAutoLoading(false);}})},props,{children:(0,_jsxRuntime.jsxs)(_index3.Row,{style:[(0,_index.default)`flex-row center rounded-2xl min-h-press ${text?'px-4 py-2':'p-4'}`,variant==='contained'?{backgroundColor:tint!=null?tint:theme.button.color[color].background}:{},variant==='outlined'?{borderColor:tint!=null?tint:theme.button.color[color].background,borderWidth:2,paddingBottom:0,paddingTop:0}:{},{opacity:isAutoLoading||isLoading||isDisabled?0.5:1},theme.button.defaults.style.row,rowStyle],children:[(isAutoLoading||isLoading)&&(0,_jsxRuntime.jsx)(_reactNative.ActivityIndicator,{color:variant==='contained'?theme.button.color[color].text:theme.button.color[color].background,style:(0,_index.default)`mr-4`}),text&&(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[(0,_index.default)`uppercase font-bold ${icon?'mr-2':''}`,variant==='contained'?{color:textTint!=null?textTint:theme.button.color[color].text}:{color:textTint!=null?textTint:theme.button.color[color].background},theme.button.defaults.style.text,textStyle],children:text}),(0,_index2.isIconReference)(icon)?(0,_jsxRuntime.jsx)(_index2.VectorIcon,{color:variant==='contained'?theme.button.color[color].text:theme.button.color[color].background,icon:icon,size:24}):icon]})}));}; //# sourceMappingURL=Button.js.map