@bigbinary/neetoui-rn 0.0.196 → 0.0.199

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/README.md CHANGED
@@ -13,7 +13,7 @@ Storybook: https://neetoui-rn.onrender.com/
13
13
  ## Installation
14
14
 
15
15
  ```
16
- yarn add @bigbinary/neetoui-rn react-native-svg react-native-webview @shopify/flash-list react-native-reanimated
16
+ yarn add @bigbinary/neetoui-rn react-native-svg react-native-webview @shopify/flash-list react-native-reanimated react-native-fast-image
17
17
  ```
18
18
 
19
19
  Navigate to iOS folder and run:
package/index.d.ts CHANGED
@@ -10,7 +10,7 @@ import {
10
10
  LayoutProps,
11
11
  PositionProps,
12
12
  ButtonStyleProps,
13
- TypographyProps,
13
+ TypographyProps as SSTypographyProps,
14
14
  } from "styled-system";
15
15
  import {
16
16
  ImageProps as RNImageProps,
@@ -41,6 +41,7 @@ import {
41
41
  ToastConfig,
42
42
  } from "react-native-toast-message";
43
43
  import { RippleProps } from "react-native-material-ripple";
44
+ import { FastImageProps } from "react-native-fast-image";
44
45
 
45
46
  import { theme as themeDef } from "./src/theme";
46
47
  import { BUTTON_VARIANTS } from "./src/components/Button";
@@ -70,7 +71,21 @@ interface StyleProps
70
71
  BorderProps,
71
72
  ColorProps,
72
73
  LayoutProps,
73
- PositionProps {}
74
+ PositionProps {
75
+ borderColor?: typeof theme.colors.border;
76
+ borderTopColor?: typeof theme.colors.border;
77
+ borderBottomColor?: typeof theme.colors.border;
78
+ borderLeftColor?: typeof theme.colors.border;
79
+ borderRightColor?: typeof theme.colors.border;
80
+ backgroundColor?: typeof theme.colors.background;
81
+ bg?: typeof theme.colors.background;
82
+ color?: typeof theme.colors.font;
83
+ }
84
+
85
+ interface TypographyProps extends SSTypographyProps {
86
+ fontFamily?: typeof theme.fonts;
87
+ fontSize?: typeof theme.fontSizes;
88
+ }
74
89
 
75
90
  interface ViewProps extends RNViewProps, StyleProps {
76
91
  children?: React.ReactNode;
@@ -116,7 +131,7 @@ type AlertShowParams = {
116
131
  buttons?: Array<AlertButton>;
117
132
  };
118
133
 
119
- interface AnimatedImageProps extends RNImageProps {
134
+ interface AnimatedImageProps extends RNImageProps, FastImageProps {
120
135
  imageHeight?: number;
121
136
  imageWidth?: number;
122
137
  imageUrl: string;
@@ -162,8 +177,8 @@ interface BottomSheetProps extends ViewProps {
162
177
  contentType?: "checkbox" | null;
163
178
  canSearch?: boolean;
164
179
  onDonePress?: () => void;
165
- valueExtractor?: () =>{};
166
- labelExtractor?: () =>{};
180
+ valueExtractor?: () => {};
181
+ labelExtractor?: () => {};
167
182
  }
168
183
 
169
184
  interface ButtonProps extends TouchableProps {
@@ -310,7 +325,7 @@ interface MultiSelectProps extends ViewProps {
310
325
  NoResultsComponent?: React.ReactNode;
311
326
  maxItemSize?: number;
312
327
  moreItemLabelContainerStyle?: ViewStyle;
313
- moreItemLabelStyle?: TextStyle
328
+ moreItemLabelStyle?: TextStyle;
314
329
  }
315
330
 
316
331
  type OnBoardingProps = {
@@ -382,7 +397,7 @@ interface SegmentedTopBarProps extends MaterialTopTabBarProps {
382
397
  }
383
398
 
384
399
  interface SelectProps
385
- extends Omit<MultiSelectProps, "value" | "selectedValue" | "deletedValue"> {
400
+ extends Omit<MultiSelectProps, "selectedValue" | "deletedValue"> {
386
401
  value: any;
387
402
  }
388
403
 
@@ -1 +1 @@
1
- var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.AnimatedImage=void 0;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _react=_interopRequireWildcard(require("react"));var _propTypes=_interopRequireDefault(require("prop-types"));var _reactNativeReanimated=_interopRequireWildcard(require("react-native-reanimated"));var _=require("./");var _imagePlaceholder=_interopRequireDefault(require("../../assets/images/image-placeholder.svg"));var _reactNative=require("react-native");var _theme=require("../theme");var _excluded=["imageHeight","imageWidth","imageUrl"];var _this=this,_jsxFileName="/home/runner/work/neeto-ui-rn/neeto-ui-rn/src/components/AnimatedImage.js";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 AnimatedImage=function AnimatedImage(_ref){var _ref$imageHeight=_ref.imageHeight,imageHeight=_ref$imageHeight===void 0?139:_ref$imageHeight,_ref$imageWidth=_ref.imageWidth,imageWidth=_ref$imageWidth===void 0?255:_ref$imageWidth,imageUrl=_ref.imageUrl,rest=(0,_objectWithoutProperties2.default)(_ref,_excluded);var opacity=(0,_reactNativeReanimated.useSharedValue)(0);var _useState=(0,_react.useState)(false),_useState2=(0,_slicedToArray2.default)(_useState,2),isImageLoaded=_useState2[0],setImageLoaded=_useState2[1];var profileImageStyle=(0,_reactNativeReanimated.useAnimatedStyle)(function(){var _f=function _f(){return{opacity:(0,_reactNativeReanimated.withTiming)(opacity.value,{duration:300,easing:_reactNativeReanimated.Easing.bezier(0.25,0.1,0.25,1)}),height:imageHeight,width:imageWidth,alignSelf:"center",borderRadius:10};};_f._closure={withTiming:_reactNativeReanimated.withTiming,opacity:opacity,Easing:{bezier:_reactNativeReanimated.Easing.bezier},imageHeight:imageHeight,imageWidth:imageWidth};_f.asString="function _f(){const{withTiming,opacity,Easing,imageHeight,imageWidth}=jsThis._closure;{return{opacity:withTiming(opacity.value,{duration:300,easing:Easing.bezier(0.25,0.1,0.25,1)}),height:imageHeight,width:imageWidth,alignSelf:\"center\",borderRadius:10};}}";_f.__workletHash=14435952499043;_f.__location="/home/runner/work/neeto-ui-rn/neeto-ui-rn/src/components/AnimatedImage.js (51:45)";_f.__optimalization=2;return _f;}());return _react.default.createElement(_react.default.Fragment,null,_react.default.createElement(_.Container,{justifyContent:"center",alignItems:"center",borderRadius:10,overflow:"hidden",__self:_this,__source:{fileName:_jsxFileName,lineNumber:66,columnNumber:7}},_react.default.createElement(_reactNativeReanimated.default.Image,(0,_extends2.default)({style:profileImageStyle,source:{uri:imageUrl,headers:{Accept:"*/*","Content-Type":"application/json",Pragma:"no-cache"}},onLoad:function onLoad(){setImageLoaded(true);opacity.value=1;}},rest,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:72,columnNumber:9}})),!isImageLoaded&&_react.default.createElement(_.Container,{position:"absolute",__self:_this,__source:{fileName:_jsxFileName,lineNumber:90,columnNumber:11}},_react.default.createElement(_imagePlaceholder.default,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:91,columnNumber:13}}),_react.default.createElement(_.Container,{position:"absolute",bottom:15,right:15,__self:_this,__source:{fileName:_jsxFileName,lineNumber:92,columnNumber:13}},_react.default.createElement(_reactNative.ActivityIndicator,{size:"small",color:_theme.theme.colors.font.grey600,__self:_this,__source:{fileName:_jsxFileName,lineNumber:93,columnNumber:15}})))));};exports.AnimatedImage=AnimatedImage;AnimatedImage.defaultProps={alignItems:"center",justifyContent:"center"};AnimatedImage.propTypes={imageHeight:_propTypes.default.number,imageWidth:_propTypes.default.number,imageUrl:_propTypes.default.string.isRequired};
1
+ var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.AnimatedImage=void 0;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _taggedTemplateLiteralLoose2=_interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));var _react=_interopRequireWildcard(require("react"));var _reactNativeFastImage=_interopRequireDefault(require("react-native-fast-image"));var _propTypes=_interopRequireDefault(require("prop-types"));var _reactNativeReanimated=_interopRequireWildcard(require("react-native-reanimated"));var _native=_interopRequireDefault(require("styled-components/native"));var _styledSystem=require("styled-system");var _=require("./");var _imagePlaceholder=_interopRequireDefault(require("../../assets/images/image-placeholder.svg"));var _reactNative=require("react-native");var _theme=require("../theme");var _excluded=["imageHeight","imageWidth","imageUrl"];var _templateObject,_this=this,_jsxFileName="/home/runner/work/neeto-ui-rn/neeto-ui-rn/src/components/AnimatedImage.js";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 StyledImage=(0,_native.default)(_reactNativeFastImage.default)(_templateObject||(_templateObject=(0,_taggedTemplateLiteralLoose2.default)(["\n ","\n ","\n ","\n ","\n ","\n"])),_styledSystem.flexbox,_styledSystem.space,_styledSystem.border,_styledSystem.color,_styledSystem.layout);var AnimatedImage=function AnimatedImage(_ref){var _ref$imageHeight=_ref.imageHeight,imageHeight=_ref$imageHeight===void 0?139:_ref$imageHeight,_ref$imageWidth=_ref.imageWidth,imageWidth=_ref$imageWidth===void 0?255:_ref$imageWidth,imageUrl=_ref.imageUrl,rest=(0,_objectWithoutProperties2.default)(_ref,_excluded);var opacity=(0,_reactNativeReanimated.useSharedValue)(0);var _useState=(0,_react.useState)(false),_useState2=(0,_slicedToArray2.default)(_useState,2),isImageLoaded=_useState2[0],setImageLoaded=_useState2[1];var profileImageStyle=(0,_reactNativeReanimated.useAnimatedStyle)(function(){var _f=function _f(){return{opacity:(0,_reactNativeReanimated.withTiming)(opacity.value,{duration:300,easing:_reactNativeReanimated.Easing.bezier(0.25,0.1,0.25,1)}),height:imageHeight,width:imageWidth,alignSelf:"center",borderRadius:10};};_f._closure={withTiming:_reactNativeReanimated.withTiming,opacity:opacity,Easing:{bezier:_reactNativeReanimated.Easing.bezier},imageHeight:imageHeight,imageWidth:imageWidth};_f.asString="function _f(){const{withTiming,opacity,Easing,imageHeight,imageWidth}=jsThis._closure;{return{opacity:withTiming(opacity.value,{duration:300,easing:Easing.bezier(0.25,0.1,0.25,1)}),height:imageHeight,width:imageWidth,alignSelf:\"center\",borderRadius:10};}}";_f.__workletHash=14435952499043;_f.__location="/home/runner/work/neeto-ui-rn/neeto-ui-rn/src/components/AnimatedImage.js (62:45)";_f.__optimalization=2;return _f;}());return _react.default.createElement(_react.default.Fragment,null,_react.default.createElement(_.Container,{justifyContent:"center",alignItems:"center",borderRadius:10,overflow:"hidden",__self:_this,__source:{fileName:_jsxFileName,lineNumber:77,columnNumber:7}},_react.default.createElement(_reactNativeReanimated.default.View,{style:profileImageStyle,__self:_this,__source:{fileName:_jsxFileName,lineNumber:83,columnNumber:9}},_react.default.createElement(StyledImage,(0,_extends2.default)({height:imageHeight,width:imageWidth,source:{uri:imageUrl,headers:{Accept:"*/*","Content-Type":"application/json",Pragma:"no-cache"}},onLoadStart:function onLoadStart(){setImageLoaded(false);opacity.value=0;},onLoad:function onLoad(){setImageLoaded(true);opacity.value=1;}},rest,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:84,columnNumber:11}}))),!isImageLoaded&&_react.default.createElement(_.Container,{position:"absolute",__self:_this,__source:{fileName:_jsxFileName,lineNumber:108,columnNumber:11}},_react.default.createElement(_imagePlaceholder.default,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:109,columnNumber:13}}),_react.default.createElement(_.Container,{position:"absolute",bottom:15,right:15,__self:_this,__source:{fileName:_jsxFileName,lineNumber:110,columnNumber:13}},_react.default.createElement(_reactNative.ActivityIndicator,{size:"small",color:_theme.theme.colors.font.grey600,__self:_this,__source:{fileName:_jsxFileName,lineNumber:111,columnNumber:15}})))));};exports.AnimatedImage=AnimatedImage;AnimatedImage.defaultProps={alignItems:"center",justifyContent:"center"};AnimatedImage.propTypes={imageHeight:_propTypes.default.number,imageWidth:_propTypes.default.number,imageUrl:_propTypes.default.string.isRequired};
@@ -1 +1 @@
1
- var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.OtpInputs=void 0;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _taggedTemplateLiteralLoose2=_interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));var _react=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _propTypes=_interopRequireDefault(require("prop-types"));var _styledSystem=require("styled-system");var _native=_interopRequireDefault(require("styled-components/native"));var _theme=require("../theme");var _=require("./");var _templateObject,_this=this,_jsxFileName="/home/runner/work/neeto-ui-rn/neeto-ui-rn/src/components/OtpInputs.js";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 TextInput=_native.default.TextInput(_templateObject||(_templateObject=(0,_taggedTemplateLiteralLoose2.default)(["\n ","\n ","\n ","\n ","\n ","\n ","\n"])),_styledSystem.flexbox,_styledSystem.space,_styledSystem.border,_styledSystem.buttonStyle,_styledSystem.typography,_styledSystem.color);var styles={inputStyles:{fontSize:0,backgroundColor:"transparent",color:"transparent",width:"100%",height:"100%",position:"absolute"},defaultContainerStyles:{margin:2,borderRadius:8,backgroundColor:_theme.theme.colors.background.white,justifyContent:"center",alignItems:"center",minHeight:42,minWidth:42},defaultTextStyles:{fontSize:_theme.theme.fontSizes.xl,fontFamily:_theme.theme.fonts.sf700}};var OtpInputs=function OtpInputs(_ref){var _ref$handleChange=_ref.handleChange,handleChange=_ref$handleChange===void 0?function(){}:_ref$handleChange,_ref$numberOfInputs=_ref.numberOfInputs,numberOfInputs=_ref$numberOfInputs===void 0?4:_ref$numberOfInputs,_ref$error=_ref.error,error=_ref$error===void 0?false:_ref$error,_ref$code=_ref.code,code=_ref$code===void 0?"":_ref$code,containerStyles=_ref.containerStyles,textStyles=_ref.textStyles;var inputRef=_react.default.useRef();(0,_react.useEffect)(function(){_reactNative.InteractionManager.runAfterInteractions(function(){if(inputRef!=null&&inputRef.current){inputRef.current.focus();}});},[inputRef]);return _react.default.createElement(_.Container,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:95,columnNumber:5}},_react.default.createElement(_.Touchable,{onPress:function onPress(){_reactNative.Keyboard.dismiss();inputRef&&inputRef.current.focus();},__self:_this,__source:{fileName:_jsxFileName,lineNumber:96,columnNumber:7}},_react.default.createElement(_.Container,{flexDirection:"row",alignItems:"center",justifyContent:"center",__self:_this,__source:{fileName:_jsxFileName,lineNumber:102,columnNumber:9}},Array(numberOfInputs).fill().map(function(number,index){return _react.default.createElement(_.Container,(0,_extends2.default)({key:index,borderColor:code.length-1===index?_theme.theme.colors.border.purple500:_theme.theme.colors.border.secondary,borderWidth:code.length-1===index?1.5:1},styles.defaultContainerStyles,containerStyles,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:111,columnNumber:17}}),_react.default.createElement(_.Typography,(0,_extends2.default)({accessibilityLabel:"otp",color:error?_theme.theme.colors.font.danger:_theme.theme.colors.font.purple500},styles.defaultTextStyles,textStyles,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:122,columnNumber:19}}),code[index]||""));}),_react.default.createElement(TextInput,(0,_extends2.default)({keyboardType:"phone-pad",selectionColor:"transparent",autoFocus:true,onChangeText:function onChangeText(value){if(!isNaN(value)){if(value.length<=numberOfInputs){handleChange&&handleChange(value);}if(value.length>=numberOfInputs){return _reactNative.Keyboard.dismiss();}}},ref:inputRef,value:code||""},styles.inputStyles,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:137,columnNumber:11}})))));};exports.OtpInputs=OtpInputs;OtpInputs.defaultProps={containerStyles:{},textStyles:{}};OtpInputs.propTypes={code:_propTypes.default.string.isRequired,numberOfInputs:_propTypes.default.number.isRequired,handleChange:_propTypes.default.func.isRequired,error:_propTypes.default.bool,containerStyles:_propTypes.default.object,textStyles:_propTypes.default.object};
1
+ var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.OtpInputs=void 0;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _taggedTemplateLiteralLoose2=_interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));var _react=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _propTypes=_interopRequireDefault(require("prop-types"));var _styledSystem=require("styled-system");var _native=_interopRequireDefault(require("styled-components/native"));var _theme=require("../theme");var _=require("./");var _templateObject,_this=this,_jsxFileName="/home/runner/work/neeto-ui-rn/neeto-ui-rn/src/components/OtpInputs.js";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 TextInput=_native.default.TextInput(_templateObject||(_templateObject=(0,_taggedTemplateLiteralLoose2.default)(["\n ","\n ","\n ","\n ","\n ","\n ","\n"])),_styledSystem.flexbox,_styledSystem.space,_styledSystem.border,_styledSystem.buttonStyle,_styledSystem.typography,_styledSystem.color);var styles={inputStyles:{fontSize:0,backgroundColor:"transparent",color:"transparent",width:"100%",height:"100%",position:"absolute"},defaultContainerStyles:{margin:2,borderRadius:8,backgroundColor:_theme.theme.colors.background.white,justifyContent:"center",alignItems:"center",minHeight:42,minWidth:42},defaultTextStyles:{fontSize:_theme.theme.fontSizes.xl,fontFamily:_theme.theme.fonts.sf700}};var OtpInputs=function OtpInputs(_ref){var _ref$handleChange=_ref.handleChange,handleChange=_ref$handleChange===void 0?function(){}:_ref$handleChange,_ref$numberOfInputs=_ref.numberOfInputs,numberOfInputs=_ref$numberOfInputs===void 0?4:_ref$numberOfInputs,_ref$error=_ref.error,error=_ref$error===void 0?false:_ref$error,_ref$code=_ref.code,code=_ref$code===void 0?"":_ref$code,containerStyles=_ref.containerStyles,textStyles=_ref.textStyles;var inputRef=_react.default.useRef();(0,_react.useEffect)(function(){_reactNative.InteractionManager.runAfterInteractions(function(){if(inputRef!=null&&inputRef.current){inputRef.current.focus();}});},[inputRef]);return _react.default.createElement(_.Container,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:95,columnNumber:5}},_react.default.createElement(_.Container,{onTouchEnd:function onTouchEnd(){_reactNative.Keyboard.dismiss();inputRef&&inputRef.current.focus();},flexDirection:"row",alignItems:"center",justifyContent:"center",__self:_this,__source:{fileName:_jsxFileName,lineNumber:96,columnNumber:7}},Array(numberOfInputs).fill().map(function(number,index){return _react.default.createElement(_.Container,(0,_extends2.default)({key:index,borderColor:code.length-1===index?_theme.theme.colors.border.purple500:_theme.theme.colors.border.secondary,borderWidth:code.length-1===index?1.5:1},styles.defaultContainerStyles,containerStyles,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:109,columnNumber:15}}),_react.default.createElement(_.Typography,(0,_extends2.default)({accessibilityLabel:"otp",color:error?_theme.theme.colors.font.danger:_theme.theme.colors.font.purple500},styles.defaultTextStyles,textStyles,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:120,columnNumber:17}}),code[index]||""));}),_react.default.createElement(TextInput,(0,_extends2.default)({keyboardType:"phone-pad",selectionColor:"transparent",autoFocus:true,onChangeText:function onChangeText(value){if(!isNaN(value)){if(value.length<=numberOfInputs){handleChange&&handleChange(value);}if(value.length>=numberOfInputs){return _reactNative.Keyboard.dismiss();}}},ref:inputRef,value:code||""},styles.inputStyles,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:135,columnNumber:9}}))));};exports.OtpInputs=OtpInputs;OtpInputs.defaultProps={containerStyles:{},textStyles:{}};OtpInputs.propTypes={code:_propTypes.default.string.isRequired,numberOfInputs:_propTypes.default.number.isRequired,handleChange:_propTypes.default.func.isRequired,error:_propTypes.default.bool,containerStyles:_propTypes.default.object,textStyles:_propTypes.default.object};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bigbinary/neetoui-rn",
3
- "version": "0.0.196",
3
+ "version": "0.0.199",
4
4
  "main": "lib/index.js",
5
5
  "author": "BigBinary",
6
6
  "license": "MIT",
@@ -43,6 +43,7 @@
43
43
  ]
44
44
  },
45
45
  "peerDependencies": {
46
+ "react-native-fast-image": "^8.6.0",
46
47
  "react-native-reanimated": "^2.7.0",
47
48
  "react-native-safe-area-context": "^3.3.2",
48
49
  "react-native-svg": "*",
@@ -121,6 +122,7 @@
121
122
  "react": "17.0.2",
122
123
  "react-dom": "17.0.2",
123
124
  "react-native": "0.66.2",
125
+ "react-native-fast-image": "^8.6.0",
124
126
  "react-native-pager-view": "^5.4.25",
125
127
  "react-native-reanimated": "^2.7.0",
126
128
  "react-native-screens": "^3.15.0",
@@ -1,4 +1,5 @@
1
1
  import React, { useState } from "react";
2
+ import RNFImage from "react-native-fast-image";
2
3
  import PropTypes from "prop-types";
3
4
  import Animated, {
4
5
  Easing,
@@ -6,12 +7,22 @@ import Animated, {
6
7
  useSharedValue,
7
8
  withTiming,
8
9
  } from "react-native-reanimated";
10
+ import styled from "styled-components/native";
11
+ import { flexbox, space, border, color, layout } from "styled-system";
9
12
 
10
13
  import { Container } from "@components";
11
14
  import ImagePlaceholder from "@assets/images/image-placeholder.svg";
12
15
  import { ActivityIndicator } from "react-native";
13
16
  import { theme } from "../theme";
14
17
 
18
+ const StyledImage = styled(RNFImage)`
19
+ ${flexbox}
20
+ ${space}
21
+ ${border}
22
+ ${color}
23
+ ${layout}
24
+ `;
25
+
15
26
  /**
16
27
  * AnimatedImage can be used to display a placeholder before image is loaded with animation.
17
28
  *
@@ -69,22 +80,29 @@ export const AnimatedImage = ({
69
80
  borderRadius={10}
70
81
  overflow="hidden"
71
82
  >
72
- <Animated.Image
73
- style={profileImageStyle}
74
- source={{
75
- uri: imageUrl,
76
- headers: {
77
- Accept: "*/*",
78
- "Content-Type": "application/json",
79
- Pragma: "no-cache",
80
- },
81
- }}
82
- onLoad={() => {
83
- setImageLoaded(true);
84
- opacity.value = 1;
85
- }}
86
- {...rest}
87
- />
83
+ <Animated.View style={profileImageStyle}>
84
+ <StyledImage
85
+ height={imageHeight}
86
+ width={imageWidth}
87
+ source={{
88
+ uri: imageUrl,
89
+ headers: {
90
+ Accept: "*/*",
91
+ "Content-Type": "application/json",
92
+ Pragma: "no-cache",
93
+ },
94
+ }}
95
+ onLoadStart={() => {
96
+ setImageLoaded(false);
97
+ opacity.value = 0;
98
+ }}
99
+ onLoad={() => {
100
+ setImageLoaded(true);
101
+ opacity.value = 1;
102
+ }}
103
+ {...rest}
104
+ />
105
+ </Animated.View>
88
106
 
89
107
  {!isImageLoaded && (
90
108
  <Container position="absolute">
@@ -12,7 +12,7 @@ import {
12
12
  import styled from "styled-components/native";
13
13
 
14
14
  import { theme } from "../theme";
15
- import { Container, Touchable, Typography } from "@components";
15
+ import { Container, Typography } from "@components";
16
16
 
17
17
  const TextInput = styled.TextInput`
18
18
  ${flexbox}
@@ -93,67 +93,64 @@ export const OtpInputs = ({
93
93
 
94
94
  return (
95
95
  <Container>
96
- <Touchable
97
- onPress={() => {
96
+ <Container
97
+ onTouchEnd={() => {
98
98
  Keyboard.dismiss();
99
99
  inputRef && inputRef.current.focus();
100
100
  }}
101
+ flexDirection="row"
102
+ alignItems="center"
103
+ justifyContent="center"
101
104
  >
102
- <Container
103
- flexDirection="row"
104
- alignItems="center"
105
- justifyContent="center"
106
- >
107
- {Array(numberOfInputs)
108
- .fill()
109
- .map((number, index) => {
110
- return (
111
- <Container
112
- key={index}
113
- borderColor={
114
- code.length - 1 === index
115
- ? theme.colors.border.purple500
116
- : theme.colors.border.secondary
105
+ {Array(numberOfInputs)
106
+ .fill()
107
+ .map((number, index) => {
108
+ return (
109
+ <Container
110
+ key={index}
111
+ borderColor={
112
+ code.length - 1 === index
113
+ ? theme.colors.border.purple500
114
+ : theme.colors.border.secondary
115
+ }
116
+ borderWidth={code.length - 1 === index ? 1.5 : 1}
117
+ {...styles.defaultContainerStyles}
118
+ {...containerStyles}
119
+ >
120
+ <Typography
121
+ accessibilityLabel="otp"
122
+ color={
123
+ error
124
+ ? theme.colors.font.danger
125
+ : theme.colors.font.purple500
117
126
  }
118
- borderWidth={code.length - 1 === index ? 1.5 : 1}
119
- {...styles.defaultContainerStyles}
120
- {...containerStyles}
127
+ {...styles.defaultTextStyles}
128
+ {...textStyles}
121
129
  >
122
- <Typography
123
- accessibilityLabel="otp"
124
- color={
125
- error
126
- ? theme.colors.font.danger
127
- : theme.colors.font.purple500
128
- }
129
- {...styles.defaultTextStyles}
130
- {...textStyles}
131
- >
132
- {code[index] || ""}
133
- </Typography>
134
- </Container>
135
- );
136
- })}
137
- <TextInput
138
- keyboardType="phone-pad"
139
- selectionColor="transparent"
140
- autoFocus={true}
141
- onChangeText={value => {
142
- if (!isNaN(value)) {
143
- if (value.length <= numberOfInputs) {
144
- handleChange && handleChange(value);
145
- }
146
- if (value.length >= numberOfInputs) {
147
- return Keyboard.dismiss();
148
- }
130
+ {code[index] || ""}
131
+ </Typography>
132
+ </Container>
133
+ );
134
+ })}
135
+ <TextInput
136
+ keyboardType="phone-pad"
137
+ selectionColor="transparent"
138
+ autoFocus={true}
139
+ onChangeText={value => {
140
+ if (!isNaN(value)) {
141
+ if (value.length <= numberOfInputs) {
142
+ handleChange && handleChange(value);
143
+ }
144
+ if (value.length >= numberOfInputs) {
145
+ return Keyboard.dismiss();
149
146
  }
150
- }}
151
- ref={inputRef}
152
- value={code || ""}
153
- {...styles.inputStyles}
154
- />
155
- </Container>
156
- </Touchable>
147
+ }
148
+ }}
149
+ ref={inputRef}
150
+ value={code || ""}
151
+ {...styles.inputStyles}
152
+ />
153
+ </Container>
157
154
  </Container>
158
155
  );
159
156
  };