@bigbinary/neetoui-rn 0.0.247 → 0.0.248
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/assets/icons/attachment.svg +3 -0
- package/assets/icons/canned-response.svg +5 -0
- package/assets/icons/expand.svg +5 -0
- package/assets/icons/forward.svg +3 -0
- package/assets/icons/minimize.svg +6 -0
- package/assets/icons/note.svg +4 -0
- package/assets/icons/reply.svg +5 -0
- package/index.d.ts +28 -0
- package/lib/components/Button.js +1 -1
- package/lib/components/ChatInput/AttachmentsView.js +1 -0
- package/lib/components/ChatInput/Badge.js +1 -0
- package/lib/components/ChatInput/ChatInput.js +1 -0
- package/lib/components/ChatInput/EmailFields.js +1 -0
- package/lib/components/ChatInput/IconButton.js +1 -0
- package/lib/components/InputEmailChip.js +1 -1
- package/lib/components/LineLoader.js +1 -0
- package/lib/components/index.js +1 -1
- package/lib/theme/index.js +1 -1
- package/package.json +1 -1
- package/src/components/Button.jsx +7 -3
- package/src/components/ChatInput/AttachmentsView.jsx +51 -0
- package/src/components/ChatInput/Badge.jsx +24 -0
- package/src/components/ChatInput/ChatInput.jsx +422 -0
- package/src/components/ChatInput/EmailFields.jsx +92 -0
- package/src/components/ChatInput/IconButton.jsx +22 -0
- package/src/components/InputEmailChip.jsx +14 -5
- package/src/components/LineLoader.jsx +46 -0
- package/src/components/index.js +2 -0
- package/src/theme/index.js +1 -0
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg width="12" height="22" viewBox="0 0 12 22" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M12 16.1163V6.90698C12 6.48233 11.6504 6.13953 11.2174 6.13953C10.7843 6.13953 10.4348 6.48233 10.4348 6.90698V16.1163C10.4348 18.5158 8.44696 20.4651 6 20.4651C3.55304 20.4651 1.56522 18.5158 1.56522 16.1163V4.34884C1.56522 2.7986 2.85391 1.53488 4.43478 1.53488C6.01565 1.53488 7.30435 2.7986 7.30435 4.34884V15.3488C7.30435 16.0549 6.72 16.6279 6 16.6279C5.28 16.6279 4.69565 16.0549 4.69565 15.3488V5.37209C4.69565 4.94744 4.34609 4.60465 3.91304 4.60465C3.48 4.60465 3.13043 4.94744 3.13043 5.37209V15.3488C3.13043 16.8991 4.41913 18.1628 6 18.1628C7.58087 18.1628 8.86957 16.8991 8.86957 15.3488V4.34884C8.86957 1.9493 6.88174 0 4.43478 0C1.98783 0 0 1.9493 0 4.34884V16.1163C0 19.36 2.69217 22 6 22C9.30783 22 12 19.36 12 16.1163Z" fill="#2F3941"/>
|
|
3
|
+
</svg>
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M10 5H3V21L7.5 18.3H19V11" stroke="#323232" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
|
3
|
+
<path d="M21 5H14" stroke="#323232" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
|
4
|
+
<path d="M18.999 3L21 5L18.999 7" stroke="#323232" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
|
5
|
+
</svg>
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<svg width="15" height="15" viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M7.93335 0.93407C7.93335 0.651193 8.16266 0.421875 8.44554 0.421875H13.9089C14.1918 0.421875 14.4211 0.651193 14.4211 0.93407V6.39749C14.4211 6.68036 14.1918 6.90968 13.9089 6.90968C13.6261 6.90968 13.3968 6.68036 13.3968 6.39749V1.44627H8.44554C8.16266 1.44627 7.93335 1.21695 7.93335 0.93407Z" fill="#87929D"/>
|
|
3
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M14.2711 0.571893C14.4711 0.771918 14.4711 1.09622 14.2711 1.29625L1.29551 14.2719C1.09549 14.4719 0.771185 14.4719 0.571161 14.2719C0.371136 14.0718 0.371136 13.7475 0.571161 13.5475L13.5468 0.571893C13.7468 0.371869 14.0711 0.371869 14.2711 0.571893Z" fill="#87929D"/>
|
|
4
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M0.933337 7.93396C1.21621 7.93396 1.44553 8.16328 1.44553 8.44615V13.3974H6.39674C6.67962 13.3974 6.90894 13.6267 6.90894 13.9096C6.90894 14.1924 6.67962 14.4218 6.39674 14.4218H0.933337C0.65046 14.4218 0.421143 14.1924 0.421143 13.9096V8.44615C0.421143 8.16328 0.65046 7.93396 0.933337 7.93396Z" fill="#87929D"/>
|
|
5
|
+
</svg>
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M13 13.097V16.165C13 17.032 14.029 17.488 14.672 16.906L20.702 11.44C21.15 11.034 21.138 10.327 20.677 9.93697L14.647 4.81897C13.997 4.26697 13 4.72897 13 5.58097V8.01797C7.537 8.01797 3 11.39 3 17V18.129C4.847 14.445 8.687 13.097 13 13.097Z" stroke="#323232" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
|
3
|
+
</svg>
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<svg width="15" height="15" viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M1.21802 8.93594C1.21802 8.63854 1.45909 8.39746 1.75648 8.39746H6.06416C6.36154 8.39746 6.60262 8.63854 6.60262 8.93594V13.2437C6.60262 13.5411 6.36154 13.7822 6.06416 13.7822C5.76677 13.7822 5.5257 13.5411 5.5257 13.2437V9.47441H1.75648C1.45909 9.47441 1.21802 9.23333 1.21802 8.93594Z" fill="#87929D"/>
|
|
3
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.93592 1.21777C9.2333 1.21777 9.47438 1.45886 9.47438 1.75625V5.52557H13.2436C13.541 5.52557 13.7821 5.76666 13.7821 6.06405C13.7821 6.36144 13.541 6.60252 13.2436 6.60252H8.93592C8.63854 6.60252 8.39746 6.36144 8.39746 6.06405V1.75625C8.39746 1.45886 8.63854 1.21777 8.93592 1.21777Z" fill="#87929D"/>
|
|
4
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M14.3423 0.657716C14.5526 0.868003 14.5526 1.20895 14.3423 1.41923L9.31667 6.445C9.10639 6.65529 8.76545 6.65529 8.55517 6.445C8.34489 6.23471 8.34489 5.89377 8.55517 5.68348L13.5808 0.657716C13.7911 0.447428 14.132 0.447428 14.3423 0.657716Z" fill="#87929D"/>
|
|
5
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M6.44483 8.55518C6.65512 8.76546 6.65512 9.10641 6.44483 9.3167L1.41921 14.3425C1.20893 14.5527 0.867993 14.5527 0.657711 14.3425C0.44743 14.1322 0.44743 13.7912 0.657711 13.5809L5.68334 8.55518C5.89362 8.34489 6.23455 8.34489 6.44483 8.55518Z" fill="#87929D"/>
|
|
6
|
+
</svg>
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M18.414 6.414L15.586 3.586C15.211 3.211 14.702 3 14.172 3H7C5.895 3 5 3.895 5 5V19C5 20.105 5.895 21 7 21H17C18.105 21 19 20.105 19 19V7.828C19 7.298 18.789 6.789 18.414 6.414V6.414Z" stroke="#323232" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
|
3
|
+
<path d="M19 8H15C14.448 8 14 7.552 14 7V3" stroke="#323232" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
|
4
|
+
</svg>
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M15.5 14.5H8.5" stroke="#323232" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
|
3
|
+
<path d="M8.5 10.5H15.5" stroke="#323232" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
|
4
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M4.151 16.396C3.421 15.096 3 13.598 3 12C3 7.029 7.029 3 12 3C16.971 3 21 7.029 21 12C21 16.971 16.971 21 12 21C10.402 21 8.904 20.579 7.604 19.849L3 21L4.151 16.396Z" stroke="#323232" stroke-width="1.5882" stroke-linecap="round" stroke-linejoin="round"/>
|
|
5
|
+
</svg>
|
package/index.d.ts
CHANGED
|
@@ -318,6 +318,32 @@ type InputProps = {
|
|
|
318
318
|
textAlignVertical?: string;
|
|
319
319
|
};
|
|
320
320
|
|
|
321
|
+
type ChatInputProps = {
|
|
322
|
+
isLoading?: boolean;
|
|
323
|
+
shouldShowEmailFields?: boolean;
|
|
324
|
+
value: string;
|
|
325
|
+
initialSelectedOption?: "REPLY" | "NOTE" | "FORWARD";
|
|
326
|
+
onOptionChange?: (option: string) => void;
|
|
327
|
+
onChangeText: (text: string) => void;
|
|
328
|
+
onForward?: () => void;
|
|
329
|
+
onCannedResponse?: () => void;
|
|
330
|
+
toEmails?: string;
|
|
331
|
+
onReply?: () => void;
|
|
332
|
+
onAddNote?: () => void;
|
|
333
|
+
onAttachment?: () => void;
|
|
334
|
+
attachmentsCount?: number;
|
|
335
|
+
Attachments?: React.FC;
|
|
336
|
+
showCannedResponsesFor?: Array<"REPLY" | "NOTE" | "FORWARD">;
|
|
337
|
+
disabled?: boolean;
|
|
338
|
+
};
|
|
339
|
+
|
|
340
|
+
type LineLoaderProps = {
|
|
341
|
+
backgroundColor?: string,
|
|
342
|
+
foregroundColor?: string,
|
|
343
|
+
height?: number,
|
|
344
|
+
isLoading?: boolean;
|
|
345
|
+
};
|
|
346
|
+
|
|
321
347
|
type InputEmailChipProps = {
|
|
322
348
|
disabled?: boolean;
|
|
323
349
|
label?: string;
|
|
@@ -554,6 +580,8 @@ export const FlashList: React.FC<FlashListProps>;
|
|
|
554
580
|
export const FlatList: React.FC<FlatListProps>;
|
|
555
581
|
export const Input: React.FC<InputProps>;
|
|
556
582
|
export const InputEmailChip: React.FC<InputEmailChipProps>;
|
|
583
|
+
export const ChatInput: React.FC<ChatInputProps>;
|
|
584
|
+
export const LineLoader: React.FC<LineLoaderProps>;
|
|
557
585
|
export const ListItem: React.FC<ListItemProps>;
|
|
558
586
|
export const Loader: React.FC<LoaderProps>;
|
|
559
587
|
export const NotificationPreferenceList: React.FC<NotificationPreferenceListProps>;
|
package/lib/components/Button.js
CHANGED
|
@@ -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=_react.default.forwardRef(function(_ref,ref){var variant=_ref.variant,label=_ref.label,labelStyle=_ref.labelStyle,RightIcon=_ref.RightIcon,LeftIcon=_ref.LeftIcon,disabled=_ref.disabled,isLoading=_ref.isLoading,loadingText=_ref.loadingText,fontFamily=_ref.fontFamily,color=_ref.color,fontSize=_ref.fontSize,rest=(0,_objectWithoutProperties2.default)(_ref,_excluded);var theme=(0,_react.useContext)(_native.ThemeContext);var width=variant==="text"||variant==="danger-text"?null:"100%";var getButtonColors=function getButtonColors(){switch(variant){case BUTTON_VARIANTS.SOLID:return{bg:theme.colors.background[disabled?"grey400":"base"],border:theme.colors.background[disabled?"grey400":"base"],color:theme.colors.background.white,ripple:"white"};case BUTTON_VARIANTS.SECONDARY:return{bg:"transparent",border:theme.colors.background.base,color:theme.colors.font.base,ripple:theme.colors.background.base};case BUTTON_VARIANTS.TEXT:return{bg:"transparent",border:"transparent",color:theme.colors.font.primary,ripple:theme.colors.background.grey800};case BUTTON_VARIANTS.DANGER:return{bg:theme.colors.background.danger,border:theme.colors.background.danger,color:theme.colors.background.white,ripple:"white"};case BUTTON_VARIANTS.DANGER_INVERSE:return{bg:theme.colors.background.white,border:theme.colors.background.danger,color:theme.colors.background.danger,ripple:theme.colors.background.grey800};case BUTTON_VARIANTS.DANGER_TEXT:return{bg:"transparent",border:"transparent",color:theme.colors.background.danger,ripple:theme.colors.background.grey800};default:return{bg:theme.colors.background[disabled?"grey400":"base"],border:theme.colors.background[disabled?"grey400":"base"],color:theme.colors.background.white,ripple:"white"};}};var renderOpacity=function renderOpacity(){if(["secondary","danger","danger-inverse","danger-text"].includes(variant)&&disabled){return 0.5;}return 1;};return _react.default.createElement(_.Touchable,(0,_extends2.default)({alignItems:"center",bg:getButtonColors().bg,borderColor:getButtonColors().border,borderRadius:(0,_reactNativeSizeMatters.moderateScale)(8),borderWidth:(0,_reactNativeSizeMatters.moderateScale)(1),disabled:disabled||isLoading,flexDirection:"row",height:(0,_reactNativeSizeMatters.moderateScale)(48),justifyContent:"center",opacity:renderOpacity(),px:width===null?(0,_reactNativeSizeMatters.moderateScale)(8):undefined,ref:ref,rippleConfig:{color:getButtonColors().ripple},width:width},rest,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:
|
|
1
|
+
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.Button=exports.BUTTON_VARIANTS=void 0;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _react=_interopRequireWildcard(require("react"));var _propTypes=_interopRequireDefault(require("@styled-system/prop-types"));var _propTypes2=_interopRequireDefault(require("prop-types"));var _reactNativeSizeMatters=require("react-native-size-matters");var _native=require("styled-components/native");var _=require("./");var _excluded=["variant","label","labelStyle","RightIcon","LeftIcon","disabled","isLoading","loadingText","fontFamily","color","fontSize"];var _this=this,_jsxFileName="/home/runner/work/neeto-ui-rn/neeto-ui-rn/src/components/Button.jsx";function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap();var cacheNodeInterop=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj;}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj};}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj);}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc);}else{newObj[key]=obj[key];}}}newObj.default=obj;if(cache){cache.set(obj,newObj);}return newObj;}var BUTTON_VARIANTS=Object.freeze({SOLID:"solid",SECONDARY:"secondary",TEXT:"text",DANGER:"danger",DANGER_INVERSE:"danger-inverse",DANGER_TEXT:"danger-text"});exports.BUTTON_VARIANTS=BUTTON_VARIANTS;var Button=_react.default.forwardRef(function(_ref,ref){var variant=_ref.variant,label=_ref.label,labelStyle=_ref.labelStyle,RightIcon=_ref.RightIcon,LeftIcon=_ref.LeftIcon,disabled=_ref.disabled,isLoading=_ref.isLoading,loadingText=_ref.loadingText,fontFamily=_ref.fontFamily,color=_ref.color,fontSize=_ref.fontSize,rest=(0,_objectWithoutProperties2.default)(_ref,_excluded);var theme=(0,_react.useContext)(_native.ThemeContext);var width=variant==="text"||variant==="danger-text"?null:"100%";var getButtonColors=function getButtonColors(){switch(variant){case BUTTON_VARIANTS.SOLID:return{bg:theme.colors.background[disabled?"grey400":"base"],border:theme.colors.background[disabled?"grey400":"base"],color:theme.colors.background.white,ripple:"white"};case BUTTON_VARIANTS.SECONDARY:return{bg:"transparent",border:theme.colors.background.base,color:theme.colors.font.base,ripple:theme.colors.background.base};case BUTTON_VARIANTS.TEXT:return{bg:"transparent",border:"transparent",color:theme.colors.font.primary,ripple:theme.colors.background.grey800};case BUTTON_VARIANTS.DANGER:return{bg:theme.colors.background.danger,border:theme.colors.background.danger,color:theme.colors.background.white,ripple:"white"};case BUTTON_VARIANTS.DANGER_INVERSE:return{bg:theme.colors.background.white,border:theme.colors.background.danger,color:theme.colors.background.danger,ripple:theme.colors.background.grey800};case BUTTON_VARIANTS.DANGER_TEXT:return{bg:"transparent",border:"transparent",color:theme.colors.background.danger,ripple:theme.colors.background.grey800};default:return{bg:theme.colors.background[disabled?"grey400":"base"],border:theme.colors.background[disabled?"grey400":"base"],color:theme.colors.background.white,ripple:"white"};}};var renderOpacity=function renderOpacity(){if(["text","secondary","danger","danger-inverse","danger-text"].includes(variant)&&disabled){return 0.5;}return 1;};return _react.default.createElement(_.Touchable,(0,_extends2.default)({alignItems:"center",bg:getButtonColors().bg,borderColor:getButtonColors().border,borderRadius:(0,_reactNativeSizeMatters.moderateScale)(8),borderWidth:(0,_reactNativeSizeMatters.moderateScale)(1),disabled:disabled||isLoading,flexDirection:"row",height:(0,_reactNativeSizeMatters.moderateScale)(48),justifyContent:"center",opacity:renderOpacity(),px:width===null?(0,_reactNativeSizeMatters.moderateScale)(8):undefined,ref:ref,rippleConfig:{color:getButtonColors().ripple},width:width},rest,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:166,columnNumber:7}}),isLoading?_react.default.createElement(_.Container,{flexDirection:"row",__self:_this,__source:{fileName:_jsxFileName,lineNumber:184,columnNumber:11}},_react.default.createElement(_.Loader,{color:getButtonColors().color,__self:_this,__source:{fileName:_jsxFileName,lineNumber:185,columnNumber:13}}),!!loadingText&&_react.default.createElement(_.Typography,(0,_extends2.default)({color:color||getButtonColors().color,fontFamily:fontFamily||theme.fonts.sf500,fontSize:fontSize,ml:(0,_reactNativeSizeMatters.moderateScale)(8),textAlign:"center"},labelStyle,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:187,columnNumber:15}}),loadingText)):_react.default.createElement(_react.default.Fragment,null,LeftIcon&&_react.default.createElement(LeftIcon,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:201,columnNumber:26}}),_react.default.createElement(_.Typography,(0,_extends2.default)({color:color||getButtonColors().color,fontFamily:fontFamily||theme.fonts.sf500,fontSize:fontSize,mx:(0,_reactNativeSizeMatters.moderateScale)(2),textAlign:"center"},labelStyle,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:202,columnNumber:13}}),label),RightIcon&&_react.default.createElement(RightIcon,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:212,columnNumber:27}})));});exports.Button=Button;Button.defaultProps={variant:"solid",isLoading:false,loadingText:"",fontSize:"m"};Button.propTypes=(0,_extends2.default)({},_propTypes.default.buttonStyle,_propTypes.default.flexbox,_propTypes.default.space,_propTypes.default.border,_propTypes.default.layout,_propTypes.default.color,{label:_propTypes2.default.string.isRequired,variant:_propTypes2.default.oneOf(Object.values(BUTTON_VARIANTS)),disabled:_propTypes2.default.bool,labelStyle:_propTypes2.default.object,RightIcon:_propTypes2.default.elementType,LeftIcon:_propTypes2.default.elementType,isLoading:_propTypes2.default.bool,loadingText:_propTypes2.default.string,fontFamily:_propTypes2.default.string,color:_propTypes2.default.string,fontSize:_propTypes2.default.string});Button.displayName="Button";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.AttachmentsView=void 0;var _react=_interopRequireDefault(require("react"));var _propTypes=_interopRequireDefault(require("prop-types"));var _reactNativeReanimated=_interopRequireWildcard(require("react-native-reanimated"));var _Badge=require("./Badge");var _this=this,_jsxFileName="/home/runner/work/neeto-ui-rn/neeto-ui-rn/src/components/ChatInput/AttachmentsView.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 AttachmentsView=function AttachmentsView(_ref){var isAttachmentsVisible=_ref.isAttachmentsVisible,setIsAttachmentsVisible=_ref.setIsAttachmentsVisible,Attachments=_ref.Attachments,attachmentsCount=_ref.attachmentsCount,isNoteOptionSelected=_ref.isNoteOptionSelected;return isAttachmentsVisible?attachmentsCount!==0&&_react.default.createElement(_reactNativeReanimated.default.View,{entering:_reactNativeReanimated.FadeInUp,key:isAttachmentsVisible,__self:_this,__source:{fileName:_jsxFileName,lineNumber:17,columnNumber:7}},Attachments):_react.default.createElement(_react.default.Fragment,null,attachmentsCount>0&&_react.default.createElement(_reactNativeReanimated.default.View,{alignItems:"flex-start",entering:_reactNativeReanimated.FadeInDown,flexDirection:"row",flexWrap:"wrap",key:isAttachmentsVisible,onTouchStart:function onTouchStart(){return setIsAttachmentsVisible(true);},__self:_this,__source:{fileName:_jsxFileName,lineNumber:24,columnNumber:9}},_react.default.createElement(_Badge.Badge,{isNoteOptionSelected:isNoteOptionSelected,text:"Attachments",__self:_this,__source:{fileName:_jsxFileName,lineNumber:32,columnNumber:11}}),_react.default.createElement(_Badge.Badge,{isNoteOptionSelected:isNoteOptionSelected,text:"+ "+attachmentsCount,__self:_this,__source:{fileName:_jsxFileName,lineNumber:36,columnNumber:11}})));};exports.AttachmentsView=AttachmentsView;AttachmentsView.propTypes={isAttachmentsVisible:_propTypes.default.bool,setIsAttachmentsVisible:_propTypes.default.func,Attachments:_propTypes.default.any,attachmentsCount:_propTypes.default.number,isNoteOptionSelected:_propTypes.default.bool};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.Badge=void 0;var _react=_interopRequireDefault(require("react"));var _propTypes=_interopRequireDefault(require("prop-types"));var _reactNativeSizeMatters=require("react-native-size-matters");var _=require("./..");var _this=this,_jsxFileName="/home/runner/work/neeto-ui-rn/neeto-ui-rn/src/components/ChatInput/Badge.jsx";var Badge=function Badge(_ref){var text=_ref.text,isNoteOptionSelected=_ref.isNoteOptionSelected;return _react.default.createElement(_.Container,{alignSelf:"flex-start",bg:isNoteOptionSelected?"white":"background.oldLace",borderRadius:(0,_reactNativeSizeMatters.moderateScale)(20),flexDirection:"row",flexGrow:0,px:(0,_reactNativeSizeMatters.moderateScale)(4),__self:_this,__source:{fileName:_jsxFileName,lineNumber:9,columnNumber:3}},_react.default.createElement(_.Typography,{fontSize:"3xs",__self:_this,__source:{fileName:_jsxFileName,lineNumber:17,columnNumber:5}},text));};exports.Badge=Badge;Badge.propTypes={text:_propTypes.default.string,isNoteOptionSelected:_propTypes.default.bool};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.ChatInput=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 _defineProperty2=_interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));var _react=_interopRequireWildcard(require("react"));var _propTypes=_interopRequireDefault(require("prop-types"));var _reactNativeSizeMatters=require("react-native-size-matters");var _native=_interopRequireDefault(require("styled-components/native"));var _styledSystem=require("styled-system");var _attachment=_interopRequireDefault(require("../../../assets/icons/attachment.svg"));var _cannedResponse=_interopRequireDefault(require("../../../assets/icons/canned-response.svg"));var _expand=_interopRequireDefault(require("../../../assets/icons/expand.svg"));var _forward=_interopRequireDefault(require("../../../assets/icons/forward.svg"));var _minimize=_interopRequireDefault(require("../../../assets/icons/minimize.svg"));var _note=_interopRequireDefault(require("../../../assets/icons/note.svg"));var _reply=_interopRequireDefault(require("../../../assets/icons/reply.svg"));var _=require("./..");var _AttachmentsView=require("./AttachmentsView");var _EmailFields=require("./EmailFields");var _IconButton=require("./IconButton");var _theme=require("../../theme");var _excluded=["shouldShowEmailFields","value","onChangeText","onForward","onCannedResponse","toEmails","onReply","onAddNote","onAttachment","attachmentsCount","Attachments","showCannedResponsesFor","disabled","isLoading","onOptionChange","initialSelectedOption"];var _labels,_templateObject,_this=this,_jsxFileName="/home/runner/work/neeto-ui-rn/neeto-ui-rn/src/components/ChatInput/ChatInput.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 placeholders={reply:"Type here to reply...",note:"Add note here...",forward:"Type here to forward..."};var OPTION_TYPES={REPLY:"REPLY",NOTE:"NOTE",FORWARD:"FORWARD"};var labels=(_labels={},(0,_defineProperty2.default)(_labels,OPTION_TYPES.REPLY,"Reply"),(0,_defineProperty2.default)(_labels,OPTION_TYPES.NOTE,"Add note"),(0,_defineProperty2.default)(_labels,OPTION_TYPES.FORWARD,"Forward"),_labels);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 ChatInput=function ChatInput(_ref){var shouldShowEmailFields=_ref.shouldShowEmailFields,_ref$value=_ref.value,value=_ref$value===void 0?"":_ref$value,_ref$onChangeText=_ref.onChangeText,onChangeText=_ref$onChangeText===void 0?function(){}:_ref$onChangeText,onForward=_ref.onForward,onCannedResponse=_ref.onCannedResponse,initialToEmails=_ref.toEmails,_ref$onReply=_ref.onReply,onReply=_ref$onReply===void 0?function(){}:_ref$onReply,_ref$onAddNote=_ref.onAddNote,onAddNote=_ref$onAddNote===void 0?function(){}:_ref$onAddNote,_ref$onAttachment=_ref.onAttachment,onAttachment=_ref$onAttachment===void 0?function(){}:_ref$onAttachment,attachmentsCount=_ref.attachmentsCount,Attachments=_ref.Attachments,_ref$showCannedRespon=_ref.showCannedResponsesFor,showCannedResponsesFor=_ref$showCannedRespon===void 0?[OPTION_TYPES.REPLY]:_ref$showCannedRespon,disabled=_ref.disabled,_ref$isLoading=_ref.isLoading,isLoading=_ref$isLoading===void 0?true:_ref$isLoading,_ref$onOptionChange=_ref.onOptionChange,onOptionChange=_ref$onOptionChange===void 0?function(){}:_ref$onOptionChange,_ref$initialSelectedO=_ref.initialSelectedOption,initialSelectedOption=_ref$initialSelectedO===void 0?OPTION_TYPES.REPLY:_ref$initialSelectedO,rest=(0,_objectWithoutProperties2.default)(_ref,_excluded);var inputRef=(0,_react.useRef)();var _useState=(0,_react.useState)(initialSelectedOption),_useState2=(0,_slicedToArray2.default)(_useState,2),selectedOption=_useState2[0],setSelectedOption=_useState2[1];var _useState3=(0,_react.useState)(false),_useState4=(0,_slicedToArray2.default)(_useState3,2),isEmailFieldsVisible=_useState4[0],setIsEmailFieldsVisible=_useState4[1];var _useState5=(0,_react.useState)(false),_useState6=(0,_slicedToArray2.default)(_useState5,2),isAttachmentsVisible=_useState6[0],setIsAttachmentsVisible=_useState6[1];var isReplyOptionSelected=selectedOption===OPTION_TYPES.REPLY;var isNoteOptionSelected=selectedOption===OPTION_TYPES.NOTE;var isForwardOptionSelected=selectedOption===OPTION_TYPES.FORWARD;var _useState7=(0,_react.useState)(initialToEmails!=null?initialToEmails:""),_useState8=(0,_slicedToArray2.default)(_useState7,2),toEmails=_useState8[0],setToEmails=_useState8[1];var _useState9=(0,_react.useState)(""),_useState10=(0,_slicedToArray2.default)(_useState9,2),ccEmails=_useState10[0],setCcEmails=_useState10[1];var _useState11=(0,_react.useState)(""),_useState12=(0,_slicedToArray2.default)(_useState11,2),bccEmails=_useState12[0],setBccEmails=_useState12[1];(0,_react.useEffect)(function(){onOptionChange(selectedOption);},[selectedOption]);(0,_react.useEffect)(function(){setSelectedOption(initialSelectedOption);},[initialSelectedOption]);(0,_react.useEffect)(function(){if(isReplyOptionSelected){setToEmails(initialToEmails!=null?initialToEmails:"");}else{setToEmails("");}},[initialToEmails,isReplyOptionSelected]);var showEmailFieldsAndAttachments=function showEmailFieldsAndAttachments(){setIsAttachmentsVisible(true);setIsEmailFieldsVisible(true);};var hideEmailFieldsAndAttachments=function hideEmailFieldsAndAttachments(){setIsAttachmentsVisible(false);setIsEmailFieldsVisible(false);};var onReplyClickHandler=function onReplyClickHandler(){hideEmailFieldsAndAttachments();inputRef.current.focus();setSelectedOption(OPTION_TYPES.REPLY);};var onAddNoteClickHandler=function onAddNoteClickHandler(){hideEmailFieldsAndAttachments();inputRef.current.focus();setIsEmailFieldsVisible(false);setSelectedOption(OPTION_TYPES.NOTE);};var onAddForwardClickHandler=function onAddForwardClickHandler(){inputRef.current.focus();setIsEmailFieldsVisible(true);setIsAttachmentsVisible(false);setSelectedOption(OPTION_TYPES.FORWARD);};var onAddAttachmentsClickHandler=function onAddAttachmentsClickHandler(){if(!isAttachmentsVisible&&attachmentsCount>0){}else{onAttachment();}setIsEmailFieldsVisible(false);setIsAttachmentsVisible(true);};var onActionHandler=(0,_react.useCallback)(function(){var _OPTION_TYPES$REPLY$O;(_OPTION_TYPES$REPLY$O={},(0,_defineProperty2.default)(_OPTION_TYPES$REPLY$O,OPTION_TYPES.REPLY,function(){onReply({toEmails:toEmails,ccEmails:ccEmails,bccEmails:bccEmails});}),(0,_defineProperty2.default)(_OPTION_TYPES$REPLY$O,OPTION_TYPES.NOTE,function(){onAddNote({toEmails:toEmails,ccEmails:ccEmails,bccEmails:bccEmails});}),(0,_defineProperty2.default)(_OPTION_TYPES$REPLY$O,OPTION_TYPES.FORWARD,function(){onForward({toEmails:toEmails,ccEmails:ccEmails,bccEmails:bccEmails});}),_OPTION_TYPES$REPLY$O)[selectedOption]();},[bccEmails,ccEmails,onAddNote,onForward,onReply,selectedOption,toEmails]);var shouldExpandAndMinimizeButton=attachmentsCount>0||toEmails;return _react.default.createElement(_.Container,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:232,columnNumber:5}},_react.default.createElement(_.LineLoader,{backgroundColor:_theme.theme.colors.background.grey400,isLoading:isLoading,__self:_this,__source:{fileName:_jsxFileName,lineNumber:233,columnNumber:7}}),_react.default.createElement(_.Container,{bg:isNoteOptionSelected?"background.oldLace":"transparent",p:(0,_reactNativeSizeMatters.moderateScale)(5),pt:0,px:(0,_reactNativeSizeMatters.moderateScale)(16),__self:_this,__source:{fileName:_jsxFileName,lineNumber:237,columnNumber:7}},_react.default.createElement(_.Container,{pt:(0,_reactNativeSizeMatters.moderateScale)(8),__self:_this,__source:{fileName:_jsxFileName,lineNumber:243,columnNumber:9}},_react.default.createElement(_EmailFields.EmailFields,{bccEmails:bccEmails,ccEmails:ccEmails,isEmailFieldsVisible:isEmailFieldsVisible,setBccEmails:setBccEmails,setCcEmails:setCcEmails,setIsEmailFieldsVisible:setIsEmailFieldsVisible,setToEmails:setToEmails,shouldShowEmailFields:shouldShowEmailFields,toEmails:toEmails,__self:_this,__source:{fileName:_jsxFileName,lineNumber:244,columnNumber:11}}),_react.default.createElement(_.Container,{flexDirection:"row",justifyContent:"space-between",__self:_this,__source:{fileName:_jsxFileName,lineNumber:255,columnNumber:11}},_react.default.createElement(TextInput,(0,_extends2.default)({multiline:true,flex:1,placeholder:placeholders[selectedOption],py:(0,_reactNativeSizeMatters.moderateScale)(12),ref:inputRef,value:value,onChangeText:onChangeText,onTouchStart:hideEmailFieldsAndAttachments},rest,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:256,columnNumber:13}})),_react.default.createElement(_.Container,{alignSelf:"center",__self:_this,__source:{fileName:_jsxFileName,lineNumber:267,columnNumber:13}},shouldExpandAndMinimizeButton&&(isEmailFieldsVisible||isAttachmentsVisible?_react.default.createElement(_IconButton.IconButton,{Icon:_minimize.default,height:(0,_reactNativeSizeMatters.moderateScale)(30),pt:(0,_reactNativeSizeMatters.moderateScale)(8),width:(0,_reactNativeSizeMatters.moderateScale)(30),onPress:hideEmailFieldsAndAttachments,__self:_this,__source:{fileName:_jsxFileName,lineNumber:270,columnNumber:19}}):_react.default.createElement(_IconButton.IconButton,{Icon:_expand.default,height:(0,_reactNativeSizeMatters.moderateScale)(30),pt:(0,_reactNativeSizeMatters.moderateScale)(8),width:(0,_reactNativeSizeMatters.moderateScale)(30),onPress:showEmailFieldsAndAttachments,__self:_this,__source:{fileName:_jsxFileName,lineNumber:278,columnNumber:19}})))),_react.default.createElement(_AttachmentsView.AttachmentsView,{Attachments:Attachments,attachmentsCount:attachmentsCount,isAttachmentsVisible:isAttachmentsVisible,isNoteOptionSelected:isNoteOptionSelected,setIsAttachmentsVisible:setIsAttachmentsVisible,__self:_this,__source:{fileName:_jsxFileName,lineNumber:288,columnNumber:11}}),_react.default.createElement(_.Container,{alignItems:"center",flexDirection:"row",justifyContent:"space-between",mt:(0,_reactNativeSizeMatters.moderateScale)(10),__self:_this,__source:{fileName:_jsxFileName,lineNumber:295,columnNumber:11}},_react.default.createElement(_.Container,{flexDirection:"row",justifyContent:"space-between",__self:_this,__source:{fileName:_jsxFileName,lineNumber:301,columnNumber:13}},_react.default.createElement(_IconButton.IconButton,{Icon:_reply.default,opacity:isReplyOptionSelected?1:0.5,pl:(0,_reactNativeSizeMatters.moderateScale)(10),onPress:onReplyClickHandler,__self:_this,__source:{fileName:_jsxFileName,lineNumber:302,columnNumber:15}}),_react.default.createElement(_IconButton.IconButton,{Icon:_note.default,opacity:isNoteOptionSelected?1:0.5,onPress:onAddNoteClickHandler,__self:_this,__source:{fileName:_jsxFileName,lineNumber:308,columnNumber:15}}),onForward&&_react.default.createElement(_IconButton.IconButton,{Icon:_forward.default,opacity:isForwardOptionSelected?1:0.5,onPress:onAddForwardClickHandler,__self:_this,__source:{fileName:_jsxFileName,lineNumber:314,columnNumber:17}}),_react.default.createElement(_.Container,{bg:"background.grey400",mx:(0,_reactNativeSizeMatters.moderateScale)(5),p:(0,_reactNativeSizeMatters.moderateScale)(0.4),__self:_this,__source:{fileName:_jsxFileName,lineNumber:320,columnNumber:15}}),onCannedResponse&&showCannedResponsesFor.includes(selectedOption)&&_react.default.createElement(_IconButton.IconButton,{Icon:_cannedResponse.default,opacity:0.5,onPress:onCannedResponse,__self:_this,__source:{fileName:_jsxFileName,lineNumber:327,columnNumber:19}}),_react.default.createElement(_IconButton.IconButton,{Icon:_attachment.default,opacity:0.5,onPress:onAddAttachmentsClickHandler,__self:_this,__source:{fileName:_jsxFileName,lineNumber:333,columnNumber:15}})),_react.default.createElement(_.Button,{disabled:disabled,height:(0,_reactNativeSizeMatters.moderateScale)(30),label:labels[selectedOption],pr:0,variant:"text",labelStyle:{mx:(0,_reactNativeSizeMatters.moderateScale)(0)},onPress:onActionHandler,__self:_this,__source:{fileName:_jsxFileName,lineNumber:339,columnNumber:13}})))));};exports.ChatInput=ChatInput;ChatInput.propTypes={isLoading:_propTypes.default.bool,shouldShowEmailFields:_propTypes.default.bool,value:_propTypes.default.string,initialSelectedOption:_propTypes.default.oneOf(Object.values(OPTION_TYPES)),onOptionChange:_propTypes.default.func,onChangeText:_propTypes.default.func,onForward:_propTypes.default.func,onCannedResponse:_propTypes.default.func,toEmails:_propTypes.default.string,onReply:_propTypes.default.func,onAddNote:_propTypes.default.func,onAttachment:_propTypes.default.func,attachmentsCount:_propTypes.default.number,Attachments:_propTypes.default.any,showCannedResponsesFor:_propTypes.default.arrayOf(_propTypes.default.string),disabled:_propTypes.default.bool};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.EmailFields=void 0;var _react=_interopRequireDefault(require("react"));var _propTypes=_interopRequireDefault(require("prop-types"));var _reactNativeReanimated=_interopRequireWildcard(require("react-native-reanimated"));var _reactNativeSizeMatters=require("react-native-size-matters");var _2=require("./..");var _Badge=require("./Badge");var _this=this,_jsxFileName="/home/runner/work/neeto-ui-rn/neeto-ui-rn/src/components/ChatInput/EmailFields.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 EmailFields=function EmailFields(_ref){var _;var shouldShowEmailFields=_ref.shouldShowEmailFields,setIsEmailFieldsVisible=_ref.setIsEmailFieldsVisible,isEmailFieldsVisible=_ref.isEmailFieldsVisible,ccEmails=_ref.ccEmails,toEmails=_ref.toEmails,bccEmails=_ref.bccEmails,setBccEmails=_ref.setBccEmails,setCcEmails=_ref.setCcEmails,setToEmails=_ref.setToEmails;var firstToEmail=(_=(toEmails.trim()?toEmails.split(","):[])[0])!=null?_:"";var totalEmailsMinus1=(toEmails.trim()?toEmails.split(","):[]).length+(ccEmails.trim()?ccEmails.split(","):[]).length+(bccEmails.trim()?bccEmails.split(","):[]).length-1;if(!shouldShowEmailFields)return null;return isEmailFieldsVisible?_react.default.createElement(_reactNativeReanimated.default.View,{entering:_reactNativeReanimated.FadeInDown,key:isEmailFieldsVisible,pb:(0,_reactNativeSizeMatters.moderateScale)(10),__self:_this,__source:{fileName:_jsxFileName,lineNumber:33,columnNumber:5}},_react.default.createElement(_2.InputEmailChip,{disabled:false,emails:toEmails.trim()?toEmails.split(","):[],label:"To:",onUpdate:function onUpdate(emails){setToEmails(emails.join(","));},__self:_this,__source:{fileName:_jsxFileName,lineNumber:38,columnNumber:7}}),_react.default.createElement(_2.InputEmailChip,{disabled:false,emails:ccEmails.trim()?ccEmails.split(","):[],label:"Cc:",onUpdate:function onUpdate(emails){setCcEmails(emails.join(","));},__self:_this,__source:{fileName:_jsxFileName,lineNumber:46,columnNumber:7}}),_react.default.createElement(_2.InputEmailChip,{disabled:false,emails:bccEmails.trim()?bccEmails.split(","):[],label:"Bcc:",onUpdate:function onUpdate(emails){setBccEmails(emails.join(","));},__self:_this,__source:{fileName:_jsxFileName,lineNumber:54,columnNumber:7}})):_react.default.createElement(_reactNativeReanimated.default.View,{alignItems:"flex-start",entering:_reactNativeReanimated.FadeInUp,flexDirection:"row",flexWrap:"wrap",key:isEmailFieldsVisible,onTouchStart:function onTouchStart(){return setIsEmailFieldsVisible(true);},__self:_this,__source:{fileName:_jsxFileName,lineNumber:64,columnNumber:5}},toEmails.length>0&&_react.default.createElement(_react.default.Fragment,null,_react.default.createElement(_Badge.Badge,{text:"To "+firstToEmail,__self:_this,__source:{fileName:_jsxFileName,lineNumber:74,columnNumber:11}}),totalEmailsMinus1>1&&_react.default.createElement(_Badge.Badge,{text:"+ "+totalEmailsMinus1,__self:_this,__source:{fileName:_jsxFileName,lineNumber:75,columnNumber:37}})));};exports.EmailFields=EmailFields;EmailFields.propTypes={shouldShowEmailFields:_propTypes.default.bool,isEmailFieldsVisible:_propTypes.default.bool,setIsEmailFieldsVisible:_propTypes.default.func,ccEmails:_propTypes.default.string,toEmails:_propTypes.default.string,bccEmails:_propTypes.default.string,setBccEmails:_propTypes.default.func,setCcEmails:_propTypes.default.func,setToEmails:_propTypes.default.func};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.IconButton=void 0;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _react=_interopRequireDefault(require("react"));var _propTypes=_interopRequireDefault(require("prop-types"));var _reactNativeSizeMatters=require("react-native-size-matters");var _=require("./..");var _excluded=["Icon"];var _this=this,_jsxFileName="/home/runner/work/neeto-ui-rn/neeto-ui-rn/src/components/ChatInput/IconButton.jsx";var IconButton=function IconButton(_ref){var Icon=_ref.Icon,rest=(0,_objectWithoutProperties2.default)(_ref,_excluded);return _react.default.createElement(_.Touchable,(0,_extends2.default)({alignItems:"center",height:(0,_reactNativeSizeMatters.moderateScale)(22),px:(0,_reactNativeSizeMatters.moderateScale)(18),width:(0,_reactNativeSizeMatters.moderateScale)(22)},rest,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:9,columnNumber:3}}),_react.default.createElement(Icon,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:16,columnNumber:6}}));};exports.IconButton=IconButton;IconButton.propTypes={Icon:_propTypes.default.elementType};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.InputEmailChip=void 0;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _toConsumableArray2=_interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _react=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _propTypes=_interopRequireDefault(require("prop-types"));var _reactNativeSizeMatters=require("react-native-size-matters");var _native=require("styled-components/native");var _=require("./");var _utils=require("../utils/utils");var _this=this,_jsxFileName="/home/runner/work/neeto-ui-rn/neeto-ui-rn/src/components/InputEmailChip.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 gap=(0,_reactNativeSizeMatters.moderateScale)(4);var chipWrapperStyle={pt:gap};var getChipContainerStyle=function getChipContainerStyle(isReadyForDeletion){return{borderColor:isReadyForDeletion?"border.danger":"border.grey200"};};var InputEmailChip=function InputEmailChip(_ref){var disabled=_ref.disabled,label=_ref.label,_ref$emails=_ref.emails,emails=_ref$emails===void 0?[]:_ref$emails,onUpdate=_ref.onUpdate,_ref$delimiters=_ref.delimiters,delimiters=_ref$delimiters===void 0?[" ",","]:_ref$delimiters;var theme=(0,_react.useContext)(_native.ThemeContext);var inputRef=(0,_react.useRef)();var _useState=(0,_react.useState)(""),_useState2=(0,_slicedToArray2.default)(_useState,2),textValue=_useState2[0],setTextValue=_useState2[1];var _useState3=(0,_react.useState)(false),_useState4=(0,_slicedToArray2.default)(_useState3,2),shouldShowInput=_useState4[0],setShouldShowInput=_useState4[1];var _useState5=(0,_react.useState)(-1),_useState6=(0,_slicedToArray2.default)(_useState5,2),emailIndexForDeletion=_useState6[0],setEmailIndexForDeletion=_useState6[1];var handleKeyPress=function handleKeyPress(event){var _ref2=event.nativeEvent||{},key=_ref2.key;if(!(textValue===""&&key==="Backspace"&&emails.length>0))return;if(emailIndexForDeletion===-1){setEmailIndexForDeletion(emails.length-1);}else{removeEmail({lastOne:true});setEmailIndexForDeletion(-1);}};var handleSubmitEditing=function handleSubmitEditing(event){var _ref3=event.nativeEvent||{},text=_ref3.text;setEmailIndexForDeletion(-1);checkAndUpdateEmails(text);};var handleTextChange=function handleTextChange(text){if(!(0,_utils.endsWithChars)(text,delimiters)){setEmailIndexForDeletion(-1);setTextValue(text);return;}checkAndUpdateEmails(text);};var handleInputTouchStart=function handleInputTouchStart(){return setEmailIndexForDeletion(-1);};var handleTouchStart=function handleTouchStart(){var _inputRef$current;if(!((_inputRef$current=inputRef.current)!=null&&_inputRef$current.isFocused())){var _inputRef$current2;(_inputRef$current2=inputRef.current)==null?void 0:_inputRef$current2.focus();}};var handleOnFocus=function handleOnFocus(){return setShouldShowInput(true);};var handleOnBlur=function handleOnBlur(){if(textValue.trim()===""){setShouldShowInput(false);}};var handleOnEndEditing=function handleOnEndEditing(event){checkAndUpdateEmails(event.nativeEvent.text);};var checkAndUpdateEmails=function checkAndUpdateEmails(text){var emailCandidate=(0,_utils.trimChars)(text,delimiters);if(emailCandidate!==""&&(0,_utils.isValidEmail)(emailCandidate)&&!emails.includes(emailCandidate)){var _emails=[].concat((0,_toConsumableArray2.default)(emails),[emailCandidate]);setTextValue("");onUpdate&&onUpdate(_emails);}else{setTextValue(text);}};var removeEmail=function removeEmail(_ref4){var email=_ref4.email,_ref4$lastOne=_ref4.lastOne,lastOne=_ref4$lastOne===void 0?false:_ref4$lastOne;var indexOfEmail=lastOne?emails.length-1:emails.indexOf(email);if(indexOfEmail!==-1){var _emails=(0,_toConsumableArray2.default)(emails);_emails.splice(indexOfEmail,1);onUpdate&&onUpdate(_emails);}};var inputProps={autoCorrect:false,fontSize:"xs",returnKeyType:"done",autoCapitalize:"none",keyboardType:"email-address",padding:0,minHeight:(0,_reactNativeSizeMatters.moderateScale)(26),selectionColor:emailIndexForDeletion===-1?theme.colors.font.base:"transparent"};return _react.default.createElement(_.Container,{flexDirection:"row",minHeight:(0,_reactNativeSizeMatters.moderateScale)(30),py:(0,_reactNativeSizeMatters.moderateScale)(2),width:"100%",__self:_this,__source:{fileName:_jsxFileName,lineNumber:
|
|
1
|
+
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.InputEmailChip=void 0;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _toConsumableArray2=_interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _react=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _propTypes=_interopRequireDefault(require("prop-types"));var _reactNativeSizeMatters=require("react-native-size-matters");var _native=require("styled-components/native");var _=require("./");var _utils=require("../utils/utils");var _excluded=["disabled","label","emails","onUpdate","delimiters"];var _this=this,_jsxFileName="/home/runner/work/neeto-ui-rn/neeto-ui-rn/src/components/InputEmailChip.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 gap=(0,_reactNativeSizeMatters.moderateScale)(4);var chipWrapperStyle={pt:gap};var getChipContainerStyle=function getChipContainerStyle(isReadyForDeletion){return{borderColor:isReadyForDeletion?"border.danger":"border.grey200"};};var InputEmailChip=function InputEmailChip(_ref){var disabled=_ref.disabled,label=_ref.label,_ref$emails=_ref.emails,emails=_ref$emails===void 0?[]:_ref$emails,onUpdate=_ref.onUpdate,_ref$delimiters=_ref.delimiters,delimiters=_ref$delimiters===void 0?[" ",","]:_ref$delimiters,rest=(0,_objectWithoutProperties2.default)(_ref,_excluded);var theme=(0,_react.useContext)(_native.ThemeContext);var inputRef=(0,_react.useRef)();var _useState=(0,_react.useState)(""),_useState2=(0,_slicedToArray2.default)(_useState,2),textValue=_useState2[0],setTextValue=_useState2[1];var _useState3=(0,_react.useState)(false),_useState4=(0,_slicedToArray2.default)(_useState3,2),shouldShowInput=_useState4[0],setShouldShowInput=_useState4[1];var _useState5=(0,_react.useState)(-1),_useState6=(0,_slicedToArray2.default)(_useState5,2),emailIndexForDeletion=_useState6[0],setEmailIndexForDeletion=_useState6[1];var handleKeyPress=function handleKeyPress(event){var _ref2=event.nativeEvent||{},key=_ref2.key;if(!(textValue===""&&key==="Backspace"&&emails.length>0))return;if(emailIndexForDeletion===-1){setEmailIndexForDeletion(emails.length-1);}else{removeEmail({lastOne:true});setEmailIndexForDeletion(-1);}};var handleSubmitEditing=function handleSubmitEditing(event){var _ref3=event.nativeEvent||{},text=_ref3.text;setEmailIndexForDeletion(-1);checkAndUpdateEmails(text);};var handleTextChange=function handleTextChange(text){if(!(0,_utils.endsWithChars)(text,delimiters)){setEmailIndexForDeletion(-1);setTextValue(text);return;}checkAndUpdateEmails(text);};var handleInputTouchStart=function handleInputTouchStart(){return setEmailIndexForDeletion(-1);};var handleTouchStart=function handleTouchStart(){var _inputRef$current;if(!((_inputRef$current=inputRef.current)!=null&&_inputRef$current.isFocused())){var _inputRef$current2;(_inputRef$current2=inputRef.current)==null?void 0:_inputRef$current2.focus();}};var handleOnFocus=function handleOnFocus(){return setShouldShowInput(true);};var handleOnBlur=function handleOnBlur(){if(textValue.trim()===""){setShouldShowInput(false);}};var handleOnEndEditing=function handleOnEndEditing(event){checkAndUpdateEmails(event.nativeEvent.text);};var checkAndUpdateEmails=function checkAndUpdateEmails(text){var emailCandidate=(0,_utils.trimChars)(text,delimiters);if(emailCandidate!==""&&(0,_utils.isValidEmail)(emailCandidate)&&!emails.includes(emailCandidate)){var _emails=[].concat((0,_toConsumableArray2.default)(emails),[emailCandidate]);setTextValue("");onUpdate&&onUpdate(_emails);}else{setTextValue(text);}};var removeEmail=function removeEmail(_ref4){var email=_ref4.email,_ref4$lastOne=_ref4.lastOne,lastOne=_ref4$lastOne===void 0?false:_ref4$lastOne;var indexOfEmail=lastOne?emails.length-1:emails.indexOf(email);if(indexOfEmail!==-1){var _emails=(0,_toConsumableArray2.default)(emails);_emails.splice(indexOfEmail,1);onUpdate&&onUpdate(_emails);}};var inputProps={autoCorrect:false,fontSize:"xs",returnKeyType:"done",autoCapitalize:"none",keyboardType:"email-address",padding:0,minHeight:(0,_reactNativeSizeMatters.moderateScale)(26),selectionColor:emailIndexForDeletion===-1?theme.colors.font.base:"transparent"};return _react.default.createElement(_.Container,(0,_extends2.default)({flexDirection:"row",minHeight:(0,_reactNativeSizeMatters.moderateScale)(30),py:(0,_reactNativeSizeMatters.moderateScale)(2),width:"100%"},rest,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:126,columnNumber:5}}),!!label&&_react.default.createElement(_.Typography,{color:disabled?"font.grey400":"font.grey600",fontSize:"xs",textAlign:"left",width:(0,_reactNativeSizeMatters.moderateScale)(40),mt:_reactNative.Platform.select({android:(0,_reactNativeSizeMatters.moderateScale)(10),ios:(0,_reactNativeSizeMatters.moderateScale)(8)}),__self:_this,__source:{fileName:_jsxFileName,lineNumber:134,columnNumber:9}},label),_react.default.createElement(_.Container,{alignItems:"center",flex:1,flexDirection:"row",flexWrap:"wrap",__self:_this,__source:{fileName:_jsxFileName,lineNumber:147,columnNumber:7}},emails.map(function(email,index){return _react.default.createElement(_.Container,(0,_extends2.default)({key:email},chipWrapperStyle,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:154,columnNumber:11}}),_react.default.createElement(_.Chip,{isDisabled:disabled,label:email,containerStyle:(0,_extends2.default)({},getChipContainerStyle(index===emailIndexForDeletion),{height:(0,_reactNativeSizeMatters.moderateScale)(25)}),onClose:disabled?null:function(){return removeEmail({email:email});},__self:_this,__source:{fileName:_jsxFileName,lineNumber:155,columnNumber:13}}));}),!disabled&&_react.default.createElement(_.Container,(0,_extends2.default)({alignItems:"center",flex:1,justifyContent:"center",minWidth:(0,_reactNativeSizeMatters.moderateScale)(160),paddingTop:_reactNative.Platform.select({ios:gap,android:(0,_reactNativeSizeMatters.moderateScale)(7)})},shouldShowInput||emails.length===0?{}:{height:0},{__self:_this,__source:{fileName:_jsxFileName,lineNumber:167,columnNumber:11}}),_react.default.createElement(_.Input,{noBorder:true,disabled:disabled,value:textValue,containerProps:{borderRadius:0},inputProps:(0,_extends2.default)({},inputProps,{ref:inputRef,onKeyPress:handleKeyPress,onSubmitEditing:handleSubmitEditing,onTouchStart:handleInputTouchStart,onFocus:handleOnFocus,onBlur:handleOnBlur,onEndEditing:handleOnEndEditing,borderBottomWidth:(0,_reactNativeSizeMatters.moderateScale)(2),borderColor:"background.grey200"}),onChangeText:handleTextChange,__self:_this,__source:{fileName:_jsxFileName,lineNumber:178,columnNumber:13}}))),!disabled&&_react.default.createElement(_reactNative.TextInput,{editable:false,pointerEvents:shouldShowInput?"box-none":"auto",style:styles.touchableTextInputWrapper,onTouchStart:handleTouchStart,__self:_this,__source:{fileName:_jsxFileName,lineNumber:203,columnNumber:9}}));};exports.InputEmailChip=InputEmailChip;var styles=_reactNative.StyleSheet.create({touchableTextInputWrapper:{position:"absolute",top:0,bottom:0,left:0,right:0}});InputEmailChip.propTypes={disabled:_propTypes.default.bool,label:_propTypes.default.string,emails:_propTypes.default.arrayOf(_propTypes.default.string),delimiters:_propTypes.default.arrayOf(_propTypes.default.string),onUpdate:_propTypes.default.func};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.LineLoader=void 0;var _react=_interopRequireDefault(require("react"));var _propTypes=_interopRequireDefault(require("prop-types"));var _native=_interopRequireWildcard(require("react-content-loader/native"));var _reactNativeSizeMatters=require("react-native-size-matters");var _theme=require("../theme");var _this=this,_jsxFileName="/home/runner/work/neeto-ui-rn/neeto-ui-rn/src/components/LineLoader.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 LineLoader=function LineLoader(_ref){var isLoading=_ref.isLoading,_ref$backgroundColor=_ref.backgroundColor,backgroundColor=_ref$backgroundColor===void 0?_theme.theme.colors.background.primary:_ref$backgroundColor,_ref$foregroundColor=_ref.foregroundColor,foregroundColor=_ref$foregroundColor===void 0?_theme.theme.colors.background.base:_ref$foregroundColor,_ref$height=_ref.height,height=_ref$height===void 0?(0,_reactNativeSizeMatters.moderateScale)(1.5):_ref$height;return _react.default.createElement(_native.default,{animate:isLoading,backgroundColor:backgroundColor,foregroundColor:foregroundColor,height:height,interval:0,key:isLoading,speed:1,width:"100%",__self:_this,__source:{fileName:_jsxFileName,lineNumber:15,columnNumber:3}},_react.default.createElement(_native.Rect,{height:height,width:"100%",x:0,y:0,__self:_this,__source:{fileName:_jsxFileName,lineNumber:25,columnNumber:5}}));};exports.LineLoader=LineLoader;LineLoader.propTypes={isLoading:_propTypes.default.bool,backgroundColor:_propTypes.default.string,foregroundColor:_propTypes.default.string,height:_propTypes.default.number};
|
package/lib/components/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Accordion",{enumerable:true,get:function get(){return _Accordion.Accordion;}});Object.defineProperty(exports,"Alert",{enumerable:true,get:function get(){return _Alert.Alert;}});Object.defineProperty(exports,"AnimatedImage",{enumerable:true,get:function get(){return _AnimatedImage.AnimatedImage;}});Object.defineProperty(exports,"Avatar",{enumerable:true,get:function get(){return _Avatar.Avatar;}});Object.defineProperty(exports,"Badge",{enumerable:true,get:function get(){return _Badge.Badge;}});Object.defineProperty(exports,"BottomSheet",{enumerable:true,get:function get(){return _BottomSheet.BottomSheet;}});Object.defineProperty(exports,"BottomTabBar",{enumerable:true,get:function get(){return _BottomTabBar.BottomTabBar;}});Object.defineProperty(exports,"Button",{enumerable:true,get:function get(){return _Button.Button;}});Object.defineProperty(exports,"ButtonGroup",{enumerable:true,get:function get(){return _ButtonGroup.ButtonGroup;}});Object.defineProperty(exports,"Calendar",{enumerable:true,get:function get(){return _Calendar.Calendar;}});Object.defineProperty(exports,"Card",{enumerable:true,get:function get(){return _Card.Card;}});Object.defineProperty(exports,"Carousel",{enumerable:true,get:function get(){return _Carousel.Carousel;}});Object.defineProperty(exports,"CheckBox",{enumerable:true,get:function get(){return _CheckBox.CheckBox;}});Object.defineProperty(exports,"Chip",{enumerable:true,get:function get(){return _Chip.Chip;}});Object.defineProperty(exports,"Container",{enumerable:true,get:function get(){return _Container.Container;}});Object.defineProperty(exports,"Divider",{enumerable:true,get:function get(){return _Divider.Divider;}});Object.defineProperty(exports,"FAB",{enumerable:true,get:function get(){return _FAB.FAB;}});Object.defineProperty(exports,"FlashList",{enumerable:true,get:function get(){return _FlashList.FlashList;}});Object.defineProperty(exports,"FlatList",{enumerable:true,get:function get(){return _FlatList.FlatList;}});Object.defineProperty(exports,"Input",{enumerable:true,get:function get(){return _Input.Input;}});Object.defineProperty(exports,"InputEmailChip",{enumerable:true,get:function get(){return _InputEmailChip.InputEmailChip;}});Object.defineProperty(exports,"ListItem",{enumerable:true,get:function get(){return _ListItem.ListItem;}});Object.defineProperty(exports,"Loader",{enumerable:true,get:function get(){return _Loader.Loader;}});Object.defineProperty(exports,"MultiSelect",{enumerable:true,get:function get(){return _MultiSelect.MultiSelect;}});Object.defineProperty(exports,"NotificationPreferenceList",{enumerable:true,get:function get(){return _NotificationPreferenceList.NotificationPreferenceList;}});Object.defineProperty(exports,"OnBoarding",{enumerable:true,get:function get(){return _OnBoarding.OnBoarding;}});Object.defineProperty(exports,"OrganizationItem",{enumerable:true,get:function get(){return _OrganizationItem.OrganizationItem;}});Object.defineProperty(exports,"OtpInputs",{enumerable:true,get:function get(){return _OtpInputs.OtpInputs;}});Object.defineProperty(exports,"ParentView",{enumerable:true,get:function get(){return _ParentView.ParentView;}});Object.defineProperty(exports,"Popover",{enumerable:true,get:function get(){return _Popover.Popover;}});Object.defineProperty(exports,"RadioButton",{enumerable:true,get:function get(){return _RadioButton.RadioButton;}});Object.defineProperty(exports,"RichTextEditor",{enumerable:true,get:function get(){return _RichTextEditor.RichTextEditor;}});Object.defineProperty(exports,"ScrollView",{enumerable:true,get:function get(){return _ScrollView.ScrollView;}});Object.defineProperty(exports,"SearchBar",{enumerable:true,get:function get(){return _SearchBar.SearchBar;}});Object.defineProperty(exports,"SegmentedTopBar",{enumerable:true,get:function get(){return _SegmentedTopBar.SegmentedTopBar;}});Object.defineProperty(exports,"SocialButton",{enumerable:true,get:function get(){return _SocialButton.SocialButton;}});Object.defineProperty(exports,"Toast",{enumerable:true,get:function get(){return _Toast.Toast;}});Object.defineProperty(exports,"ToggleSwitch",{enumerable:true,get:function get(){return _ToggleSwitch.ToggleSwitch;}});Object.defineProperty(exports,"TopBar",{enumerable:true,get:function get(){return _TopBar.TopBar;}});Object.defineProperty(exports,"Touchable",{enumerable:true,get:function get(){return _Touchable.Touchable;}});Object.defineProperty(exports,"Typography",{enumerable:true,get:function get(){return _Typography.Typography;}});var _Button=require("./Button");var _SocialButton=require("./SocialButton");var _Container=require("./Container");var _Typography=require("./Typography");var _Input=require("./Input");var _FAB=require("./FAB");var _ToggleSwitch=require("./ToggleSwitch");var _Avatar=require("./Avatar");var _Badge=require("./Badge");var _Toast=require("./Toast");var _Alert=require("./Alert");var _BottomSheet=require("./BottomSheet");var _Chip=require("./Chip");var _ParentView=require("./ParentView");var _RichTextEditor=require("./RichTextEditor");var _ButtonGroup=require("./ButtonGroup");var _OtpInputs=require("./OtpInputs");var _Popover=require("./Popover");var _Touchable=require("./Touchable");var _Card=require("./Card");var _TopBar=require("./TopBar");var _RadioButton=require("./RadioButton");var _CheckBox=require("./CheckBox");var _MultiSelect=require("./MultiSelect");var _Divider=require("./Divider");var _FlatList=require("./FlatList");var _ScrollView=require("./ScrollView");var _SegmentedTopBar=require("./SegmentedTopBar");var _ListItem=require("./ListItem");var _Carousel=require("./Carousel");var _OnBoarding=require("./OnBoarding");var _SearchBar=require("./SearchBar");var _Accordion=require("./Accordion");var _Calendar=require("./Calendar");var _FlashList=require("./FlashList");var _BottomTabBar=require("./BottomTabBar");var _AnimatedImage=require("./AnimatedImage");var _NotificationPreferenceList=require("./NotificationPreferenceList");var _OrganizationItem=require("./OrganizationItem");var _Loader=require("./Loader");var _InputEmailChip=require("./InputEmailChip");
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Accordion",{enumerable:true,get:function get(){return _Accordion.Accordion;}});Object.defineProperty(exports,"Alert",{enumerable:true,get:function get(){return _Alert.Alert;}});Object.defineProperty(exports,"AnimatedImage",{enumerable:true,get:function get(){return _AnimatedImage.AnimatedImage;}});Object.defineProperty(exports,"Avatar",{enumerable:true,get:function get(){return _Avatar.Avatar;}});Object.defineProperty(exports,"Badge",{enumerable:true,get:function get(){return _Badge.Badge;}});Object.defineProperty(exports,"BottomSheet",{enumerable:true,get:function get(){return _BottomSheet.BottomSheet;}});Object.defineProperty(exports,"BottomTabBar",{enumerable:true,get:function get(){return _BottomTabBar.BottomTabBar;}});Object.defineProperty(exports,"Button",{enumerable:true,get:function get(){return _Button.Button;}});Object.defineProperty(exports,"ButtonGroup",{enumerable:true,get:function get(){return _ButtonGroup.ButtonGroup;}});Object.defineProperty(exports,"Calendar",{enumerable:true,get:function get(){return _Calendar.Calendar;}});Object.defineProperty(exports,"Card",{enumerable:true,get:function get(){return _Card.Card;}});Object.defineProperty(exports,"Carousel",{enumerable:true,get:function get(){return _Carousel.Carousel;}});Object.defineProperty(exports,"ChatInput",{enumerable:true,get:function get(){return _ChatInput.ChatInput;}});Object.defineProperty(exports,"CheckBox",{enumerable:true,get:function get(){return _CheckBox.CheckBox;}});Object.defineProperty(exports,"Chip",{enumerable:true,get:function get(){return _Chip.Chip;}});Object.defineProperty(exports,"Container",{enumerable:true,get:function get(){return _Container.Container;}});Object.defineProperty(exports,"Divider",{enumerable:true,get:function get(){return _Divider.Divider;}});Object.defineProperty(exports,"FAB",{enumerable:true,get:function get(){return _FAB.FAB;}});Object.defineProperty(exports,"FlashList",{enumerable:true,get:function get(){return _FlashList.FlashList;}});Object.defineProperty(exports,"FlatList",{enumerable:true,get:function get(){return _FlatList.FlatList;}});Object.defineProperty(exports,"Input",{enumerable:true,get:function get(){return _Input.Input;}});Object.defineProperty(exports,"InputEmailChip",{enumerable:true,get:function get(){return _InputEmailChip.InputEmailChip;}});Object.defineProperty(exports,"LineLoader",{enumerable:true,get:function get(){return _LineLoader.LineLoader;}});Object.defineProperty(exports,"ListItem",{enumerable:true,get:function get(){return _ListItem.ListItem;}});Object.defineProperty(exports,"Loader",{enumerable:true,get:function get(){return _Loader.Loader;}});Object.defineProperty(exports,"MultiSelect",{enumerable:true,get:function get(){return _MultiSelect.MultiSelect;}});Object.defineProperty(exports,"NotificationPreferenceList",{enumerable:true,get:function get(){return _NotificationPreferenceList.NotificationPreferenceList;}});Object.defineProperty(exports,"OnBoarding",{enumerable:true,get:function get(){return _OnBoarding.OnBoarding;}});Object.defineProperty(exports,"OrganizationItem",{enumerable:true,get:function get(){return _OrganizationItem.OrganizationItem;}});Object.defineProperty(exports,"OtpInputs",{enumerable:true,get:function get(){return _OtpInputs.OtpInputs;}});Object.defineProperty(exports,"ParentView",{enumerable:true,get:function get(){return _ParentView.ParentView;}});Object.defineProperty(exports,"Popover",{enumerable:true,get:function get(){return _Popover.Popover;}});Object.defineProperty(exports,"RadioButton",{enumerable:true,get:function get(){return _RadioButton.RadioButton;}});Object.defineProperty(exports,"RichTextEditor",{enumerable:true,get:function get(){return _RichTextEditor.RichTextEditor;}});Object.defineProperty(exports,"ScrollView",{enumerable:true,get:function get(){return _ScrollView.ScrollView;}});Object.defineProperty(exports,"SearchBar",{enumerable:true,get:function get(){return _SearchBar.SearchBar;}});Object.defineProperty(exports,"SegmentedTopBar",{enumerable:true,get:function get(){return _SegmentedTopBar.SegmentedTopBar;}});Object.defineProperty(exports,"SocialButton",{enumerable:true,get:function get(){return _SocialButton.SocialButton;}});Object.defineProperty(exports,"Toast",{enumerable:true,get:function get(){return _Toast.Toast;}});Object.defineProperty(exports,"ToggleSwitch",{enumerable:true,get:function get(){return _ToggleSwitch.ToggleSwitch;}});Object.defineProperty(exports,"TopBar",{enumerable:true,get:function get(){return _TopBar.TopBar;}});Object.defineProperty(exports,"Touchable",{enumerable:true,get:function get(){return _Touchable.Touchable;}});Object.defineProperty(exports,"Typography",{enumerable:true,get:function get(){return _Typography.Typography;}});var _Button=require("./Button");var _SocialButton=require("./SocialButton");var _Container=require("./Container");var _Typography=require("./Typography");var _Input=require("./Input");var _FAB=require("./FAB");var _ToggleSwitch=require("./ToggleSwitch");var _Avatar=require("./Avatar");var _Badge=require("./Badge");var _Toast=require("./Toast");var _Alert=require("./Alert");var _BottomSheet=require("./BottomSheet");var _Chip=require("./Chip");var _ParentView=require("./ParentView");var _RichTextEditor=require("./RichTextEditor");var _ButtonGroup=require("./ButtonGroup");var _OtpInputs=require("./OtpInputs");var _Popover=require("./Popover");var _Touchable=require("./Touchable");var _Card=require("./Card");var _TopBar=require("./TopBar");var _RadioButton=require("./RadioButton");var _CheckBox=require("./CheckBox");var _MultiSelect=require("./MultiSelect");var _Divider=require("./Divider");var _FlatList=require("./FlatList");var _ScrollView=require("./ScrollView");var _SegmentedTopBar=require("./SegmentedTopBar");var _ListItem=require("./ListItem");var _Carousel=require("./Carousel");var _OnBoarding=require("./OnBoarding");var _SearchBar=require("./SearchBar");var _Accordion=require("./Accordion");var _Calendar=require("./Calendar");var _FlashList=require("./FlashList");var _BottomTabBar=require("./BottomTabBar");var _AnimatedImage=require("./AnimatedImage");var _NotificationPreferenceList=require("./NotificationPreferenceList");var _OrganizationItem=require("./OrganizationItem");var _ChatInput=require("./ChatInput/ChatInput");var _Loader=require("./Loader");var _InputEmailChip=require("./InputEmailChip");var _LineLoader=require("./LineLoader");
|
package/lib/theme/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.theme=void 0;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _reactNativeSizeMatters=require("react-native-size-matters");var defaultColors={white:"#ffffff",base:"#4557F8",danger:"#D95D4E",menubackground:"#F6F6FA"};var toastBorderColors={success:"#00BA88",error:"#F56A58",info:"#276EF1",warning:"#F3CD82"};var greyVariants={grey:"#828282",grey100:"#f8f9f9",grey200:"#e9ebed",grey300:"#d8dcde",grey400:"#c2c8cc",grey500:"#87929d",grey600:"#68737d",grey700:"#49545C",grey800:"#2f3941"};var darkBlueVariant={darkBlue100:"#0B4885"};var lightBlueVariants={lightBlue100:"#EAF3FC",lightBlue400:"#4558F9"};var purpleVariants={purple100:"#F2F4FF",purple200:"#ECF4FF",purple500:"#4557F8",purple700:"#342DF4"};var greenVariants={green500:"#34C759",green600:"#33C8A0",green700:"#00BA88",green800:"#00956D"};var colors={font:(0,_extends2.default)({primary:"#2F3941",secondary:"#49545C"},defaultColors,greyVariants,lightBlueVariants,darkBlueVariant,purpleVariants,greenVariants),background:(0,_extends2.default)({parentView:"#ffffff",primary:"#ffffff",secondary:"#F6F6FA"},defaultColors,greyVariants,lightBlueVariants,darkBlueVariant,purpleVariants,greenVariants),border:(0,_extends2.default)({primary:"#E9EBED",secondary:"#C2C8CC"},greyVariants,lightBlueVariants,darkBlueVariant,defaultColors,purpleVariants),toast:(0,_extends2.default)({},toastBorderColors)};var baseTheme={colors:colors,fonts:{sf400:"SFProText-Regular",sf500:"SFProText-Medium",sf600:"SFProText-Semibold",sf700:"SFProText-Bold"},lineHeights:[24],fontSizes:{"4xs":(0,_reactNativeSizeMatters.moderateScale)(10),"3xs":(0,_reactNativeSizeMatters.moderateScale)(11),"2xs":(0,_reactNativeSizeMatters.moderateScale)(12),xs:(0,_reactNativeSizeMatters.moderateScale)(13),s:(0,_reactNativeSizeMatters.moderateScale)(14),m:(0,_reactNativeSizeMatters.moderateScale)(15),l:(0,_reactNativeSizeMatters.moderateScale)(16),xl:(0,_reactNativeSizeMatters.moderateScale)(17),"2xl":(0,_reactNativeSizeMatters.moderateScale)(18),"3xl":(0,_reactNativeSizeMatters.moderateScale)(20),"4xl":(0,_reactNativeSizeMatters.moderateScale)(22),"5xl":(0,_reactNativeSizeMatters.moderateScale)(30)},space:new Array(100).fill(0).map(function(_,index){return index+1;})};baseTheme.lineHeights.note=baseTheme.lineHeights[0]+"px";var theme=(0,_extends2.default)({},baseTheme,{textStyles:{defaultTextStyle:{color:baseTheme.colors.font.grey800,fontSize:baseTheme.fontSizes.s,fontFamily:baseTheme.fonts.sf400},header:{color:baseTheme.colors.font.primary,fontSize:baseTheme.fontSizes["3xl"],fontFamily:baseTheme.fonts.sf600},modalHeader:{color:baseTheme.colors.font.primary,fontSize:baseTheme.fontSizes["xl"],fontFamily:baseTheme.fonts.sf600},body:{color:baseTheme.colors.font.grey500,fontSize:baseTheme.fontSizes.s},subtext:{color:baseTheme.colors.font.primary,fontSize:baseTheme.fontSizes["2xs"]},solid:{color:baseTheme.colors.font.white},inverse:{color:baseTheme.colors.font.base},text:{color:baseTheme.colors.font.base}},buttons:{solid:{border:2,borderColor:baseTheme.colors.background.base,backgroundColor:baseTheme.colors.background.base},inverse:{border:2,borderColor:baseTheme.colors.border.base,backgroundColor:baseTheme.colors.background.white},text:{color:baseTheme.colors.font.grey800,backgroundColor:baseTheme.colors.background.white}}});exports.theme=theme;
|
|
1
|
+
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.theme=void 0;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _reactNativeSizeMatters=require("react-native-size-matters");var defaultColors={white:"#ffffff",base:"#4557F8",danger:"#D95D4E",menubackground:"#F6F6FA"};var toastBorderColors={success:"#00BA88",error:"#F56A58",info:"#276EF1",warning:"#F3CD82"};var greyVariants={grey:"#828282",grey100:"#f8f9f9",grey200:"#e9ebed",grey300:"#d8dcde",grey400:"#c2c8cc",grey500:"#87929d",grey600:"#68737d",grey700:"#49545C",grey800:"#2f3941"};var darkBlueVariant={darkBlue100:"#0B4885"};var lightBlueVariants={lightBlue100:"#EAF3FC",lightBlue400:"#4558F9"};var purpleVariants={purple100:"#F2F4FF",purple200:"#ECF4FF",purple500:"#4557F8",purple700:"#342DF4"};var greenVariants={green500:"#34C759",green600:"#33C8A0",green700:"#00BA88",green800:"#00956D"};var colors={font:(0,_extends2.default)({primary:"#2F3941",secondary:"#49545C"},defaultColors,greyVariants,lightBlueVariants,darkBlueVariant,purpleVariants,greenVariants),background:(0,_extends2.default)({parentView:"#ffffff",primary:"#ffffff",secondary:"#F6F6FA",oldLace:"#FDF6E5"},defaultColors,greyVariants,lightBlueVariants,darkBlueVariant,purpleVariants,greenVariants),border:(0,_extends2.default)({primary:"#E9EBED",secondary:"#C2C8CC"},greyVariants,lightBlueVariants,darkBlueVariant,defaultColors,purpleVariants),toast:(0,_extends2.default)({},toastBorderColors)};var baseTheme={colors:colors,fonts:{sf400:"SFProText-Regular",sf500:"SFProText-Medium",sf600:"SFProText-Semibold",sf700:"SFProText-Bold"},lineHeights:[24],fontSizes:{"4xs":(0,_reactNativeSizeMatters.moderateScale)(10),"3xs":(0,_reactNativeSizeMatters.moderateScale)(11),"2xs":(0,_reactNativeSizeMatters.moderateScale)(12),xs:(0,_reactNativeSizeMatters.moderateScale)(13),s:(0,_reactNativeSizeMatters.moderateScale)(14),m:(0,_reactNativeSizeMatters.moderateScale)(15),l:(0,_reactNativeSizeMatters.moderateScale)(16),xl:(0,_reactNativeSizeMatters.moderateScale)(17),"2xl":(0,_reactNativeSizeMatters.moderateScale)(18),"3xl":(0,_reactNativeSizeMatters.moderateScale)(20),"4xl":(0,_reactNativeSizeMatters.moderateScale)(22),"5xl":(0,_reactNativeSizeMatters.moderateScale)(30)},space:new Array(100).fill(0).map(function(_,index){return index+1;})};baseTheme.lineHeights.note=baseTheme.lineHeights[0]+"px";var theme=(0,_extends2.default)({},baseTheme,{textStyles:{defaultTextStyle:{color:baseTheme.colors.font.grey800,fontSize:baseTheme.fontSizes.s,fontFamily:baseTheme.fonts.sf400},header:{color:baseTheme.colors.font.primary,fontSize:baseTheme.fontSizes["3xl"],fontFamily:baseTheme.fonts.sf600},modalHeader:{color:baseTheme.colors.font.primary,fontSize:baseTheme.fontSizes["xl"],fontFamily:baseTheme.fonts.sf600},body:{color:baseTheme.colors.font.grey500,fontSize:baseTheme.fontSizes.s},subtext:{color:baseTheme.colors.font.primary,fontSize:baseTheme.fontSizes["2xs"]},solid:{color:baseTheme.colors.font.white},inverse:{color:baseTheme.colors.font.base},text:{color:baseTheme.colors.font.base}},buttons:{solid:{border:2,borderColor:baseTheme.colors.background.base,backgroundColor:baseTheme.colors.background.base},inverse:{border:2,borderColor:baseTheme.colors.border.base,backgroundColor:baseTheme.colors.background.white},text:{color:baseTheme.colors.font.grey800,backgroundColor:baseTheme.colors.background.white}}});exports.theme=theme;
|
package/package.json
CHANGED
|
@@ -147,9 +147,13 @@ export const Button = React.forwardRef(
|
|
|
147
147
|
|
|
148
148
|
const renderOpacity = () => {
|
|
149
149
|
if (
|
|
150
|
-
[
|
|
151
|
-
|
|
152
|
-
|
|
150
|
+
[
|
|
151
|
+
"text",
|
|
152
|
+
"secondary",
|
|
153
|
+
"danger",
|
|
154
|
+
"danger-inverse",
|
|
155
|
+
"danger-text",
|
|
156
|
+
].includes(variant) &&
|
|
153
157
|
disabled
|
|
154
158
|
) {
|
|
155
159
|
return 0.5;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
|
|
3
|
+
import PropTypes from "prop-types";
|
|
4
|
+
import Animated, { FadeInDown, FadeInUp } from "react-native-reanimated";
|
|
5
|
+
|
|
6
|
+
import { Badge } from "./Badge";
|
|
7
|
+
|
|
8
|
+
export const AttachmentsView = ({
|
|
9
|
+
isAttachmentsVisible,
|
|
10
|
+
setIsAttachmentsVisible,
|
|
11
|
+
Attachments,
|
|
12
|
+
attachmentsCount,
|
|
13
|
+
isNoteOptionSelected,
|
|
14
|
+
}) =>
|
|
15
|
+
isAttachmentsVisible ? (
|
|
16
|
+
attachmentsCount !== 0 && (
|
|
17
|
+
<Animated.View entering={FadeInUp} key={isAttachmentsVisible}>
|
|
18
|
+
{Attachments}
|
|
19
|
+
</Animated.View>
|
|
20
|
+
)
|
|
21
|
+
) : (
|
|
22
|
+
<>
|
|
23
|
+
{attachmentsCount > 0 && (
|
|
24
|
+
<Animated.View
|
|
25
|
+
alignItems="flex-start"
|
|
26
|
+
entering={FadeInDown}
|
|
27
|
+
flexDirection="row"
|
|
28
|
+
flexWrap="wrap"
|
|
29
|
+
key={isAttachmentsVisible}
|
|
30
|
+
onTouchStart={() => setIsAttachmentsVisible(true)}
|
|
31
|
+
>
|
|
32
|
+
<Badge
|
|
33
|
+
isNoteOptionSelected={isNoteOptionSelected}
|
|
34
|
+
text="Attachments"
|
|
35
|
+
/>
|
|
36
|
+
<Badge
|
|
37
|
+
isNoteOptionSelected={isNoteOptionSelected}
|
|
38
|
+
text={`+ ${attachmentsCount}`}
|
|
39
|
+
/>
|
|
40
|
+
</Animated.View>
|
|
41
|
+
)}
|
|
42
|
+
</>
|
|
43
|
+
);
|
|
44
|
+
|
|
45
|
+
AttachmentsView.propTypes = {
|
|
46
|
+
isAttachmentsVisible: PropTypes.bool,
|
|
47
|
+
setIsAttachmentsVisible: PropTypes.func,
|
|
48
|
+
Attachments: PropTypes.any,
|
|
49
|
+
attachmentsCount: PropTypes.number,
|
|
50
|
+
isNoteOptionSelected: PropTypes.bool,
|
|
51
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
|
|
3
|
+
import PropTypes from "prop-types";
|
|
4
|
+
import { moderateScale } from "react-native-size-matters";
|
|
5
|
+
|
|
6
|
+
import { Container, Typography } from "@components";
|
|
7
|
+
|
|
8
|
+
export const Badge = ({ text, isNoteOptionSelected }) => (
|
|
9
|
+
<Container
|
|
10
|
+
alignSelf="flex-start"
|
|
11
|
+
bg={isNoteOptionSelected ? "white" : "background.oldLace"}
|
|
12
|
+
borderRadius={moderateScale(20)}
|
|
13
|
+
flexDirection="row"
|
|
14
|
+
flexGrow={0}
|
|
15
|
+
px={moderateScale(4)}
|
|
16
|
+
>
|
|
17
|
+
<Typography fontSize="3xs">{text}</Typography>
|
|
18
|
+
</Container>
|
|
19
|
+
);
|
|
20
|
+
|
|
21
|
+
Badge.propTypes = {
|
|
22
|
+
text: PropTypes.string,
|
|
23
|
+
isNoteOptionSelected: PropTypes.bool,
|
|
24
|
+
};
|
|
@@ -0,0 +1,422 @@
|
|
|
1
|
+
import React, { useEffect, useRef, useCallback, useState } from "react";
|
|
2
|
+
|
|
3
|
+
import PropTypes from "prop-types";
|
|
4
|
+
import { moderateScale } from "react-native-size-matters";
|
|
5
|
+
import styled from "styled-components/native";
|
|
6
|
+
import {
|
|
7
|
+
flexbox,
|
|
8
|
+
space,
|
|
9
|
+
border,
|
|
10
|
+
buttonStyle,
|
|
11
|
+
typography,
|
|
12
|
+
color,
|
|
13
|
+
} from "styled-system";
|
|
14
|
+
|
|
15
|
+
import AttachmentSVG from "@assets/icons/attachment.svg";
|
|
16
|
+
import CannedResponseSVG from "@assets/icons/canned-response.svg";
|
|
17
|
+
import ExpandSVG from "@assets/icons/expand.svg";
|
|
18
|
+
import ForwardSVG from "@assets/icons/forward.svg";
|
|
19
|
+
import MinimizeSVG from "@assets/icons/minimize.svg";
|
|
20
|
+
import NoteSVG from "@assets/icons/note.svg";
|
|
21
|
+
import ReplySVG from "@assets/icons/reply.svg";
|
|
22
|
+
import { Container, LineLoader, Button } from "@components";
|
|
23
|
+
|
|
24
|
+
import { AttachmentsView } from "./AttachmentsView";
|
|
25
|
+
import { EmailFields } from "./EmailFields";
|
|
26
|
+
import { IconButton } from "./IconButton";
|
|
27
|
+
|
|
28
|
+
import { theme } from "../../theme";
|
|
29
|
+
|
|
30
|
+
const placeholders = {
|
|
31
|
+
reply: "Type here to reply...",
|
|
32
|
+
note: "Add note here...",
|
|
33
|
+
forward: "Type here to forward...",
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
// eslint-disable-next-line @bigbinary/neeto/no-dangling-constants
|
|
37
|
+
const OPTION_TYPES = {
|
|
38
|
+
REPLY: "REPLY",
|
|
39
|
+
NOTE: "NOTE",
|
|
40
|
+
FORWARD: "FORWARD",
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
const labels = {
|
|
44
|
+
[OPTION_TYPES.REPLY]: "Reply",
|
|
45
|
+
[OPTION_TYPES.NOTE]: "Add note",
|
|
46
|
+
[OPTION_TYPES.FORWARD]: "Forward",
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
const TextInput = styled.TextInput`
|
|
50
|
+
${flexbox}
|
|
51
|
+
${space}
|
|
52
|
+
${border}
|
|
53
|
+
${buttonStyle}
|
|
54
|
+
${typography}
|
|
55
|
+
${color}
|
|
56
|
+
`;
|
|
57
|
+
/**
|
|
58
|
+
* ChatInput component supports various options like `REPLY`, `NOTE` and `FORWARD`.
|
|
59
|
+
* This component supports below props categories from [styled-system ](/styled-system).
|
|
60
|
+
* <ul>
|
|
61
|
+
* <li>flexbox</li>
|
|
62
|
+
* <li>space</li>
|
|
63
|
+
* <li>border</li>
|
|
64
|
+
* <li>buttonStyle</li>
|
|
65
|
+
* <li>brandLeft</li>
|
|
66
|
+
* <li>typography</li>
|
|
67
|
+
* </ul>
|
|
68
|
+
*
|
|
69
|
+
* <div class="screenshots">
|
|
70
|
+
* <img src="screenshots/chatInput/chatInput.png" />
|
|
71
|
+
* </div>
|
|
72
|
+
*
|
|
73
|
+
* ## Usage
|
|
74
|
+
* ```js
|
|
75
|
+
* import * as React from 'react';
|
|
76
|
+
* import { Typography, ChatInput, Container } from '@bigbinary/neetoui-rn';
|
|
77
|
+
*
|
|
78
|
+
* export default function Main() {
|
|
79
|
+
* const [value, setValue] = React.useState(
|
|
80
|
+
* "Hey Oliver, We are working on this issue. We will keep you update");
|
|
81
|
+
*
|
|
82
|
+
* return (
|
|
83
|
+
* <Container flex={1}>
|
|
84
|
+
* <Container alignItems="center" flex={1} justifyContent="center">
|
|
85
|
+
* <Typography> Desk Example</Typography>
|
|
86
|
+
* </Container>
|
|
87
|
+
* <Container align-self="end">
|
|
88
|
+
* <ChatInput
|
|
89
|
+
* shouldShowEmailFields
|
|
90
|
+
* attachmentsCount={2}
|
|
91
|
+
* toEmails="oliver@example.com"
|
|
92
|
+
* value={value}
|
|
93
|
+
* Attachments={
|
|
94
|
+
* <Container alignItems="flex-start">
|
|
95
|
+
* <AnimatedImage
|
|
96
|
+
* imageHeight={30}
|
|
97
|
+
* imageUrl="https://picsum.photos/255/139"
|
|
98
|
+
* imageWidth={30}
|
|
99
|
+
* resizeMode="cover"
|
|
100
|
+
* />
|
|
101
|
+
* </Container>
|
|
102
|
+
* }
|
|
103
|
+
* onChangeText={setValue}
|
|
104
|
+
* onCannedResponse={() => {
|
|
105
|
+
* alert("On Canned Response");
|
|
106
|
+
* }}
|
|
107
|
+
* onForward={() => {
|
|
108
|
+
* alert("On Forward");
|
|
109
|
+
* }}
|
|
110
|
+
* />
|
|
111
|
+
* </Container>
|
|
112
|
+
* </Container>
|
|
113
|
+
* );
|
|
114
|
+
* }
|
|
115
|
+
* ```
|
|
116
|
+
*/
|
|
117
|
+
|
|
118
|
+
export const ChatInput = ({
|
|
119
|
+
shouldShowEmailFields,
|
|
120
|
+
value = "",
|
|
121
|
+
onChangeText = () => {},
|
|
122
|
+
onForward,
|
|
123
|
+
onCannedResponse,
|
|
124
|
+
toEmails: initialToEmails,
|
|
125
|
+
onReply = () => {},
|
|
126
|
+
onAddNote = () => {},
|
|
127
|
+
onAttachment = () => {},
|
|
128
|
+
attachmentsCount,
|
|
129
|
+
Attachments,
|
|
130
|
+
showCannedResponsesFor = [OPTION_TYPES.REPLY],
|
|
131
|
+
disabled,
|
|
132
|
+
isLoading = true,
|
|
133
|
+
onOptionChange = () => {},
|
|
134
|
+
initialSelectedOption = OPTION_TYPES.REPLY,
|
|
135
|
+
...rest
|
|
136
|
+
}) => {
|
|
137
|
+
const inputRef = useRef();
|
|
138
|
+
|
|
139
|
+
const [selectedOption, setSelectedOption] = useState(initialSelectedOption);
|
|
140
|
+
const [isEmailFieldsVisible, setIsEmailFieldsVisible] = useState(false);
|
|
141
|
+
const [isAttachmentsVisible, setIsAttachmentsVisible] = useState(false);
|
|
142
|
+
|
|
143
|
+
const isReplyOptionSelected = selectedOption === OPTION_TYPES.REPLY;
|
|
144
|
+
const isNoteOptionSelected = selectedOption === OPTION_TYPES.NOTE;
|
|
145
|
+
const isForwardOptionSelected = selectedOption === OPTION_TYPES.FORWARD;
|
|
146
|
+
|
|
147
|
+
const [toEmails, setToEmails] = useState(initialToEmails ?? "");
|
|
148
|
+
const [ccEmails, setCcEmails] = useState("");
|
|
149
|
+
const [bccEmails, setBccEmails] = useState("");
|
|
150
|
+
|
|
151
|
+
useEffect(() => {
|
|
152
|
+
onOptionChange(selectedOption);
|
|
153
|
+
}, [selectedOption]);
|
|
154
|
+
|
|
155
|
+
useEffect(() => {
|
|
156
|
+
setSelectedOption(initialSelectedOption);
|
|
157
|
+
}, [initialSelectedOption]);
|
|
158
|
+
|
|
159
|
+
useEffect(() => {
|
|
160
|
+
if (isReplyOptionSelected) {
|
|
161
|
+
setToEmails(initialToEmails ?? "");
|
|
162
|
+
} else {
|
|
163
|
+
setToEmails("");
|
|
164
|
+
}
|
|
165
|
+
}, [initialToEmails, isReplyOptionSelected]);
|
|
166
|
+
|
|
167
|
+
const showEmailFieldsAndAttachments = () => {
|
|
168
|
+
setIsAttachmentsVisible(true);
|
|
169
|
+
setIsEmailFieldsVisible(true);
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
const hideEmailFieldsAndAttachments = () => {
|
|
173
|
+
setIsAttachmentsVisible(false);
|
|
174
|
+
setIsEmailFieldsVisible(false);
|
|
175
|
+
};
|
|
176
|
+
|
|
177
|
+
const onReplyClickHandler = () => {
|
|
178
|
+
hideEmailFieldsAndAttachments();
|
|
179
|
+
inputRef.current.focus();
|
|
180
|
+
setSelectedOption(OPTION_TYPES.REPLY);
|
|
181
|
+
};
|
|
182
|
+
|
|
183
|
+
const onAddNoteClickHandler = () => {
|
|
184
|
+
hideEmailFieldsAndAttachments();
|
|
185
|
+
inputRef.current.focus();
|
|
186
|
+
setIsEmailFieldsVisible(false);
|
|
187
|
+
setSelectedOption(OPTION_TYPES.NOTE);
|
|
188
|
+
};
|
|
189
|
+
|
|
190
|
+
const onAddForwardClickHandler = () => {
|
|
191
|
+
inputRef.current.focus();
|
|
192
|
+
setIsEmailFieldsVisible(true);
|
|
193
|
+
setIsAttachmentsVisible(false);
|
|
194
|
+
setSelectedOption(OPTION_TYPES.FORWARD);
|
|
195
|
+
};
|
|
196
|
+
|
|
197
|
+
const onAddAttachmentsClickHandler = () => {
|
|
198
|
+
if (!isAttachmentsVisible && attachmentsCount > 0) {
|
|
199
|
+
// When attachments are not visible but there are few attachments then we no need to show the upload modal.
|
|
200
|
+
} else {
|
|
201
|
+
onAttachment();
|
|
202
|
+
}
|
|
203
|
+
setIsEmailFieldsVisible(false);
|
|
204
|
+
setIsAttachmentsVisible(true);
|
|
205
|
+
};
|
|
206
|
+
|
|
207
|
+
const onActionHandler = useCallback(() => {
|
|
208
|
+
({
|
|
209
|
+
[OPTION_TYPES.REPLY]: () => {
|
|
210
|
+
onReply({ toEmails, ccEmails, bccEmails });
|
|
211
|
+
},
|
|
212
|
+
[OPTION_TYPES.NOTE]: () => {
|
|
213
|
+
onAddNote({ toEmails, ccEmails, bccEmails });
|
|
214
|
+
},
|
|
215
|
+
[OPTION_TYPES.FORWARD]: () => {
|
|
216
|
+
onForward({ toEmails, ccEmails, bccEmails });
|
|
217
|
+
},
|
|
218
|
+
}[selectedOption]());
|
|
219
|
+
}, [
|
|
220
|
+
bccEmails,
|
|
221
|
+
ccEmails,
|
|
222
|
+
onAddNote,
|
|
223
|
+
onForward,
|
|
224
|
+
onReply,
|
|
225
|
+
selectedOption,
|
|
226
|
+
toEmails,
|
|
227
|
+
]);
|
|
228
|
+
|
|
229
|
+
const shouldExpandAndMinimizeButton = attachmentsCount > 0 || toEmails;
|
|
230
|
+
|
|
231
|
+
return (
|
|
232
|
+
<Container>
|
|
233
|
+
<LineLoader
|
|
234
|
+
backgroundColor={theme.colors.background.grey400}
|
|
235
|
+
isLoading={isLoading}
|
|
236
|
+
/>
|
|
237
|
+
<Container
|
|
238
|
+
bg={isNoteOptionSelected ? "background.oldLace" : "transparent"}
|
|
239
|
+
p={moderateScale(5)}
|
|
240
|
+
pt={0}
|
|
241
|
+
px={moderateScale(16)}
|
|
242
|
+
>
|
|
243
|
+
<Container pt={moderateScale(8)}>
|
|
244
|
+
<EmailFields
|
|
245
|
+
bccEmails={bccEmails}
|
|
246
|
+
ccEmails={ccEmails}
|
|
247
|
+
isEmailFieldsVisible={isEmailFieldsVisible}
|
|
248
|
+
setBccEmails={setBccEmails}
|
|
249
|
+
setCcEmails={setCcEmails}
|
|
250
|
+
setIsEmailFieldsVisible={setIsEmailFieldsVisible}
|
|
251
|
+
setToEmails={setToEmails}
|
|
252
|
+
shouldShowEmailFields={shouldShowEmailFields}
|
|
253
|
+
toEmails={toEmails}
|
|
254
|
+
/>
|
|
255
|
+
<Container flexDirection="row" justifyContent="space-between">
|
|
256
|
+
<TextInput
|
|
257
|
+
multiline
|
|
258
|
+
flex={1}
|
|
259
|
+
placeholder={placeholders[selectedOption]}
|
|
260
|
+
py={moderateScale(12)}
|
|
261
|
+
ref={inputRef}
|
|
262
|
+
value={value}
|
|
263
|
+
onChangeText={onChangeText}
|
|
264
|
+
onTouchStart={hideEmailFieldsAndAttachments}
|
|
265
|
+
{...rest}
|
|
266
|
+
/>
|
|
267
|
+
<Container alignSelf="center">
|
|
268
|
+
{shouldExpandAndMinimizeButton &&
|
|
269
|
+
(isEmailFieldsVisible || isAttachmentsVisible ? (
|
|
270
|
+
<IconButton
|
|
271
|
+
Icon={MinimizeSVG}
|
|
272
|
+
height={moderateScale(30)}
|
|
273
|
+
pt={moderateScale(8)}
|
|
274
|
+
width={moderateScale(30)}
|
|
275
|
+
onPress={hideEmailFieldsAndAttachments}
|
|
276
|
+
/>
|
|
277
|
+
) : (
|
|
278
|
+
<IconButton
|
|
279
|
+
Icon={ExpandSVG}
|
|
280
|
+
height={moderateScale(30)}
|
|
281
|
+
pt={moderateScale(8)}
|
|
282
|
+
width={moderateScale(30)}
|
|
283
|
+
onPress={showEmailFieldsAndAttachments}
|
|
284
|
+
/>
|
|
285
|
+
))}
|
|
286
|
+
</Container>
|
|
287
|
+
</Container>
|
|
288
|
+
<AttachmentsView
|
|
289
|
+
Attachments={Attachments}
|
|
290
|
+
attachmentsCount={attachmentsCount}
|
|
291
|
+
isAttachmentsVisible={isAttachmentsVisible}
|
|
292
|
+
isNoteOptionSelected={isNoteOptionSelected}
|
|
293
|
+
setIsAttachmentsVisible={setIsAttachmentsVisible}
|
|
294
|
+
/>
|
|
295
|
+
<Container
|
|
296
|
+
alignItems="center"
|
|
297
|
+
flexDirection="row"
|
|
298
|
+
justifyContent="space-between"
|
|
299
|
+
mt={moderateScale(10)}
|
|
300
|
+
>
|
|
301
|
+
<Container flexDirection="row" justifyContent="space-between">
|
|
302
|
+
<IconButton
|
|
303
|
+
Icon={ReplySVG}
|
|
304
|
+
opacity={isReplyOptionSelected ? 1 : 0.5}
|
|
305
|
+
pl={moderateScale(10)}
|
|
306
|
+
onPress={onReplyClickHandler}
|
|
307
|
+
/>
|
|
308
|
+
<IconButton
|
|
309
|
+
Icon={NoteSVG}
|
|
310
|
+
opacity={isNoteOptionSelected ? 1 : 0.5}
|
|
311
|
+
onPress={onAddNoteClickHandler}
|
|
312
|
+
/>
|
|
313
|
+
{onForward && (
|
|
314
|
+
<IconButton
|
|
315
|
+
Icon={ForwardSVG}
|
|
316
|
+
opacity={isForwardOptionSelected ? 1 : 0.5}
|
|
317
|
+
onPress={onAddForwardClickHandler}
|
|
318
|
+
/>
|
|
319
|
+
)}
|
|
320
|
+
<Container
|
|
321
|
+
bg="background.grey400"
|
|
322
|
+
mx={moderateScale(5)}
|
|
323
|
+
p={moderateScale(0.4)}
|
|
324
|
+
/>
|
|
325
|
+
{onCannedResponse &&
|
|
326
|
+
showCannedResponsesFor.includes(selectedOption) && (
|
|
327
|
+
<IconButton
|
|
328
|
+
Icon={CannedResponseSVG}
|
|
329
|
+
opacity={0.5}
|
|
330
|
+
onPress={onCannedResponse}
|
|
331
|
+
/>
|
|
332
|
+
)}
|
|
333
|
+
<IconButton
|
|
334
|
+
Icon={AttachmentSVG}
|
|
335
|
+
opacity={0.5}
|
|
336
|
+
onPress={onAddAttachmentsClickHandler}
|
|
337
|
+
/>
|
|
338
|
+
</Container>
|
|
339
|
+
<Button
|
|
340
|
+
disabled={disabled}
|
|
341
|
+
height={moderateScale(30)}
|
|
342
|
+
label={labels[selectedOption]}
|
|
343
|
+
pr={0}
|
|
344
|
+
variant="text"
|
|
345
|
+
labelStyle={{
|
|
346
|
+
mx: moderateScale(0),
|
|
347
|
+
}}
|
|
348
|
+
onPress={onActionHandler}
|
|
349
|
+
/>
|
|
350
|
+
</Container>
|
|
351
|
+
</Container>
|
|
352
|
+
</Container>
|
|
353
|
+
</Container>
|
|
354
|
+
);
|
|
355
|
+
};
|
|
356
|
+
|
|
357
|
+
ChatInput.propTypes = {
|
|
358
|
+
/**
|
|
359
|
+
* If true, Shows loader
|
|
360
|
+
*/
|
|
361
|
+
isLoading: PropTypes.bool,
|
|
362
|
+
/**
|
|
363
|
+
* If true, Shows to, cc and bcc email inputs.
|
|
364
|
+
*/
|
|
365
|
+
shouldShowEmailFields: PropTypes.bool,
|
|
366
|
+
/**
|
|
367
|
+
* Value to make input component controllable.
|
|
368
|
+
*/
|
|
369
|
+
value: PropTypes.string,
|
|
370
|
+
/**
|
|
371
|
+
* To set the initial selected option
|
|
372
|
+
*/
|
|
373
|
+
initialSelectedOption: PropTypes.oneOf(Object.values(OPTION_TYPES)),
|
|
374
|
+
/**
|
|
375
|
+
* Callback to be called when user selection option.
|
|
376
|
+
*/
|
|
377
|
+
onOptionChange: PropTypes.func,
|
|
378
|
+
/**
|
|
379
|
+
* Callback to be called when the input text changes.
|
|
380
|
+
*/
|
|
381
|
+
onChangeText: PropTypes.func,
|
|
382
|
+
/**
|
|
383
|
+
* Callback to be called on click of forward icon.
|
|
384
|
+
*/
|
|
385
|
+
onForward: PropTypes.func,
|
|
386
|
+
/**
|
|
387
|
+
* Callback to be called on click of canned responses icon.
|
|
388
|
+
*/
|
|
389
|
+
onCannedResponse: PropTypes.func,
|
|
390
|
+
/**
|
|
391
|
+
* Email list separated by comma.
|
|
392
|
+
*/
|
|
393
|
+
toEmails: PropTypes.string,
|
|
394
|
+
/**
|
|
395
|
+
* Callback to be called on click of reply icon.
|
|
396
|
+
*/
|
|
397
|
+
onReply: PropTypes.func,
|
|
398
|
+
/**
|
|
399
|
+
* Callback to be called on click of add note icon.
|
|
400
|
+
*/
|
|
401
|
+
onAddNote: PropTypes.func,
|
|
402
|
+
/**
|
|
403
|
+
* Callback to be called on click of attachment icon.
|
|
404
|
+
*/
|
|
405
|
+
onAttachment: PropTypes.func,
|
|
406
|
+
/**
|
|
407
|
+
* Count of attachments.
|
|
408
|
+
*/
|
|
409
|
+
attachmentsCount: PropTypes.number,
|
|
410
|
+
/**
|
|
411
|
+
* Component to render attachments.
|
|
412
|
+
*/
|
|
413
|
+
Attachments: PropTypes.any,
|
|
414
|
+
/**
|
|
415
|
+
* Array for options to show canned responses. Example: ["reply","notes","forward"]
|
|
416
|
+
*/
|
|
417
|
+
showCannedResponsesFor: PropTypes.arrayOf(PropTypes.string),
|
|
418
|
+
/**
|
|
419
|
+
* If true, Disables the reply, forward and add note button.
|
|
420
|
+
*/
|
|
421
|
+
disabled: PropTypes.bool,
|
|
422
|
+
};
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
|
|
3
|
+
import PropTypes from "prop-types";
|
|
4
|
+
import Animated, { FadeInDown, FadeInUp } from "react-native-reanimated";
|
|
5
|
+
import { moderateScale } from "react-native-size-matters";
|
|
6
|
+
|
|
7
|
+
import { InputEmailChip } from "@components";
|
|
8
|
+
|
|
9
|
+
import { Badge } from "./Badge";
|
|
10
|
+
|
|
11
|
+
export const EmailFields = ({
|
|
12
|
+
shouldShowEmailFields,
|
|
13
|
+
setIsEmailFieldsVisible,
|
|
14
|
+
isEmailFieldsVisible,
|
|
15
|
+
ccEmails,
|
|
16
|
+
toEmails,
|
|
17
|
+
bccEmails,
|
|
18
|
+
setBccEmails,
|
|
19
|
+
setCcEmails,
|
|
20
|
+
setToEmails,
|
|
21
|
+
}) => {
|
|
22
|
+
const firstToEmail = (toEmails.trim() ? toEmails.split(",") : [])[0] ?? "";
|
|
23
|
+
|
|
24
|
+
const totalEmailsMinus1 =
|
|
25
|
+
(toEmails.trim() ? toEmails.split(",") : []).length +
|
|
26
|
+
(ccEmails.trim() ? ccEmails.split(",") : []).length +
|
|
27
|
+
(bccEmails.trim() ? bccEmails.split(",") : []).length -
|
|
28
|
+
1;
|
|
29
|
+
|
|
30
|
+
if (!shouldShowEmailFields) return null;
|
|
31
|
+
|
|
32
|
+
return isEmailFieldsVisible ? (
|
|
33
|
+
<Animated.View
|
|
34
|
+
entering={FadeInDown}
|
|
35
|
+
key={isEmailFieldsVisible}
|
|
36
|
+
pb={moderateScale(10)}
|
|
37
|
+
>
|
|
38
|
+
<InputEmailChip
|
|
39
|
+
disabled={false}
|
|
40
|
+
emails={toEmails.trim() ? toEmails.split(",") : []}
|
|
41
|
+
label="To:"
|
|
42
|
+
onUpdate={emails => {
|
|
43
|
+
setToEmails(emails.join(","));
|
|
44
|
+
}}
|
|
45
|
+
/>
|
|
46
|
+
<InputEmailChip
|
|
47
|
+
disabled={false}
|
|
48
|
+
emails={ccEmails.trim() ? ccEmails.split(",") : []}
|
|
49
|
+
label="Cc:"
|
|
50
|
+
onUpdate={emails => {
|
|
51
|
+
setCcEmails(emails.join(","));
|
|
52
|
+
}}
|
|
53
|
+
/>
|
|
54
|
+
<InputEmailChip
|
|
55
|
+
disabled={false}
|
|
56
|
+
emails={bccEmails.trim() ? bccEmails.split(",") : []}
|
|
57
|
+
label="Bcc:"
|
|
58
|
+
onUpdate={emails => {
|
|
59
|
+
setBccEmails(emails.join(","));
|
|
60
|
+
}}
|
|
61
|
+
/>
|
|
62
|
+
</Animated.View>
|
|
63
|
+
) : (
|
|
64
|
+
<Animated.View
|
|
65
|
+
alignItems="flex-start"
|
|
66
|
+
entering={FadeInUp}
|
|
67
|
+
flexDirection="row"
|
|
68
|
+
flexWrap="wrap"
|
|
69
|
+
key={isEmailFieldsVisible}
|
|
70
|
+
onTouchStart={() => setIsEmailFieldsVisible(true)}
|
|
71
|
+
>
|
|
72
|
+
{toEmails.length > 0 && (
|
|
73
|
+
<>
|
|
74
|
+
<Badge text={`To ${firstToEmail}`} />
|
|
75
|
+
{totalEmailsMinus1 > 1 && <Badge text={`+ ${totalEmailsMinus1}`} />}
|
|
76
|
+
</>
|
|
77
|
+
)}
|
|
78
|
+
</Animated.View>
|
|
79
|
+
);
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
EmailFields.propTypes = {
|
|
83
|
+
shouldShowEmailFields: PropTypes.bool,
|
|
84
|
+
isEmailFieldsVisible: PropTypes.bool,
|
|
85
|
+
setIsEmailFieldsVisible: PropTypes.func,
|
|
86
|
+
ccEmails: PropTypes.string,
|
|
87
|
+
toEmails: PropTypes.string,
|
|
88
|
+
bccEmails: PropTypes.string,
|
|
89
|
+
setBccEmails: PropTypes.func,
|
|
90
|
+
setCcEmails: PropTypes.func,
|
|
91
|
+
setToEmails: PropTypes.func,
|
|
92
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
|
|
3
|
+
import PropTypes from "prop-types";
|
|
4
|
+
import { moderateScale } from "react-native-size-matters";
|
|
5
|
+
|
|
6
|
+
import { Touchable } from "@components";
|
|
7
|
+
|
|
8
|
+
export const IconButton = ({ Icon, ...rest }) => (
|
|
9
|
+
<Touchable
|
|
10
|
+
alignItems="center"
|
|
11
|
+
height={moderateScale(22)}
|
|
12
|
+
px={moderateScale(18)}
|
|
13
|
+
width={moderateScale(22)}
|
|
14
|
+
{...rest}
|
|
15
|
+
>
|
|
16
|
+
{<Icon />}
|
|
17
|
+
</Touchable>
|
|
18
|
+
);
|
|
19
|
+
|
|
20
|
+
IconButton.propTypes = {
|
|
21
|
+
Icon: PropTypes.elementType,
|
|
22
|
+
};
|
|
@@ -25,6 +25,7 @@ export const InputEmailChip = ({
|
|
|
25
25
|
emails = [],
|
|
26
26
|
onUpdate,
|
|
27
27
|
delimiters = [" ", ","],
|
|
28
|
+
...rest
|
|
28
29
|
}) => {
|
|
29
30
|
const theme = useContext(ThemeContext);
|
|
30
31
|
const inputRef = useRef();
|
|
@@ -80,7 +81,7 @@ export const InputEmailChip = ({
|
|
|
80
81
|
};
|
|
81
82
|
|
|
82
83
|
const handleOnEndEditing = event => {
|
|
83
|
-
|
|
84
|
+
checkAndUpdateEmails(event.nativeEvent.text);
|
|
84
85
|
};
|
|
85
86
|
|
|
86
87
|
const checkAndUpdateEmails = text => {
|
|
@@ -127,12 +128,14 @@ export const InputEmailChip = ({
|
|
|
127
128
|
minHeight={moderateScale(30)}
|
|
128
129
|
py={moderateScale(2)}
|
|
129
130
|
width="100%"
|
|
131
|
+
{...rest}
|
|
130
132
|
>
|
|
131
133
|
{!!label && (
|
|
132
134
|
<Typography
|
|
133
135
|
color={disabled ? "font.grey400" : "font.grey600"}
|
|
134
136
|
fontSize="xs"
|
|
135
|
-
|
|
137
|
+
textAlign="left"
|
|
138
|
+
width={moderateScale(40)}
|
|
136
139
|
mt={Platform.select({
|
|
137
140
|
android: moderateScale(10),
|
|
138
141
|
ios: moderateScale(8),
|
|
@@ -152,9 +155,10 @@ export const InputEmailChip = ({
|
|
|
152
155
|
<Chip
|
|
153
156
|
isDisabled={disabled}
|
|
154
157
|
label={email}
|
|
155
|
-
containerStyle={
|
|
156
|
-
index === emailIndexForDeletion
|
|
157
|
-
|
|
158
|
+
containerStyle={{
|
|
159
|
+
...getChipContainerStyle(index === emailIndexForDeletion),
|
|
160
|
+
height: moderateScale(25),
|
|
161
|
+
}}
|
|
158
162
|
onClose={disabled ? null : () => removeEmail({ email })}
|
|
159
163
|
/>
|
|
160
164
|
</Container>
|
|
@@ -175,6 +179,9 @@ export const InputEmailChip = ({
|
|
|
175
179
|
noBorder
|
|
176
180
|
disabled={disabled}
|
|
177
181
|
value={textValue}
|
|
182
|
+
containerProps={{
|
|
183
|
+
borderRadius: 0,
|
|
184
|
+
}}
|
|
178
185
|
inputProps={{
|
|
179
186
|
...inputProps,
|
|
180
187
|
ref: inputRef,
|
|
@@ -184,6 +191,8 @@ export const InputEmailChip = ({
|
|
|
184
191
|
onFocus: handleOnFocus,
|
|
185
192
|
onBlur: handleOnBlur,
|
|
186
193
|
onEndEditing: handleOnEndEditing,
|
|
194
|
+
borderBottomWidth: moderateScale(2),
|
|
195
|
+
borderColor: "background.grey200",
|
|
187
196
|
}}
|
|
188
197
|
onChangeText={handleTextChange}
|
|
189
198
|
/>
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
|
|
3
|
+
import PropTypes from "prop-types";
|
|
4
|
+
import ContentLoader, { Rect } from "react-content-loader/native";
|
|
5
|
+
import { moderateScale } from "react-native-size-matters";
|
|
6
|
+
|
|
7
|
+
import { theme } from "../theme";
|
|
8
|
+
|
|
9
|
+
export const LineLoader = ({
|
|
10
|
+
isLoading,
|
|
11
|
+
backgroundColor = theme.colors.background.primary,
|
|
12
|
+
foregroundColor = theme.colors.background.base,
|
|
13
|
+
height = moderateScale(1.5),
|
|
14
|
+
}) => (
|
|
15
|
+
<ContentLoader
|
|
16
|
+
animate={isLoading}
|
|
17
|
+
backgroundColor={backgroundColor}
|
|
18
|
+
foregroundColor={foregroundColor}
|
|
19
|
+
height={height}
|
|
20
|
+
interval={0}
|
|
21
|
+
key={isLoading}
|
|
22
|
+
speed={1}
|
|
23
|
+
width="100%"
|
|
24
|
+
>
|
|
25
|
+
<Rect height={height} width="100%" x={0} y={0} />
|
|
26
|
+
</ContentLoader>
|
|
27
|
+
);
|
|
28
|
+
|
|
29
|
+
LineLoader.propTypes = {
|
|
30
|
+
/**
|
|
31
|
+
* Shows loader when true.
|
|
32
|
+
*/
|
|
33
|
+
isLoading: PropTypes.bool,
|
|
34
|
+
/**
|
|
35
|
+
* Custom background color of loader.
|
|
36
|
+
*/
|
|
37
|
+
backgroundColor: PropTypes.string,
|
|
38
|
+
/**
|
|
39
|
+
* Custom foreground color of loader.
|
|
40
|
+
*/
|
|
41
|
+
foregroundColor: PropTypes.string,
|
|
42
|
+
/**
|
|
43
|
+
* Height of loader.
|
|
44
|
+
*/
|
|
45
|
+
height: PropTypes.number,
|
|
46
|
+
};
|
package/src/components/index.js
CHANGED
|
@@ -37,5 +37,7 @@ export { BottomTabBar } from "./BottomTabBar";
|
|
|
37
37
|
export { AnimatedImage } from "./AnimatedImage";
|
|
38
38
|
export { NotificationPreferenceList } from "./NotificationPreferenceList";
|
|
39
39
|
export { OrganizationItem } from "./OrganizationItem";
|
|
40
|
+
export { ChatInput } from "./ChatInput/ChatInput";
|
|
40
41
|
export { Loader } from "./Loader";
|
|
41
42
|
export { InputEmailChip } from "./InputEmailChip";
|
|
43
|
+
export { LineLoader } from "./LineLoader";
|