@bigbinary/neetoui-rn 0.0.234 → 0.0.236

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.
package/index.d.ts CHANGED
@@ -40,7 +40,6 @@ import {
40
40
  ToastShowParams,
41
41
  ToastConfig,
42
42
  } from "react-native-toast-message";
43
- import { RippleProps } from "react-native-material-ripple";
44
43
  import { FastImageProps } from "react-native-fast-image";
45
44
 
46
45
  import { theme as themeDef } from "./src/theme";
@@ -106,8 +105,22 @@ interface TouchableOpacityProps
106
105
  ButtonStyleProps {
107
106
  children?: React.ReactNode;
108
107
  }
109
- interface TouchableProps extends RippleProps, StyleProps, ButtonStyleProps {
108
+
109
+ interface RipplePropTypes {
110
+ isCentered?: boolean;
111
+ isSequential?: boolean;
112
+ shouldFade?: boolean;
113
+ shouldOverflowContainer?: boolean;
114
+ color?: string;
115
+ opacity?: number;
116
+ duration?: number;
117
+ size?: number;
118
+ containerBorderRadius?: number;
119
+ }
120
+
121
+ interface TouchableProps extends StyleProps, ButtonStyleProps {
110
122
  children?: React.ReactNode;
123
+ rippleConfig?: RipplePropTypes;
111
124
  }
112
125
 
113
126
  interface AccordionProps extends ViewProps {
@@ -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(),rippleColor: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:173,columnNumber:9}},_react.default.createElement(_.Loader,{color:getButtonColors().color,__self:_this,__source:{fileName:_jsxFileName,lineNumber:174,columnNumber:11}}),!!loadingText&&_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:176,columnNumber:13}}),loadingText)):_react.default.createElement(_react.default.Fragment,null,LeftIcon&&_react.default.createElement(LeftIcon,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:190,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:191,columnNumber:11}}),label),RightIcon&&_react.default.createElement(RightIcon,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:201,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=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});
@@ -0,0 +1 @@
1
+ var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _defineProperty2=_interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _assertThisInitialized2=_interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));var _inherits2=_interopRequireDefault(require("@babel/runtime/helpers/inherits"));var _possibleConstructorReturn2=_interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));var _getPrototypeOf2=_interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));var _react=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _propTypes=_interopRequireDefault(require("prop-types"));var _reactNativeSizeMatters=require("react-native-size-matters");var _TouchableWithoutFeedback=_interopRequireDefault(require("./TouchableWithoutFeedback"));var _excluded=["delayLongPress","delayPressIn","delayPressOut","disabled","hitSlop","pressRetentionOffset","children","rippleContainerBorderRadius","rippleOutsideContainer","testID","nativeID","accessible","accessibilityHint","accessibilityLabel"];var _jsxFileName="/home/runner/work/neeto-ui-rn/neeto-ui-rn/src/components/Ripple.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;}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=(0,_getPrototypeOf2.default)(Derived),result;if(hasNativeReflectConstruct){var NewTarget=(0,_getPrototypeOf2.default)(this).constructor;result=Reflect.construct(Super,arguments,NewTarget);}else{result=Super.apply(this,arguments);}return(0,_possibleConstructorReturn2.default)(this,result);};}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true;}catch(e){return false;}}var radius=(0,_reactNativeSizeMatters.moderateScale)(10);var Ripple=function(_PureComponent){(0,_inherits2.default)(Ripple,_PureComponent);var _super=_createSuper(Ripple);function Ripple(props){var _this;(0,_classCallCheck2.default)(this,Ripple);_this=_super.call(this,props);_this.onLayout=_this.onLayout.bind((0,_assertThisInitialized2.default)(_this));_this.onPress=_this.onPress.bind((0,_assertThisInitialized2.default)(_this));_this.onPressIn=_this.onPressIn.bind((0,_assertThisInitialized2.default)(_this));_this.onPressOut=_this.onPressOut.bind((0,_assertThisInitialized2.default)(_this));_this.onLongPress=_this.onLongPress.bind((0,_assertThisInitialized2.default)(_this));_this.onAnimationEnd=_this.onAnimationEnd.bind((0,_assertThisInitialized2.default)(_this));_this.renderRipple=_this.renderRipple.bind((0,_assertThisInitialized2.default)(_this));_this.unique=0;_this.mounted=false;_this.state={width:0,height:0,ripples:[]};return _this;}(0,_createClass2.default)(Ripple,[{key:"componentDidMount",value:function componentDidMount(){this.mounted=true;}},{key:"componentWillUnmount",value:function componentWillUnmount(){this.mounted=false;}},{key:"onLayout",value:function onLayout(event){var _event$nativeEvent$la=event.nativeEvent.layout,width=_event$nativeEvent$la.width,height=_event$nativeEvent$la.height;var onLayout=this.props.onLayout;if("function"===typeof onLayout){onLayout(event);}this.setState({width:width,height:height});}},{key:"onPress",value:function onPress(event){var ripples=this.state.ripples;var _this$props=this.props,onPress=_this$props.onPress,rippleSequential=_this$props.rippleSequential;if(!rippleSequential||!ripples.length){if("function"===typeof onPress){requestAnimationFrame(function(){return onPress(event);});}this.startRipple(event);}}},{key:"onLongPress",value:function onLongPress(event){var onLongPress=this.props.onLongPress;if("function"===typeof onLongPress){requestAnimationFrame(function(){return onLongPress(event);});}this.startRipple(event);}},{key:"onPressIn",value:function onPressIn(event){var onPressIn=this.props.onPressIn;if("function"===typeof onPressIn){onPressIn(event);}}},{key:"onPressOut",value:function onPressOut(event){var onPressOut=this.props.onPressOut;if("function"===typeof onPressOut){onPressOut(event);}}},{key:"onAnimationEnd",value:function onAnimationEnd(){if(this.mounted){this.setState(function(_ref){var ripples=_ref.ripples;return{ripples:ripples.slice(1)};});}}},{key:"startRipple",value:function startRipple(event){var _this$state=this.state,width=_this$state.width,height=_this$state.height;var _this$props2=this.props,rippleDuration=_this$props2.rippleDuration,rippleCentered=_this$props2.rippleCentered,rippleSize=_this$props2.rippleSize,onRippleAnimation=_this$props2.onRippleAnimation;var w2=0.5*width;var h2=0.5*height;var _ref2=rippleCentered?{locationX:w2,locationY:h2}:event.nativeEvent,locationX=_ref2.locationX,locationY=_ref2.locationY;var offsetX=Math.abs(w2-locationX);var offsetY=Math.abs(h2-locationY);var size=rippleSize>0?0.5*rippleSize:Math.sqrt(Math.pow(w2+offsetX,2)+Math.pow(h2+offsetY,2));var ripple={unique:this.unique++,progress:new _reactNative.Animated.Value(0),locationX:locationX,locationY:locationY,size:size};var animation=_reactNative.Animated.timing(ripple.progress,{toValue:1,easing:_reactNative.Easing.out(_reactNative.Easing.ease),duration:rippleDuration,useNativeDriver:true});onRippleAnimation(animation,this.onAnimationEnd);this.setState(function(_ref3){var ripples=_ref3.ripples;return{ripples:ripples.concat(ripple)};});}},{key:"renderRipple",value:function renderRipple(_ref4){var _rippleStyle;var unique=_ref4.unique,progress=_ref4.progress,locationX=_ref4.locationX,locationY=_ref4.locationY,size=_ref4.size;var _this$props3=this.props,rippleColor=_this$props3.rippleColor,rippleOpacity=_this$props3.rippleOpacity,rippleFades=_this$props3.rippleFades;var rippleStyle=(_rippleStyle={top:locationY-radius},(0,_defineProperty2.default)(_rippleStyle,_reactNative.I18nManager.isRTL?"right":"left",locationX-radius),(0,_defineProperty2.default)(_rippleStyle,"backgroundColor",rippleColor),(0,_defineProperty2.default)(_rippleStyle,"transform",[{scale:progress.interpolate({inputRange:[0,1],outputRange:[0.5/radius,size/radius]})}]),(0,_defineProperty2.default)(_rippleStyle,"opacity",rippleFades?progress.interpolate({inputRange:[0,1],outputRange:[rippleOpacity,0]}):rippleOpacity),_rippleStyle);return _react.default.createElement(_reactNative.Animated.View,{key:unique,style:[styles.ripple,rippleStyle],__self:this,__source:{fileName:_jsxFileName,lineNumber:205,columnNumber:12}});}},{key:"render",value:function render(){var ripples=this.state.ripples;var _this$props4=this.props,delayLongPress=_this$props4.delayLongPress,delayPressIn=_this$props4.delayPressIn,delayPressOut=_this$props4.delayPressOut,disabled=_this$props4.disabled,hitSlop=_this$props4.hitSlop,pressRetentionOffset=_this$props4.pressRetentionOffset,children=_this$props4.children,rippleContainerBorderRadius=_this$props4.rippleContainerBorderRadius,rippleOutsideContainer=_this$props4.rippleOutsideContainer,testID=_this$props4.testID,nativeID=_this$props4.nativeID,accessible=_this$props4.accessible,accessibilityHint=_this$props4.accessibilityHint,accessibilityLabel=_this$props4.accessibilityLabel,props=(0,_objectWithoutProperties2.default)(_this$props4,_excluded);var touchableProps=(0,_extends2.default)({delayLongPress:delayLongPress,delayPressIn:delayPressIn,delayPressOut:delayPressOut,disabled:disabled,hitSlop:hitSlop,pressRetentionOffset:pressRetentionOffset,testID:testID,accessible:accessible,accessibilityHint:accessibilityHint,accessibilityLabel:accessibilityLabel,onLayout:this.onLayout,onPress:this.onPress,onLongPress:this.onLongPress,onPressIn:this.onPressIn,onPressOut:this.onPressOut},"web"!==_reactNative.Platform.OS?{nativeID:nativeID}:null);var containerStyle={borderRadius:rippleContainerBorderRadius};return _react.default.createElement(_TouchableWithoutFeedback.default,(0,_extends2.default)({},touchableProps,{__self:this,__source:{fileName:_jsxFileName,lineNumber:253,columnNumber:7}}),_react.default.createElement(_reactNative.Animated.View,(0,_extends2.default)({},props,{collapsable:false,pointerEvents:"box-only",__self:this,__source:{fileName:_jsxFileName,lineNumber:254,columnNumber:9}}),children,_react.default.createElement(_reactNative.View,{style:[styles.container(rippleOutsideContainer),containerStyle],__self:this,__source:{fileName:_jsxFileName,lineNumber:256,columnNumber:11}},ripples.map(this.renderRipple))));}}]);return Ripple;}(_react.PureComponent);exports.default=Ripple;Ripple.defaultProps=(0,_extends2.default)({},_TouchableWithoutFeedback.default.defaultProps,{rippleColor:"rgb(0, 0, 0)",rippleOpacity:0.3,rippleDuration:400,rippleSize:0,rippleContainerBorderRadius:0,rippleCentered:false,rippleSequential:false,rippleFades:true,rippleOutsideContainer:false,disabled:false,onRippleAnimation:function onRippleAnimation(animation,onComplete){return animation.start(onComplete);}});Ripple.propTypes=(0,_extends2.default)({},_reactNative.Animated.View.propTypes,_TouchableWithoutFeedback.default.propTypes,{rippleColor:_propTypes.default.string,rippleOpacity:_propTypes.default.number,rippleDuration:_propTypes.default.number,rippleSize:_propTypes.default.number,rippleContainerBorderRadius:_propTypes.default.number,rippleCentered:_propTypes.default.bool,rippleSequential:_propTypes.default.bool,rippleFades:_propTypes.default.bool,rippleOutsideContainer:_propTypes.default.bool,disabled:_propTypes.default.bool,onRippleAnimation:_propTypes.default.func});var styles=_reactNative.StyleSheet.create({container:function container(rippleOutsideContainer){return(0,_extends2.default)({},_reactNative.StyleSheet.absoluteFillObject,{backgroundColor:"transparent",overflow:rippleOutsideContainer?"visible":"hidden"});},ripple:{width:radius*2,height:radius*2,borderRadius:radius,overflow:"hidden",position:"absolute"}});
@@ -1 +1 @@
1
- var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.SocialButton=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 _appleLogo=_interopRequireDefault(require("../../assets/icons/apple-logo.svg"));var _googleLogo=_interopRequireDefault(require("../../assets/icons/google-logo.svg"));var _=require("./");var _excluded=["variant","disabled","labelStyle","isLoading"];var _this=this,_jsxFileName="/home/runner/work/neeto-ui-rn/neeto-ui-rn/src/components/SocialButton.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 SocialButton=function SocialButton(_ref){var variant=_ref.variant,disabled=_ref.disabled,labelStyle=_ref.labelStyle,isLoading=_ref.isLoading,rest=(0,_objectWithoutProperties2.default)(_ref,_excluded);var theme=(0,_react.useContext)(_native.ThemeContext);var capitalize=function capitalize(str){return""+str.charAt(0).toUpperCase()+str.slice(1);};return _react.default.createElement(_.Touchable,(0,_extends2.default)({alignItems:"center",bg:"transparent",borderColor:theme.colors.border.grey800,borderRadius:(0,_reactNativeSizeMatters.moderateScale)(8),borderWidth:(0,_reactNativeSizeMatters.moderateScale)(1),disabled:disabled,height:(0,_reactNativeSizeMatters.moderateScale)(48),justifyContent:"center",rippleColor:theme.colors.background.grey800,width:"100%"},rest,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:48,columnNumber:5}}),isLoading?_react.default.createElement(_.Loader,{color:theme.colors.background.grey800,__self:_this,__source:{fileName:_jsxFileName,lineNumber:62,columnNumber:9}}):_react.default.createElement(_react.default.Fragment,null,_react.default.createElement(_.Container,{left:(0,_reactNativeSizeMatters.moderateScale)(17),position:"absolute",__self:_this,__source:{fileName:_jsxFileName,lineNumber:65,columnNumber:11}},variant==="apple"&&_react.default.createElement(_appleLogo.default,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:66,columnNumber:37}}),variant==="google"&&_react.default.createElement(_googleLogo.default,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:67,columnNumber:38}})),_react.default.createElement(_.Typography,(0,_extends2.default)({color:theme.colors.font.primary,fontFamily:theme.fonts.sf500,fontSize:"m"},labelStyle,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:69,columnNumber:11}}),"Continue with ",capitalize(variant))));};exports.SocialButton=SocialButton;SocialButton.propTypes=(0,_extends2.default)({},_propTypes.default.buttonStyle,_propTypes.default.flexbox,_propTypes.default.space,_propTypes.default.border,_propTypes.default.layout,_propTypes.default.color,{variant:_propTypes2.default.oneOf(["apple","google"]),disabled:_propTypes2.default.bool,labelStyle:_propTypes2.default.object,isLoading:_propTypes2.default.bool});
1
+ var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.SocialButton=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 _appleLogo=_interopRequireDefault(require("../../assets/icons/apple-logo.svg"));var _googleLogo=_interopRequireDefault(require("../../assets/icons/google-logo.svg"));var _=require("./");var _excluded=["variant","disabled","labelStyle","isLoading"];var _this=this,_jsxFileName="/home/runner/work/neeto-ui-rn/neeto-ui-rn/src/components/SocialButton.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 SocialButton=function SocialButton(_ref){var variant=_ref.variant,disabled=_ref.disabled,labelStyle=_ref.labelStyle,isLoading=_ref.isLoading,rest=(0,_objectWithoutProperties2.default)(_ref,_excluded);var theme=(0,_react.useContext)(_native.ThemeContext);var capitalize=function capitalize(str){return""+str.charAt(0).toUpperCase()+str.slice(1);};return _react.default.createElement(_.Touchable,(0,_extends2.default)({alignItems:"center",bg:"transparent",borderColor:theme.colors.border.grey800,borderRadius:(0,_reactNativeSizeMatters.moderateScale)(8),borderWidth:(0,_reactNativeSizeMatters.moderateScale)(1),disabled:disabled,height:(0,_reactNativeSizeMatters.moderateScale)(48),justifyContent:"center",rippleConfig:{color:theme.colors.background.grey800},width:"100%"},rest,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:48,columnNumber:5}}),isLoading?_react.default.createElement(_.Loader,{color:theme.colors.background.grey800,__self:_this,__source:{fileName:_jsxFileName,lineNumber:62,columnNumber:9}}):_react.default.createElement(_react.default.Fragment,null,_react.default.createElement(_.Container,{left:(0,_reactNativeSizeMatters.moderateScale)(17),position:"absolute",__self:_this,__source:{fileName:_jsxFileName,lineNumber:65,columnNumber:11}},variant==="apple"&&_react.default.createElement(_appleLogo.default,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:66,columnNumber:37}}),variant==="google"&&_react.default.createElement(_googleLogo.default,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:67,columnNumber:38}})),_react.default.createElement(_.Typography,(0,_extends2.default)({color:theme.colors.font.primary,fontFamily:theme.fonts.sf500,fontSize:"m"},labelStyle,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:69,columnNumber:11}}),"Continue with ",capitalize(variant))));};exports.SocialButton=SocialButton;SocialButton.propTypes=(0,_extends2.default)({},_propTypes.default.buttonStyle,_propTypes.default.flexbox,_propTypes.default.space,_propTypes.default.border,_propTypes.default.layout,_propTypes.default.color,{variant:_propTypes2.default.oneOf(["apple","google"]),disabled:_propTypes2.default.bool,labelStyle:_propTypes2.default.object,isLoading:_propTypes2.default.bool});
@@ -1 +1 @@
1
- var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.Toast=void 0;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var React=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _propTypes=_interopRequireDefault(require("prop-types"));var _reactNativeDeviceInfo=_interopRequireDefault(require("react-native-device-info"));var _reactNativeRemixIcon=_interopRequireDefault(require("react-native-remix-icon"));var _reactNativeSizeMatters=require("react-native-size-matters");var _reactNativeToastMessage=_interopRequireDefault(require("react-native-toast-message"));var _native=require("styled-components/native");var _error=_interopRequireDefault(require("../../assets/icons/error.svg"));var _info=_interopRequireDefault(require("../../assets/icons/info.svg"));var _success=_interopRequireDefault(require("../../assets/icons/success.svg"));var _warning=_interopRequireDefault(require("../../assets/icons/warning.svg"));var _=require("./");var _config=require("../config");var _excluded=["toasterConfig"];var _this=this,_jsxFileName="/home/runner/work/neeto-ui-rn/neeto-ui-rn/src/components/Toast.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 ToastComponent=function ToastComponent(_ref){var type=_ref.type,text1=_ref.text1,text2=_ref.text2,hide=_ref.hide;var theme=(0,React.useContext)(_native.ThemeContext);var _useWindowDimensions=(0,_reactNative.useWindowDimensions)(),width=_useWindowDimensions.width;var Icon=function Icon(){switch(type){case"success":return React.createElement(_success.default,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:25,columnNumber:16}});case"warning":return React.createElement(_warning.default,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:27,columnNumber:16}});case"info":return React.createElement(_info.default,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:29,columnNumber:16}});case"error":return React.createElement(_error.default,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:31,columnNumber:16}});}return null;};return React.createElement(_.Card,{alignItems:"center",bg:theme.colors.background.secondary,borderRadius:(0,_reactNativeSizeMatters.moderateScale)(16),elevation:10,flexDirection:"row",minHeight:(0,_reactNativeSizeMatters.moderateScale)(60),mt:_reactNativeDeviceInfo.default.hasDynamicIsland()?(0,_reactNativeSizeMatters.moderateScale)(10):0,mx:(0,_reactNativeSizeMatters.moderateScale)(10),px:(0,_reactNativeSizeMatters.moderateScale)(10),width:width-(0,_reactNativeSizeMatters.moderateScale)(20),__self:_this,__source:{fileName:_jsxFileName,lineNumber:38,columnNumber:5}},React.createElement(_.Container,{alignItems:"center",bg:theme.colors.toast[type],borderRadius:(0,_reactNativeSizeMatters.moderateScale)(10),height:(0,_reactNativeSizeMatters.moderateScale)(42),justifyContent:"center",width:(0,_reactNativeSizeMatters.moderateScale)(42),__self:_this,__source:{fileName:_jsxFileName,lineNumber:50,columnNumber:7}},React.createElement(Icon,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:58,columnNumber:9}})),React.createElement(_.Container,{flex:1,ml:(0,_reactNativeSizeMatters.moderateScale)(10),py:(0,_reactNativeSizeMatters.moderateScale)(3),__self:_this,__source:{fileName:_jsxFileName,lineNumber:60,columnNumber:7}},text1&&React.createElement(_.Typography,{fontColor:theme.colors.font.primary,fontFamily:theme.fonts.sf600,fontSize:"l",__self:_this,__source:{fileName:_jsxFileName,lineNumber:62,columnNumber:11}},text1),text2&&React.createElement(_.Typography,{fontColor:theme.colors.font.secondary,fontFamily:theme.fonts.sf400,fontSize:"xs",__self:_this,__source:{fileName:_jsxFileName,lineNumber:71,columnNumber:11}},text2)),React.createElement(_.Touchable,{hitSlop:{top:(0,_reactNativeSizeMatters.moderateScale)(5),right:(0,_reactNativeSizeMatters.moderateScale)(5),bottom:(0,_reactNativeSizeMatters.moderateScale)(5),left:(0,_reactNativeSizeMatters.moderateScale)(5)},onPress:hide,__self:_this,__source:{fileName:_jsxFileName,lineNumber:80,columnNumber:7}},React.createElement(_reactNativeRemixIcon.default,{color:theme.colors.font.grey500,name:"ri-close-line",__self:_this,__source:{fileName:_jsxFileName,lineNumber:89,columnNumber:9}})));};ToastComponent.propTypes={type:_propTypes.default.string,text1:_propTypes.default.string,text2:_propTypes.default.string,hide:_propTypes.default.func};var Toast=function Toast(_ref2){var toasterConfig=_ref2.toasterConfig,rest=(0,_objectWithoutProperties2.default)(_ref2,_excluded);var customConfig={success:ToastComponent,warning:ToastComponent,info:ToastComponent,error:ToastComponent};return React.createElement(_reactNativeToastMessage.default,(0,_extends2.default)({},rest,{config:(0,_extends2.default)({},_config.defaultToasterConfig,customConfig,toasterConfig),position:"top",__self:_this,__source:{fileName:_jsxFileName,lineNumber:159,columnNumber:5}}));};exports.Toast=Toast;Toast.show=_reactNativeToastMessage.default.show;Toast.hide=_reactNativeToastMessage.default.hide;Toast.propTypes={toasterConfig:_propTypes.default.object};
1
+ var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.Toast=void 0;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var React=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _propTypes=_interopRequireDefault(require("prop-types"));var _reactNativeDeviceInfo=_interopRequireDefault(require("react-native-device-info"));var _reactNativeRemixIcon=_interopRequireDefault(require("react-native-remix-icon"));var _reactNativeSizeMatters=require("react-native-size-matters");var _reactNativeToastMessage=_interopRequireDefault(require("react-native-toast-message"));var _native=require("styled-components/native");var _error=_interopRequireDefault(require("../../assets/icons/error.svg"));var _info=_interopRequireDefault(require("../../assets/icons/info.svg"));var _success=_interopRequireDefault(require("../../assets/icons/success.svg"));var _warning=_interopRequireDefault(require("../../assets/icons/warning.svg"));var _=require("./");var _config=require("../config");var _excluded=["toasterConfig"];var _this=this,_jsxFileName="/home/runner/work/neeto-ui-rn/neeto-ui-rn/src/components/Toast.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 timer;var ToastComponent=function ToastComponent(_ref){var type=_ref.type,text1=_ref.text1,text2=_ref.text2,hide=_ref.hide,isVisible=_ref.isVisible;var theme=(0,React.useContext)(_native.ThemeContext);var _useWindowDimensions=(0,_reactNative.useWindowDimensions)(),width=_useWindowDimensions.width;(0,React.useEffect)(function(){if(isVisible){timer=setTimeout(function(){hide();},4000);}return;},[isVisible,hide]);var Icon=function Icon(){switch(type){case"success":return React.createElement(_success.default,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:37,columnNumber:16}});case"warning":return React.createElement(_warning.default,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:39,columnNumber:16}});case"info":return React.createElement(_info.default,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:41,columnNumber:16}});case"error":return React.createElement(_error.default,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:43,columnNumber:16}});}return null;};return React.createElement(_.Card,{alignItems:"center",bg:theme.colors.background.secondary,borderRadius:(0,_reactNativeSizeMatters.moderateScale)(16),elevation:10,flexDirection:"row",minHeight:(0,_reactNativeSizeMatters.moderateScale)(60),mt:_reactNativeDeviceInfo.default.hasDynamicIsland()?(0,_reactNativeSizeMatters.moderateScale)(10):0,mx:(0,_reactNativeSizeMatters.moderateScale)(10),px:(0,_reactNativeSizeMatters.moderateScale)(10),width:width-(0,_reactNativeSizeMatters.moderateScale)(20),onPressIn:function onPressIn(){clearTimeout(timer);},__self:_this,__source:{fileName:_jsxFileName,lineNumber:50,columnNumber:5}},React.createElement(_.Container,{alignItems:"center",bg:theme.colors.toast[type],borderRadius:(0,_reactNativeSizeMatters.moderateScale)(10),height:(0,_reactNativeSizeMatters.moderateScale)(42),justifyContent:"center",width:(0,_reactNativeSizeMatters.moderateScale)(42),__self:_this,__source:{fileName:_jsxFileName,lineNumber:65,columnNumber:7}},React.createElement(Icon,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:73,columnNumber:9}})),React.createElement(_.Container,{flex:1,ml:(0,_reactNativeSizeMatters.moderateScale)(10),py:(0,_reactNativeSizeMatters.moderateScale)(3),__self:_this,__source:{fileName:_jsxFileName,lineNumber:75,columnNumber:7}},text1&&React.createElement(_.Typography,{fontColor:theme.colors.font.primary,fontFamily:theme.fonts.sf600,fontSize:"l",__self:_this,__source:{fileName:_jsxFileName,lineNumber:77,columnNumber:11}},text1),text2&&React.createElement(_.Typography,{fontColor:theme.colors.font.secondary,fontFamily:theme.fonts.sf400,fontSize:"xs",__self:_this,__source:{fileName:_jsxFileName,lineNumber:86,columnNumber:11}},text2)),React.createElement(_.Touchable,{hitSlop:{top:(0,_reactNativeSizeMatters.moderateScale)(5),right:(0,_reactNativeSizeMatters.moderateScale)(5),bottom:(0,_reactNativeSizeMatters.moderateScale)(5),left:(0,_reactNativeSizeMatters.moderateScale)(5)},onPress:function onPress(){clearTimeout(timer);hide();},__self:_this,__source:{fileName:_jsxFileName,lineNumber:95,columnNumber:7}},React.createElement(_reactNativeRemixIcon.default,{color:theme.colors.font.grey500,name:"ri-close-line",__self:_this,__source:{fileName:_jsxFileName,lineNumber:107,columnNumber:9}})));};ToastComponent.propTypes={type:_propTypes.default.string,text1:_propTypes.default.string,text2:_propTypes.default.string,hide:_propTypes.default.func,isVisible:_propTypes.default.bool};var Toast=function Toast(_ref2){var toasterConfig=_ref2.toasterConfig,rest=(0,_objectWithoutProperties2.default)(_ref2,_excluded);var customConfig={success:ToastComponent,warning:ToastComponent,info:ToastComponent,error:ToastComponent};return React.createElement(_reactNativeToastMessage.default,(0,_extends2.default)({},rest,{autoHide:false,config:(0,_extends2.default)({},_config.defaultToasterConfig,customConfig,toasterConfig),position:"top",__self:_this,__source:{fileName:_jsxFileName,lineNumber:178,columnNumber:5}}));};exports.Toast=Toast;Toast.show=_reactNativeToastMessage.default.show;Toast.hide=_reactNativeToastMessage.default.hide;Toast.propTypes={toasterConfig:_propTypes.default.object};
@@ -1 +1 @@
1
- var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.Touchable=void 0;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _taggedTemplateLiteralLoose2=_interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));var React=_interopRequireWildcard(require("react"));var _propTypes=_interopRequireDefault(require("@styled-system/prop-types"));var _propTypes2=_interopRequireDefault(require("prop-types"));var _reactNativeMaterialRipple=_interopRequireDefault(require("react-native-material-ripple"));var _native=_interopRequireDefault(require("styled-components/native"));var _styledSystem=require("styled-system");var _utils=require("../utils/utils");var _excluded=["children","elevation"];var _templateObject,_this=this,_jsxFileName="/home/runner/work/neeto-ui-rn/neeto-ui-rn/src/components/Touchable.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 StyledRipple=(0,_native.default)(_reactNativeMaterialRipple.default)(_templateObject||(_templateObject=(0,_taggedTemplateLiteralLoose2.default)(["\n ","\n ","\n ","\n ","\n ","\n ","\n"])),_styledSystem.buttonStyle,_styledSystem.flexbox,_styledSystem.space,_styledSystem.border,_styledSystem.layout,_styledSystem.color);var Touchable=React.forwardRef(function(props,ref){var children=props.children,elevation=props.elevation,rest=(0,_objectWithoutProperties2.default)(props,_excluded);var shadowStyles=elevation?(0,_utils.getShadowStyles)(elevation):{};return React.createElement(StyledRipple,(0,_extends2.default)({ref:ref,rippleContainerBorderRadius:rest.borderRadius?rest.borderRadius:0,rippleDuration:600,rippleOpacity:0.09,style:shadowStyles},rest,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:68,columnNumber:5}}),children);});exports.Touchable=Touchable;Touchable.propTypes=(0,_extends2.default)({},_propTypes.default.flexbox,_propTypes.default.space,_propTypes.default.border,_propTypes.default.layout,_propTypes.default.color,_propTypes.default.buttonStyle,{children:_propTypes2.default.node,elevation:_propTypes2.default.oneOfType([_propTypes2.default.number,_propTypes2.default.string])});Touchable.displayName="Touchable";
1
+ var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.Touchable=void 0;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _taggedTemplateLiteralLoose2=_interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));var React=_interopRequireWildcard(require("react"));var _propTypes=_interopRequireDefault(require("@styled-system/prop-types"));var _propTypes2=_interopRequireDefault(require("prop-types"));var _native=_interopRequireDefault(require("styled-components/native"));var _styledSystem=require("styled-system");var _Ripple=_interopRequireDefault(require("./Ripple"));var _utils=require("../utils/utils");var _excluded=["children","elevation","rippleConfig"];var _templateObject,_this=this,_jsxFileName="/home/runner/work/neeto-ui-rn/neeto-ui-rn/src/components/Touchable.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 StyledRipple=(0,_native.default)(_Ripple.default)(_templateObject||(_templateObject=(0,_taggedTemplateLiteralLoose2.default)(["\n ","\n ","\n ","\n ","\n ","\n ","\n"])),_styledSystem.buttonStyle,_styledSystem.flexbox,_styledSystem.space,_styledSystem.border,_styledSystem.layout,_styledSystem.color);var defaultRippleConfig={rippleCentered:false,rippleSequential:false,rippleFades:true,rippleOutsideContainer:false,rippleColor:"#000",rippleOpacity:0.09,rippleDuration:600,rippleSize:0,rippleContainerBorderRadius:0};var Touchable=React.forwardRef(function(props,ref){var _rippleConfig$isCente,_rippleConfig$isSeque,_rippleConfig$shouldF,_rippleConfig$shouldO,_rippleConfig$color,_rippleConfig$opacity,_rippleConfig$duratio,_rippleConfig$size;var children=props.children,elevation=props.elevation,rippleConfig=props.rippleConfig,rest=(0,_objectWithoutProperties2.default)(props,_excluded);var shadowStyles=elevation?(0,_utils.getShadowStyles)(elevation):{};var rippleProps=(0,_extends2.default)({},defaultRippleConfig,{rippleCentered:(_rippleConfig$isCente=rippleConfig.isCentered)!=null?_rippleConfig$isCente:defaultRippleConfig.rippleCentered,rippleSequential:(_rippleConfig$isSeque=rippleConfig.isSequential)!=null?_rippleConfig$isSeque:defaultRippleConfig.rippleSequential,rippleFades:(_rippleConfig$shouldF=rippleConfig.shouldFade)!=null?_rippleConfig$shouldF:defaultRippleConfig.rippleFades,rippleOutsideContainer:(_rippleConfig$shouldO=rippleConfig.shouldOverflowContainer)!=null?_rippleConfig$shouldO:defaultRippleConfig.rippleOutsideContainer,rippleColor:(_rippleConfig$color=rippleConfig.color)!=null?_rippleConfig$color:defaultRippleConfig.rippleColor,rippleOpacity:(_rippleConfig$opacity=rippleConfig.opacity)!=null?_rippleConfig$opacity:defaultRippleConfig.rippleOpacity,rippleDuration:(_rippleConfig$duratio=rippleConfig.duration)!=null?_rippleConfig$duratio:defaultRippleConfig.rippleDuration,rippleSize:(_rippleConfig$size=rippleConfig.size)!=null?_rippleConfig$size:defaultRippleConfig.rippleSize,rippleContainerBorderRadius:rest.borderRadius?rest.borderRadius:0});return React.createElement(StyledRipple,(0,_extends2.default)({ref:ref,style:shadowStyles},rippleProps,rest,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:100,columnNumber:5}}),children);});exports.Touchable=Touchable;Touchable.propTypes=(0,_extends2.default)({},_propTypes.default.flexbox,_propTypes.default.space,_propTypes.default.border,_propTypes.default.layout,_propTypes.default.color,_propTypes.default.buttonStyle,{children:_propTypes2.default.node.isRequired,elevation:_propTypes2.default.oneOfType([_propTypes2.default.number,_propTypes2.default.string]),rippleConfig:_propTypes2.default.shape({isCentered:_propTypes2.default.bool,isSequential:_propTypes2.default.bool,shouldFade:_propTypes2.default.bool,shouldOverflowContainer:_propTypes2.default.bool,color:_propTypes2.default.string,opacity:_propTypes2.default.number,duration:_propTypes2.default.number,size:_propTypes2.default.number,containerBorderRadius:_propTypes2.default.number})});Touchable.defaultProps={rippleConfig:{}};Touchable.displayName="Touchable";
@@ -0,0 +1 @@
1
+ var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _react=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _propTypes=_interopRequireDefault(require("prop-types"));var _excluded=["onPress","onPressIn"];var _this=this,_jsxFileName="/home/runner/work/neeto-ui-rn/neeto-ui-rn/src/components/TouchableWithoutFeedback.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 TouchableWithoutFeedback=function TouchableWithoutFeedback(_ref){var onPress=_ref.onPress,onPressIn=_ref.onPressIn,props=(0,_objectWithoutProperties2.default)(_ref,_excluded);var _touchActivatePositionRef=(0,_react.useRef)(null);function _onPressIn(e){var _e$nativeEvent=e.nativeEvent,pageX=_e$nativeEvent.pageX,pageY=_e$nativeEvent.pageY;_touchActivatePositionRef.current={pageX:pageX,pageY:pageY};onPressIn==null?void 0:onPressIn(e);}function _onPress(e){var _e$nativeEvent2=e.nativeEvent,pageX=_e$nativeEvent2.pageX,pageY=_e$nativeEvent2.pageY;var absX=Math.abs(_touchActivatePositionRef.current.pageX-pageX);var absY=Math.abs(_touchActivatePositionRef.current.pageY-pageY);var dragged=absX>2||absY>2;if(!dragged){onPress==null?void 0:onPress(e);}}return _react.default.createElement(_reactNative.TouchableWithoutFeedback,(0,_extends2.default)({onPress:_onPress,onPressIn:_onPressIn},props,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:33,columnNumber:5}}),props.children);};TouchableWithoutFeedback.defaultProps={};TouchableWithoutFeedback.propTypes={onPress:_propTypes.default.func,onPressIn:_propTypes.default.func,children:_propTypes.default.element.isRequired};var _default=TouchableWithoutFeedback;exports.default=_default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bigbinary/neetoui-rn",
3
- "version": "0.0.234",
3
+ "version": "0.0.236",
4
4
  "main": "lib/index.js",
5
5
  "author": "BigBinary",
6
6
  "license": "MIT",
@@ -58,7 +58,6 @@
58
58
  "react-content-loader": "^6.2.0",
59
59
  "react-native-calendars": "^1.1285.0",
60
60
  "react-native-gesture-handler": "^2.4.0",
61
- "react-native-material-ripple": "^0.9.1",
62
61
  "react-native-modal": "^13.0.0",
63
62
  "react-native-pell-rich-editor": "^1.8.6",
64
63
  "react-native-popover-view": "^4.1.0",
@@ -66,7 +65,7 @@
66
65
  "react-native-safe-area-context": "^3.3.2",
67
66
  "react-native-size-matters": "^0.4.0",
68
67
  "react-native-snap-carousel": "4.0.0-beta.6",
69
- "react-native-toast-message": "^2.1.0",
68
+ "react-native-toast-message": "^2.1.5",
70
69
  "styled-components": "^5.3.3",
71
70
  "styled-system": "^5.1.5"
72
71
  },
@@ -165,7 +165,8 @@ export const Button = ({
165
165
  height={moderateScale(48)}
166
166
  justifyContent="center"
167
167
  opacity={renderOpacity()}
168
- rippleColor={getButtonColors().ripple}
168
+ px={width === null ? moderateScale(8) : undefined}
169
+ rippleConfig={{ color: getButtonColors().ripple }}
169
170
  width={width}
170
171
  {...rest}
171
172
  >
@@ -177,7 +178,7 @@ export const Button = ({
177
178
  color={color || getButtonColors().color}
178
179
  fontFamily={fontFamily || theme.fonts.sf500}
179
180
  fontSize={fontSize}
180
- mx={moderateScale(2)}
181
+ ml={moderateScale(8)}
181
182
  textAlign="center"
182
183
  {...labelStyle}
183
184
  >
@@ -0,0 +1,280 @@
1
+ import React, { PureComponent } from "react";
2
+ import {
3
+ View,
4
+ Animated,
5
+ Easing,
6
+ Platform,
7
+ I18nManager,
8
+ StyleSheet,
9
+ } from "react-native";
10
+
11
+ import PropTypes from "prop-types";
12
+ import { moderateScale } from "react-native-size-matters";
13
+
14
+ import TouchableWithoutFeedback from "./TouchableWithoutFeedback";
15
+
16
+ const radius = moderateScale(10);
17
+
18
+ export default class Ripple extends PureComponent {
19
+ static defaultProps = {
20
+ ...TouchableWithoutFeedback.defaultProps,
21
+
22
+ rippleColor: "rgb(0, 0, 0)",
23
+ rippleOpacity: 0.3,
24
+ rippleDuration: 400,
25
+ rippleSize: 0,
26
+ rippleContainerBorderRadius: 0,
27
+ rippleCentered: false,
28
+ rippleSequential: false,
29
+ rippleFades: true,
30
+ rippleOutsideContainer: false,
31
+ disabled: false,
32
+
33
+ onRippleAnimation: (animation, onComplete) => animation.start(onComplete),
34
+ };
35
+
36
+ static propTypes = {
37
+ ...Animated.View.propTypes,
38
+ ...TouchableWithoutFeedback.propTypes,
39
+
40
+ rippleColor: PropTypes.string,
41
+ rippleOpacity: PropTypes.number,
42
+ rippleDuration: PropTypes.number,
43
+ rippleSize: PropTypes.number,
44
+ rippleContainerBorderRadius: PropTypes.number,
45
+ rippleCentered: PropTypes.bool,
46
+ rippleSequential: PropTypes.bool,
47
+ rippleFades: PropTypes.bool,
48
+ rippleOutsideContainer: PropTypes.bool,
49
+ disabled: PropTypes.bool,
50
+
51
+ onRippleAnimation: PropTypes.func,
52
+ };
53
+
54
+ constructor(props) {
55
+ super(props);
56
+
57
+ this.onLayout = this.onLayout.bind(this);
58
+ this.onPress = this.onPress.bind(this);
59
+ this.onPressIn = this.onPressIn.bind(this);
60
+ this.onPressOut = this.onPressOut.bind(this);
61
+ this.onLongPress = this.onLongPress.bind(this);
62
+ this.onAnimationEnd = this.onAnimationEnd.bind(this);
63
+
64
+ this.renderRipple = this.renderRipple.bind(this);
65
+
66
+ this.unique = 0;
67
+ this.mounted = false;
68
+
69
+ this.state = {
70
+ width: 0,
71
+ height: 0,
72
+ ripples: [],
73
+ };
74
+ }
75
+
76
+ componentDidMount() {
77
+ this.mounted = true;
78
+ }
79
+
80
+ componentWillUnmount() {
81
+ this.mounted = false;
82
+ }
83
+
84
+ onLayout(event) {
85
+ const { width, height } = event.nativeEvent.layout;
86
+ const { onLayout } = this.props;
87
+
88
+ if ("function" === typeof onLayout) {
89
+ onLayout(event);
90
+ }
91
+
92
+ this.setState({ width, height });
93
+ }
94
+
95
+ onPress(event) {
96
+ const { ripples } = this.state;
97
+ const { onPress, rippleSequential } = this.props;
98
+
99
+ if (!rippleSequential || !ripples.length) {
100
+ if ("function" === typeof onPress) {
101
+ requestAnimationFrame(() => onPress(event));
102
+ }
103
+
104
+ this.startRipple(event);
105
+ }
106
+ }
107
+
108
+ onLongPress(event) {
109
+ const { onLongPress } = this.props;
110
+
111
+ if ("function" === typeof onLongPress) {
112
+ requestAnimationFrame(() => onLongPress(event));
113
+ }
114
+
115
+ this.startRipple(event);
116
+ }
117
+
118
+ onPressIn(event) {
119
+ const { onPressIn } = this.props;
120
+
121
+ if ("function" === typeof onPressIn) {
122
+ onPressIn(event);
123
+ }
124
+ }
125
+
126
+ onPressOut(event) {
127
+ const { onPressOut } = this.props;
128
+
129
+ if ("function" === typeof onPressOut) {
130
+ onPressOut(event);
131
+ }
132
+ }
133
+
134
+ onAnimationEnd() {
135
+ if (this.mounted) {
136
+ this.setState(({ ripples }) => ({ ripples: ripples.slice(1) }));
137
+ }
138
+ }
139
+
140
+ startRipple(event) {
141
+ const { width, height } = this.state;
142
+ const { rippleDuration, rippleCentered, rippleSize, onRippleAnimation } =
143
+ this.props;
144
+
145
+ const w2 = 0.5 * width;
146
+ const h2 = 0.5 * height;
147
+
148
+ const { locationX, locationY } = rippleCentered
149
+ ? { locationX: w2, locationY: h2 }
150
+ : event.nativeEvent;
151
+
152
+ const offsetX = Math.abs(w2 - locationX);
153
+ const offsetY = Math.abs(h2 - locationY);
154
+
155
+ const size =
156
+ rippleSize > 0
157
+ ? 0.5 * rippleSize
158
+ : Math.sqrt(Math.pow(w2 + offsetX, 2) + Math.pow(h2 + offsetY, 2));
159
+
160
+ const ripple = {
161
+ unique: this.unique++,
162
+ progress: new Animated.Value(0),
163
+ locationX,
164
+ locationY,
165
+ size,
166
+ };
167
+
168
+ const animation = Animated.timing(ripple.progress, {
169
+ toValue: 1,
170
+ easing: Easing.out(Easing.ease),
171
+ duration: rippleDuration,
172
+ useNativeDriver: true,
173
+ });
174
+
175
+ onRippleAnimation(animation, this.onAnimationEnd);
176
+
177
+ this.setState(({ ripples }) => ({ ripples: ripples.concat(ripple) }));
178
+ }
179
+
180
+ renderRipple({ unique, progress, locationX, locationY, size }) {
181
+ const { rippleColor, rippleOpacity, rippleFades } = this.props;
182
+
183
+ const rippleStyle = {
184
+ top: locationY - radius,
185
+ [I18nManager.isRTL ? "right" : "left"]: locationX - radius,
186
+ backgroundColor: rippleColor,
187
+
188
+ transform: [
189
+ {
190
+ scale: progress.interpolate({
191
+ inputRange: [0, 1],
192
+ outputRange: [0.5 / radius, size / radius],
193
+ }),
194
+ },
195
+ ],
196
+
197
+ opacity: rippleFades
198
+ ? progress.interpolate({
199
+ inputRange: [0, 1],
200
+ outputRange: [rippleOpacity, 0],
201
+ })
202
+ : rippleOpacity,
203
+ };
204
+
205
+ return <Animated.View key={unique} style={[styles.ripple, rippleStyle]} />;
206
+ }
207
+
208
+ render() {
209
+ const { ripples } = this.state;
210
+ const {
211
+ delayLongPress,
212
+ delayPressIn,
213
+ delayPressOut,
214
+ disabled,
215
+ hitSlop,
216
+ pressRetentionOffset,
217
+ children,
218
+ rippleContainerBorderRadius,
219
+ rippleOutsideContainer,
220
+ testID,
221
+ nativeID,
222
+ accessible,
223
+ accessibilityHint,
224
+ accessibilityLabel,
225
+ ...props
226
+ } = this.props;
227
+
228
+ const touchableProps = {
229
+ delayLongPress,
230
+ delayPressIn,
231
+ delayPressOut,
232
+ disabled,
233
+ hitSlop,
234
+ pressRetentionOffset,
235
+ testID,
236
+ accessible,
237
+ accessibilityHint,
238
+ accessibilityLabel,
239
+ onLayout: this.onLayout,
240
+ onPress: this.onPress,
241
+ onLongPress: this.onLongPress,
242
+ onPressIn: this.onPressIn,
243
+ onPressOut: this.onPressOut,
244
+
245
+ ...("web" !== Platform.OS ? { nativeID } : null),
246
+ };
247
+
248
+ const containerStyle = {
249
+ borderRadius: rippleContainerBorderRadius,
250
+ };
251
+
252
+ return (
253
+ <TouchableWithoutFeedback {...touchableProps}>
254
+ <Animated.View {...props} collapsable={false} pointerEvents="box-only">
255
+ {children}
256
+ <View
257
+ style={[styles.container(rippleOutsideContainer), containerStyle]}
258
+ >
259
+ {ripples.map(this.renderRipple)}
260
+ </View>
261
+ </Animated.View>
262
+ </TouchableWithoutFeedback>
263
+ );
264
+ }
265
+ }
266
+
267
+ const styles = StyleSheet.create({
268
+ container: rippleOutsideContainer => ({
269
+ ...StyleSheet.absoluteFillObject,
270
+ backgroundColor: "transparent",
271
+ overflow: rippleOutsideContainer ? "visible" : "hidden",
272
+ }),
273
+ ripple: {
274
+ width: radius * 2,
275
+ height: radius * 2,
276
+ borderRadius: radius,
277
+ overflow: "hidden",
278
+ position: "absolute",
279
+ },
280
+ });
@@ -54,7 +54,7 @@ export const SocialButton = ({
54
54
  disabled={disabled}
55
55
  height={moderateScale(48)}
56
56
  justifyContent="center"
57
- rippleColor={theme.colors.background.grey800}
57
+ rippleConfig={{ color: theme.colors.background.grey800 }}
58
58
  width="100%"
59
59
  {...rest}
60
60
  >
@@ -1,5 +1,5 @@
1
1
  import * as React from "react";
2
- import { useContext } from "react";
2
+ import { useContext, useEffect } from "react";
3
3
  import { useWindowDimensions } from "react-native";
4
4
 
5
5
  import PropTypes from "prop-types";
@@ -16,9 +16,21 @@ import WarningIcon from "@assets/icons/warning.svg";
16
16
  import { Container, Typography, Card, Touchable } from "@components";
17
17
  import { defaultToasterConfig } from "@config";
18
18
 
19
- const ToastComponent = ({ type, text1, text2, hide }) => {
19
+ let timer;
20
+ const ToastComponent = ({ type, text1, text2, hide, isVisible }) => {
20
21
  const theme = useContext(ThemeContext);
21
22
  const { width } = useWindowDimensions();
23
+
24
+ useEffect(() => {
25
+ if (isVisible) {
26
+ timer = setTimeout(() => {
27
+ hide();
28
+ }, 4000);
29
+ }
30
+
31
+ return;
32
+ }, [isVisible, hide]);
33
+
22
34
  const Icon = () => {
23
35
  switch (type) {
24
36
  case "success":
@@ -46,6 +58,9 @@ const ToastComponent = ({ type, text1, text2, hide }) => {
46
58
  mx={moderateScale(10)}
47
59
  px={moderateScale(10)}
48
60
  width={width - moderateScale(20)}
61
+ onPressIn={() => {
62
+ clearTimeout(timer);
63
+ }}
49
64
  >
50
65
  <Container
51
66
  alignItems="center"
@@ -84,7 +99,10 @@ const ToastComponent = ({ type, text1, text2, hide }) => {
84
99
  bottom: moderateScale(5),
85
100
  left: moderateScale(5),
86
101
  }}
87
- onPress={hide}
102
+ onPress={() => {
103
+ clearTimeout(timer);
104
+ hide();
105
+ }}
88
106
  >
89
107
  <CloseIcon color={theme.colors.font.grey500} name="ri-close-line" />
90
108
  </Touchable>
@@ -97,6 +115,7 @@ ToastComponent.propTypes = {
97
115
  text1: PropTypes.string,
98
116
  text2: PropTypes.string,
99
117
  hide: PropTypes.func,
118
+ isVisible: PropTypes.bool,
100
119
  };
101
120
 
102
121
  /**
@@ -158,6 +177,7 @@ export const Toast = ({ toasterConfig, ...rest }) => {
158
177
  return (
159
178
  <T
160
179
  {...rest}
180
+ autoHide={false}
161
181
  config={{ ...defaultToasterConfig, ...customConfig, ...toasterConfig }}
162
182
  position="top"
163
183
  />
@@ -2,7 +2,6 @@ import * as React from "react";
2
2
 
3
3
  import propTypes from "@styled-system/prop-types";
4
4
  import PropTypes from "prop-types";
5
- import Ripple from "react-native-material-ripple";
6
5
  import styled from "styled-components/native";
7
6
  import {
8
7
  flexbox,
@@ -13,6 +12,8 @@ import {
13
12
  layout,
14
13
  } from "styled-system";
15
14
 
15
+ import Ripple from "./Ripple";
16
+
16
17
  import { getShadowStyles } from "../utils/utils";
17
18
 
18
19
  const StyledRipple = styled(Ripple)`
@@ -25,7 +26,7 @@ const StyledRipple = styled(Ripple)`
25
26
  `;
26
27
 
27
28
  /**
28
- * Touchable component is a wrapper over https://github.com/n4kz/react-native-material-ripple.
29
+ * Touchable component is a wrapper over Ripple.
29
30
  *
30
31
  * This component supports below props categories from [styled-system ](/styled-system).
31
32
  * <ul>
@@ -48,9 +49,11 @@ const StyledRipple = styled(Ripple)`
48
49
  * bg="background.primary"
49
50
  * width="100px"
50
51
  * height="30px"
51
- * rippleOpacity = {0.09}
52
- * rippleDuration = {600}
53
- * rippleContainerBorderRadius = {moderateScale(50)}
52
+ * rippleConfig={{
53
+ * opacity: 0.09,
54
+ * duration: 600,
55
+ * containerBorderRadius: moderateScale(50),
56
+ * }}
54
57
  * >
55
58
  * <Typography fontSize="10px">This is wrapped in Touchable component</Typography>
56
59
  * </Touchable>
@@ -60,19 +63,41 @@ const StyledRipple = styled(Ripple)`
60
63
  *
61
64
  */
62
65
 
66
+ const defaultRippleConfig = {
67
+ rippleCentered: false,
68
+ rippleSequential: false,
69
+ rippleFades: true,
70
+ rippleOutsideContainer: false,
71
+ rippleColor: "#000",
72
+ rippleOpacity: 0.09,
73
+ rippleDuration: 600,
74
+ rippleSize: 0,
75
+ rippleContainerBorderRadius: 0,
76
+ };
77
+
63
78
  export const Touchable = React.forwardRef((props, ref) => {
64
- const { children, elevation, ...rest } = props;
79
+ const { children, elevation, rippleConfig, ...rest } = props;
65
80
  const shadowStyles = elevation ? getShadowStyles(elevation) : {};
66
81
 
82
+ const rippleProps = {
83
+ ...defaultRippleConfig,
84
+ rippleCentered:
85
+ rippleConfig.isCentered ?? defaultRippleConfig.rippleCentered,
86
+ rippleSequential:
87
+ rippleConfig.isSequential ?? defaultRippleConfig.rippleSequential,
88
+ rippleFades: rippleConfig.shouldFade ?? defaultRippleConfig.rippleFades,
89
+ rippleOutsideContainer:
90
+ rippleConfig.shouldOverflowContainer ??
91
+ defaultRippleConfig.rippleOutsideContainer,
92
+ rippleColor: rippleConfig.color ?? defaultRippleConfig.rippleColor,
93
+ rippleOpacity: rippleConfig.opacity ?? defaultRippleConfig.rippleOpacity,
94
+ rippleDuration: rippleConfig.duration ?? defaultRippleConfig.rippleDuration,
95
+ rippleSize: rippleConfig.size ?? defaultRippleConfig.rippleSize,
96
+ rippleContainerBorderRadius: rest.borderRadius ? rest.borderRadius : 0,
97
+ };
98
+
67
99
  return (
68
- <StyledRipple
69
- ref={ref}
70
- rippleContainerBorderRadius={rest.borderRadius ? rest.borderRadius : 0}
71
- rippleDuration={600}
72
- rippleOpacity={0.09}
73
- style={shadowStyles}
74
- {...rest}
75
- >
100
+ <StyledRipple ref={ref} style={shadowStyles} {...rippleProps} {...rest}>
76
101
  {children}
77
102
  </StyledRipple>
78
103
  );
@@ -86,8 +111,23 @@ Touchable.propTypes = {
86
111
  ...propTypes.color,
87
112
  ...propTypes.buttonStyle,
88
113
 
89
- children: PropTypes.node,
114
+ children: PropTypes.node.isRequired,
90
115
  elevation: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
116
+ rippleConfig: PropTypes.shape({
117
+ isCentered: PropTypes.bool,
118
+ isSequential: PropTypes.bool,
119
+ shouldFade: PropTypes.bool,
120
+ shouldOverflowContainer: PropTypes.bool,
121
+ color: PropTypes.string,
122
+ opacity: PropTypes.number,
123
+ duration: PropTypes.number,
124
+ size: PropTypes.number,
125
+ containerBorderRadius: PropTypes.number,
126
+ }),
127
+ };
128
+
129
+ Touchable.defaultProps = {
130
+ rippleConfig: {},
91
131
  };
92
132
 
93
133
  Touchable.displayName = "Touchable";
@@ -0,0 +1,51 @@
1
+ import React, { useRef } from "react";
2
+ import { TouchableWithoutFeedback as RNTouchableWithoutFeedback } from "react-native";
3
+
4
+ import PropTypes from "prop-types";
5
+
6
+ const TouchableWithoutFeedback = ({ onPress, onPressIn, ...props }) => {
7
+ const _touchActivatePositionRef = useRef(null);
8
+
9
+ function _onPressIn(e) {
10
+ const { pageX, pageY } = e.nativeEvent;
11
+
12
+ _touchActivatePositionRef.current = {
13
+ pageX,
14
+ pageY,
15
+ };
16
+
17
+ onPressIn?.(e);
18
+ }
19
+
20
+ function _onPress(e) {
21
+ const { pageX, pageY } = e.nativeEvent;
22
+
23
+ const absX = Math.abs(_touchActivatePositionRef.current.pageX - pageX);
24
+ const absY = Math.abs(_touchActivatePositionRef.current.pageY - pageY);
25
+
26
+ const dragged = absX > 2 || absY > 2;
27
+ if (!dragged) {
28
+ onPress?.(e);
29
+ }
30
+ }
31
+
32
+ return (
33
+ <RNTouchableWithoutFeedback
34
+ onPress={_onPress}
35
+ onPressIn={_onPressIn}
36
+ {...props}
37
+ >
38
+ {props.children}
39
+ </RNTouchableWithoutFeedback>
40
+ );
41
+ };
42
+
43
+ TouchableWithoutFeedback.defaultProps = {};
44
+
45
+ TouchableWithoutFeedback.propTypes = {
46
+ onPress: PropTypes.func,
47
+ onPressIn: PropTypes.func,
48
+ children: PropTypes.element.isRequired,
49
+ };
50
+
51
+ export default TouchableWithoutFeedback;