@bigbinary/neetoui-rn 0.0.239 → 0.0.240

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.Button=exports.BUTTON_VARIANTS=void 0;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _react=_interopRequireWildcard(require("react"));var _propTypes=_interopRequireDefault(require("@styled-system/prop-types"));var _propTypes2=_interopRequireDefault(require("prop-types"));var _reactNativeSizeMatters=require("react-native-size-matters");var _native=require("styled-components/native");var _=require("./");var _excluded=["variant","label","labelStyle","RightIcon","LeftIcon","disabled","isLoading","loadingText","fontFamily","color","fontSize"];var _this=this,_jsxFileName="/home/runner/work/neeto-ui-rn/neeto-ui-rn/src/components/Button.jsx";function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap();var cacheNodeInterop=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj;}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj};}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj);}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc);}else{newObj[key]=obj[key];}}}newObj.default=obj;if(cache){cache.set(obj,newObj);}return newObj;}var BUTTON_VARIANTS=Object.freeze({SOLID:"solid",SECONDARY:"secondary",TEXT:"text",DANGER:"danger",DANGER_INVERSE:"danger-inverse",DANGER_TEXT:"danger-text"});exports.BUTTON_VARIANTS=BUTTON_VARIANTS;var Button=function Button(_ref){var variant=_ref.variant,label=_ref.label,labelStyle=_ref.labelStyle,RightIcon=_ref.RightIcon,LeftIcon=_ref.LeftIcon,disabled=_ref.disabled,isLoading=_ref.isLoading,loadingText=_ref.loadingText,fontFamily=_ref.fontFamily,color=_ref.color,fontSize=_ref.fontSize,rest=(0,_objectWithoutProperties2.default)(_ref,_excluded);var theme=(0,_react.useContext)(_native.ThemeContext);var width=variant==="text"||variant==="danger-text"?null:"100%";var getButtonColors=function getButtonColors(){switch(variant){case BUTTON_VARIANTS.SOLID:return{bg:theme.colors.background[disabled?"grey400":"base"],border:theme.colors.background[disabled?"grey400":"base"],color:theme.colors.background.white,ripple:"white"};case BUTTON_VARIANTS.SECONDARY:return{bg:"transparent",border:theme.colors.background.base,color:theme.colors.font.base,ripple:theme.colors.background.base};case BUTTON_VARIANTS.TEXT:return{bg:"transparent",border:"transparent",color:theme.colors.font.primary,ripple:theme.colors.background.grey800};case BUTTON_VARIANTS.DANGER:return{bg:theme.colors.background.danger,border:theme.colors.background.danger,color:theme.colors.background.white,ripple:"white"};case BUTTON_VARIANTS.DANGER_INVERSE:return{bg:theme.colors.background.white,border:theme.colors.background.danger,color:theme.colors.background.danger,ripple:theme.colors.background.grey800};case BUTTON_VARIANTS.DANGER_TEXT:return{bg:"transparent",border:"transparent",color:theme.colors.background.danger,ripple:theme.colors.background.grey800};default:return{bg:theme.colors.background[disabled?"grey400":"base"],border:theme.colors.background[disabled?"grey400":"base"],color:theme.colors.background.white,ripple:"white"};}};var renderOpacity=function renderOpacity(){if(["secondary","danger","danger-inverse","danger-text"].includes(variant)&&disabled){return 0.5;}return 1;};return _react.default.createElement(_.Touchable,(0,_extends2.default)({alignItems:"center",bg:getButtonColors().bg,borderColor:getButtonColors().border,borderRadius:(0,_reactNativeSizeMatters.moderateScale)(8),borderWidth:(0,_reactNativeSizeMatters.moderateScale)(1),disabled:disabled||isLoading,flexDirection:"row",height:(0,_reactNativeSizeMatters.moderateScale)(48),justifyContent:"center",opacity:renderOpacity(),px:width===null?(0,_reactNativeSizeMatters.moderateScale)(8):undefined,rippleConfig:{color:getButtonColors().ripple},width:width},rest,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:157,columnNumber:5}}),isLoading?_react.default.createElement(_.Container,{flexDirection:"row",__self:_this,__source:{fileName:_jsxFileName,lineNumber:174,columnNumber:9}},_react.default.createElement(_.Loader,{color:getButtonColors().color,__self:_this,__source:{fileName:_jsxFileName,lineNumber:175,columnNumber:11}}),!!loadingText&&_react.default.createElement(_.Typography,(0,_extends2.default)({color:color||getButtonColors().color,fontFamily:fontFamily||theme.fonts.sf500,fontSize:fontSize,ml:(0,_reactNativeSizeMatters.moderateScale)(8),textAlign:"center"},labelStyle,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:177,columnNumber:13}}),loadingText)):_react.default.createElement(_react.default.Fragment,null,LeftIcon&&_react.default.createElement(LeftIcon,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:191,columnNumber:24}}),_react.default.createElement(_.Typography,(0,_extends2.default)({color:color||getButtonColors().color,fontFamily:fontFamily||theme.fonts.sf500,fontSize:fontSize,mx:(0,_reactNativeSizeMatters.moderateScale)(2),textAlign:"center"},labelStyle,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:192,columnNumber:11}}),label),RightIcon&&_react.default.createElement(RightIcon,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:202,columnNumber:25}})));};exports.Button=Button;Button.defaultProps={variant:"solid",isLoading:false,loadingText:"",fontSize:"m"};Button.propTypes=(0,_extends2.default)({},_propTypes.default.buttonStyle,_propTypes.default.flexbox,_propTypes.default.space,_propTypes.default.border,_propTypes.default.layout,_propTypes.default.color,{label:_propTypes2.default.string.isRequired,variant:_propTypes2.default.oneOf(Object.values(BUTTON_VARIANTS)),disabled:_propTypes2.default.bool,labelStyle:_propTypes2.default.object,RightIcon:_propTypes2.default.elementType,LeftIcon:_propTypes2.default.elementType,isLoading:_propTypes2.default.bool,loadingText:_propTypes2.default.string,fontFamily:_propTypes2.default.string,color:_propTypes2.default.string,fontSize:_propTypes2.default.string});
1
+ var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.Button=exports.BUTTON_VARIANTS=void 0;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _react=_interopRequireWildcard(require("react"));var _propTypes=_interopRequireDefault(require("@styled-system/prop-types"));var _propTypes2=_interopRequireDefault(require("prop-types"));var _reactNativeSizeMatters=require("react-native-size-matters");var _native=require("styled-components/native");var _=require("./");var _excluded=["variant","label","labelStyle","RightIcon","LeftIcon","disabled","isLoading","loadingText","fontFamily","color","fontSize"];var _this=this,_jsxFileName="/home/runner/work/neeto-ui-rn/neeto-ui-rn/src/components/Button.jsx";function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap();var cacheNodeInterop=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj;}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj};}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj);}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc);}else{newObj[key]=obj[key];}}}newObj.default=obj;if(cache){cache.set(obj,newObj);}return newObj;}var BUTTON_VARIANTS=Object.freeze({SOLID:"solid",SECONDARY:"secondary",TEXT:"text",DANGER:"danger",DANGER_INVERSE:"danger-inverse",DANGER_TEXT:"danger-text"});exports.BUTTON_VARIANTS=BUTTON_VARIANTS;var Button=_react.default.forwardRef(function(_ref,ref){var variant=_ref.variant,label=_ref.label,labelStyle=_ref.labelStyle,RightIcon=_ref.RightIcon,LeftIcon=_ref.LeftIcon,disabled=_ref.disabled,isLoading=_ref.isLoading,loadingText=_ref.loadingText,fontFamily=_ref.fontFamily,color=_ref.color,fontSize=_ref.fontSize,rest=(0,_objectWithoutProperties2.default)(_ref,_excluded);var theme=(0,_react.useContext)(_native.ThemeContext);var width=variant==="text"||variant==="danger-text"?null:"100%";var getButtonColors=function getButtonColors(){switch(variant){case BUTTON_VARIANTS.SOLID:return{bg:theme.colors.background[disabled?"grey400":"base"],border:theme.colors.background[disabled?"grey400":"base"],color:theme.colors.background.white,ripple:"white"};case BUTTON_VARIANTS.SECONDARY:return{bg:"transparent",border:theme.colors.background.base,color:theme.colors.font.base,ripple:theme.colors.background.base};case BUTTON_VARIANTS.TEXT:return{bg:"transparent",border:"transparent",color:theme.colors.font.primary,ripple:theme.colors.background.grey800};case BUTTON_VARIANTS.DANGER:return{bg:theme.colors.background.danger,border:theme.colors.background.danger,color:theme.colors.background.white,ripple:"white"};case BUTTON_VARIANTS.DANGER_INVERSE:return{bg:theme.colors.background.white,border:theme.colors.background.danger,color:theme.colors.background.danger,ripple:theme.colors.background.grey800};case BUTTON_VARIANTS.DANGER_TEXT:return{bg:"transparent",border:"transparent",color:theme.colors.background.danger,ripple:theme.colors.background.grey800};default:return{bg:theme.colors.background[disabled?"grey400":"base"],border:theme.colors.background[disabled?"grey400":"base"],color:theme.colors.background.white,ripple:"white"};}};var renderOpacity=function renderOpacity(){if(["secondary","danger","danger-inverse","danger-text"].includes(variant)&&disabled){return 0.5;}return 1;};return _react.default.createElement(_.Touchable,(0,_extends2.default)({alignItems:"center",bg:getButtonColors().bg,borderColor:getButtonColors().border,borderRadius:(0,_reactNativeSizeMatters.moderateScale)(8),borderWidth:(0,_reactNativeSizeMatters.moderateScale)(1),disabled:disabled||isLoading,flexDirection:"row",height:(0,_reactNativeSizeMatters.moderateScale)(48),justifyContent:"center",opacity:renderOpacity(),px:width===null?(0,_reactNativeSizeMatters.moderateScale)(8):undefined,ref:ref,rippleConfig:{color:getButtonColors().ripple},width:width},rest,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:162,columnNumber:7}}),isLoading?_react.default.createElement(_.Container,{flexDirection:"row",__self:_this,__source:{fileName:_jsxFileName,lineNumber:180,columnNumber:11}},_react.default.createElement(_.Loader,{color:getButtonColors().color,__self:_this,__source:{fileName:_jsxFileName,lineNumber:181,columnNumber:13}}),!!loadingText&&_react.default.createElement(_.Typography,(0,_extends2.default)({color:color||getButtonColors().color,fontFamily:fontFamily||theme.fonts.sf500,fontSize:fontSize,ml:(0,_reactNativeSizeMatters.moderateScale)(8),textAlign:"center"},labelStyle,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:183,columnNumber:15}}),loadingText)):_react.default.createElement(_react.default.Fragment,null,LeftIcon&&_react.default.createElement(LeftIcon,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:197,columnNumber:26}}),_react.default.createElement(_.Typography,(0,_extends2.default)({color:color||getButtonColors().color,fontFamily:fontFamily||theme.fonts.sf500,fontSize:fontSize,mx:(0,_reactNativeSizeMatters.moderateScale)(2),textAlign:"center"},labelStyle,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:198,columnNumber:13}}),label),RightIcon&&_react.default.createElement(RightIcon,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:208,columnNumber:27}})));});exports.Button=Button;Button.defaultProps={variant:"solid",isLoading:false,loadingText:"",fontSize:"m"};Button.propTypes=(0,_extends2.default)({},_propTypes.default.buttonStyle,_propTypes.default.flexbox,_propTypes.default.space,_propTypes.default.border,_propTypes.default.layout,_propTypes.default.color,{label:_propTypes2.default.string.isRequired,variant:_propTypes2.default.oneOf(Object.values(BUTTON_VARIANTS)),disabled:_propTypes2.default.bool,labelStyle:_propTypes2.default.object,RightIcon:_propTypes2.default.elementType,LeftIcon:_propTypes2.default.elementType,isLoading:_propTypes2.default.bool,loadingText:_propTypes2.default.string,fontFamily:_propTypes2.default.string,color:_propTypes2.default.string,fontSize:_propTypes2.default.string});Button.displayName="Button";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bigbinary/neetoui-rn",
3
- "version": "0.0.239",
3
+ "version": "0.0.240",
4
4
  "main": "lib/index.js",
5
5
  "author": "BigBinary",
6
6
  "license": "MIT",
@@ -60,7 +60,7 @@
60
60
  "react-native-gesture-handler": "^2.4.0",
61
61
  "react-native-modal": "^13.0.0",
62
62
  "react-native-pell-rich-editor": "^1.8.6",
63
- "react-native-popover-view": "^4.1.0",
63
+ "react-native-popover-view": "^5.1.7",
64
64
  "react-native-remix-icon": "^0.3.0",
65
65
  "react-native-safe-area-context": "^3.3.2",
66
66
  "react-native-size-matters": "^0.4.0",
@@ -82,22 +82,22 @@
82
82
  "@react-navigation/bottom-tabs": "^6.3.2",
83
83
  "@react-navigation/material-top-tabs": "^6.2.2",
84
84
  "@react-navigation/native": "^6.0.11",
85
- "@storybook/addon-actions": "^6.3.12",
86
- "@storybook/addon-controls": "^6.3.12",
87
- "@storybook/addon-essentials": "^6.4.0-beta.33",
85
+ "@storybook/addon-actions": "^6.5.15",
86
+ "@storybook/addon-controls": "^6.5.15",
87
+ "@storybook/addon-essentials": "^6.5.15",
88
88
  "@storybook/addon-knobs": "^5.3",
89
- "@storybook/addon-links": "^5.3",
90
- "@storybook/addon-ondevice-actions": "^6.0.1-alpha.6",
91
- "@storybook/addon-ondevice-backgrounds": "^6.0.1-alpha.6",
92
- "@storybook/addon-ondevice-controls": "^6.0.1-alpha.6",
93
- "@storybook/addon-ondevice-knobs": "^5.3.25",
94
- "@storybook/addon-ondevice-notes": "^6.0.1-alpha.6",
95
- "@storybook/addon-storyshots": "^6.3.12",
96
- "@storybook/addons": "^6.3.1",
97
- "@storybook/cli": "^6.3.12",
98
- "@storybook/react": "^6.3.12",
99
- "@storybook/react-native": "^6.0.1-alpha.6",
100
- "@storybook/react-native-server": "^6.0.0-alpha.0",
89
+ "@storybook/addon-links": "^6.5",
90
+ "@storybook/addon-ondevice-actions": "^6.0.1-beta.11",
91
+ "@storybook/addon-ondevice-backgrounds": "^6.0.1-beta.11",
92
+ "@storybook/addon-ondevice-controls": "^6.0.1-beta.11",
93
+ "@storybook/addon-ondevice-knobs": "^6.0.1-beta.11",
94
+ "@storybook/addon-ondevice-notes": "^6.0.1-beta.11",
95
+ "@storybook/addon-storyshots": "^6.5.15",
96
+ "@storybook/addons": "^6.5.15",
97
+ "@storybook/cli": "^6.5.15",
98
+ "@storybook/react": "^6.5.15",
99
+ "@storybook/react-native": "^6.0.1-beta.11",
100
+ "@storybook/react-native-server": "^6.0.1-beta.11",
101
101
  "@svgr/webpack": "^5.5.0",
102
102
  "babel-jest": "^26.6.3",
103
103
  "babel-loader": "^8.2.3",
@@ -122,20 +122,20 @@
122
122
  "metro-react-native-babel-preset": "^0.66.2",
123
123
  "prettier": "^2.3.1",
124
124
  "ramda": "^0.28.0",
125
- "react": "17.0.2",
125
+ "react": "18.1.0",
126
126
  "react-dom": "17.0.2",
127
- "react-native": "0.66.5",
127
+ "react-native": "0.70.6",
128
128
  "react-native-device-info": "^10.3.0",
129
129
  "react-native-fast-image": "^8.6.0",
130
130
  "react-native-pager-view": "^5.4.25",
131
- "react-native-reanimated": "^2.7.0",
131
+ "react-native-reanimated": "2.13.0",
132
132
  "react-native-screens": "^3.15.0",
133
- "react-native-storybook-loader": "^2.0.4",
133
+ "react-native-storybook-loader": "^2.0.5",
134
134
  "react-native-svg": "^12.4.4",
135
135
  "react-native-svg-transformer": "^1.0.0",
136
136
  "react-native-tab-view": "^3.1.1",
137
137
  "react-native-web": "^0.17.5",
138
- "react-native-webview": "11.14.4",
138
+ "react-native-webview": "^11.26.0",
139
139
  "react-test-renderer": "17.0.2",
140
140
  "serve": "^13.0.2",
141
141
  "url-loader": "^4.1.1",
@@ -69,142 +69,149 @@ export const BUTTON_VARIANTS = Object.freeze({
69
69
  *
70
70
  */
71
71
 
72
- export const Button = ({
73
- variant,
74
- label,
75
- labelStyle,
76
- RightIcon,
77
- LeftIcon,
78
- disabled,
79
- isLoading,
80
- loadingText,
81
- fontFamily,
82
- color,
83
- fontSize,
84
- ...rest
85
- }) => {
86
- const theme = useContext(ThemeContext);
87
- const width = variant === "text" || variant === "danger-text" ? null : "100%";
72
+ export const Button = React.forwardRef(
73
+ (
74
+ {
75
+ variant,
76
+ label,
77
+ labelStyle,
78
+ RightIcon,
79
+ LeftIcon,
80
+ disabled,
81
+ isLoading,
82
+ loadingText,
83
+ fontFamily,
84
+ color,
85
+ fontSize,
86
+ ...rest
87
+ },
88
+ ref
89
+ ) => {
90
+ const theme = useContext(ThemeContext);
91
+ const width =
92
+ variant === "text" || variant === "danger-text" ? null : "100%";
88
93
 
89
- const getButtonColors = () => {
90
- switch (variant) {
91
- case BUTTON_VARIANTS.SOLID:
92
- return {
93
- bg: theme.colors.background[disabled ? "grey400" : "base"],
94
- border: theme.colors.background[disabled ? "grey400" : "base"],
95
- color: theme.colors.background.white,
96
- ripple: "white",
97
- };
98
- case BUTTON_VARIANTS.SECONDARY:
99
- return {
100
- bg: "transparent",
101
- border: theme.colors.background.base,
102
- color: theme.colors.font.base,
103
- ripple: theme.colors.background.base,
104
- };
105
- case BUTTON_VARIANTS.TEXT:
106
- return {
107
- bg: "transparent",
108
- border: "transparent",
109
- color: theme.colors.font.primary,
110
- ripple: theme.colors.background.grey800,
111
- };
112
- case BUTTON_VARIANTS.DANGER:
113
- return {
114
- bg: theme.colors.background.danger,
115
- border: theme.colors.background.danger,
116
- color: theme.colors.background.white,
117
- ripple: "white",
118
- };
119
- case BUTTON_VARIANTS.DANGER_INVERSE:
120
- return {
121
- bg: theme.colors.background.white,
122
- border: theme.colors.background.danger,
123
- color: theme.colors.background.danger,
124
- ripple: theme.colors.background.grey800,
125
- };
126
- case BUTTON_VARIANTS.DANGER_TEXT:
127
- return {
128
- bg: "transparent",
129
- border: "transparent",
130
- color: theme.colors.background.danger,
131
- ripple: theme.colors.background.grey800,
132
- };
133
- default:
134
- return {
135
- bg: theme.colors.background[disabled ? "grey400" : "base"],
136
- border: theme.colors.background[disabled ? "grey400" : "base"],
137
- color: theme.colors.background.white,
138
- ripple: "white",
139
- };
140
- }
141
- };
94
+ const getButtonColors = () => {
95
+ switch (variant) {
96
+ case BUTTON_VARIANTS.SOLID:
97
+ return {
98
+ bg: theme.colors.background[disabled ? "grey400" : "base"],
99
+ border: theme.colors.background[disabled ? "grey400" : "base"],
100
+ color: theme.colors.background.white,
101
+ ripple: "white",
102
+ };
103
+ case BUTTON_VARIANTS.SECONDARY:
104
+ return {
105
+ bg: "transparent",
106
+ border: theme.colors.background.base,
107
+ color: theme.colors.font.base,
108
+ ripple: theme.colors.background.base,
109
+ };
110
+ case BUTTON_VARIANTS.TEXT:
111
+ return {
112
+ bg: "transparent",
113
+ border: "transparent",
114
+ color: theme.colors.font.primary,
115
+ ripple: theme.colors.background.grey800,
116
+ };
117
+ case BUTTON_VARIANTS.DANGER:
118
+ return {
119
+ bg: theme.colors.background.danger,
120
+ border: theme.colors.background.danger,
121
+ color: theme.colors.background.white,
122
+ ripple: "white",
123
+ };
124
+ case BUTTON_VARIANTS.DANGER_INVERSE:
125
+ return {
126
+ bg: theme.colors.background.white,
127
+ border: theme.colors.background.danger,
128
+ color: theme.colors.background.danger,
129
+ ripple: theme.colors.background.grey800,
130
+ };
131
+ case BUTTON_VARIANTS.DANGER_TEXT:
132
+ return {
133
+ bg: "transparent",
134
+ border: "transparent",
135
+ color: theme.colors.background.danger,
136
+ ripple: theme.colors.background.grey800,
137
+ };
138
+ default:
139
+ return {
140
+ bg: theme.colors.background[disabled ? "grey400" : "base"],
141
+ border: theme.colors.background[disabled ? "grey400" : "base"],
142
+ color: theme.colors.background.white,
143
+ ripple: "white",
144
+ };
145
+ }
146
+ };
142
147
 
143
- const renderOpacity = () => {
144
- if (
145
- ["secondary", "danger", "danger-inverse", "danger-text"].includes(
146
- variant
147
- ) &&
148
- disabled
149
- ) {
150
- return 0.5;
151
- }
148
+ const renderOpacity = () => {
149
+ if (
150
+ ["secondary", "danger", "danger-inverse", "danger-text"].includes(
151
+ variant
152
+ ) &&
153
+ disabled
154
+ ) {
155
+ return 0.5;
156
+ }
152
157
 
153
- return 1;
154
- };
158
+ return 1;
159
+ };
155
160
 
156
- return (
157
- <Touchable
158
- alignItems="center"
159
- bg={getButtonColors().bg}
160
- borderColor={getButtonColors().border}
161
- borderRadius={moderateScale(8)}
162
- borderWidth={moderateScale(1)}
163
- disabled={disabled || isLoading}
164
- flexDirection="row"
165
- height={moderateScale(48)}
166
- justifyContent="center"
167
- opacity={renderOpacity()}
168
- px={width === null ? moderateScale(8) : undefined}
169
- rippleConfig={{ color: getButtonColors().ripple }}
170
- width={width}
171
- {...rest}
172
- >
173
- {isLoading ? (
174
- <Container flexDirection="row">
175
- <Loader color={getButtonColors().color} />
176
- {!!loadingText && (
161
+ return (
162
+ <Touchable
163
+ alignItems="center"
164
+ bg={getButtonColors().bg}
165
+ borderColor={getButtonColors().border}
166
+ borderRadius={moderateScale(8)}
167
+ borderWidth={moderateScale(1)}
168
+ disabled={disabled || isLoading}
169
+ flexDirection="row"
170
+ height={moderateScale(48)}
171
+ justifyContent="center"
172
+ opacity={renderOpacity()}
173
+ px={width === null ? moderateScale(8) : undefined}
174
+ ref={ref}
175
+ rippleConfig={{ color: getButtonColors().ripple }}
176
+ width={width}
177
+ {...rest}
178
+ >
179
+ {isLoading ? (
180
+ <Container flexDirection="row">
181
+ <Loader color={getButtonColors().color} />
182
+ {!!loadingText && (
183
+ <Typography
184
+ color={color || getButtonColors().color}
185
+ fontFamily={fontFamily || theme.fonts.sf500}
186
+ fontSize={fontSize}
187
+ ml={moderateScale(8)}
188
+ textAlign="center"
189
+ {...labelStyle}
190
+ >
191
+ {loadingText}
192
+ </Typography>
193
+ )}
194
+ </Container>
195
+ ) : (
196
+ <>
197
+ {LeftIcon && <LeftIcon />}
177
198
  <Typography
178
199
  color={color || getButtonColors().color}
179
200
  fontFamily={fontFamily || theme.fonts.sf500}
180
201
  fontSize={fontSize}
181
- ml={moderateScale(8)}
202
+ mx={moderateScale(2)}
182
203
  textAlign="center"
183
204
  {...labelStyle}
184
205
  >
185
- {loadingText}
206
+ {label}
186
207
  </Typography>
187
- )}
188
- </Container>
189
- ) : (
190
- <>
191
- {LeftIcon && <LeftIcon />}
192
- <Typography
193
- color={color || getButtonColors().color}
194
- fontFamily={fontFamily || theme.fonts.sf500}
195
- fontSize={fontSize}
196
- mx={moderateScale(2)}
197
- textAlign="center"
198
- {...labelStyle}
199
- >
200
- {label}
201
- </Typography>
202
- {RightIcon && <RightIcon />}
203
- </>
204
- )}
205
- </Touchable>
206
- );
207
- };
208
+ {RightIcon && <RightIcon />}
209
+ </>
210
+ )}
211
+ </Touchable>
212
+ );
213
+ }
214
+ );
208
215
 
209
216
  Button.defaultProps = {
210
217
  variant: "solid",
@@ -261,3 +268,4 @@ Button.propTypes = {
261
268
  color: PropTypes.string,
262
269
  fontSize: PropTypes.string,
263
270
  };
271
+ Button.displayName = "Button";