@bigbinary/neetoui-rn 0.0.248 → 0.0.250
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/lib/components/ChatInput/ChatInput.js +1 -1
- package/lib/components/ChatInput/EmailFields.js +1 -1
- package/lib/components/Popover.js +1 -1
- package/lib/theme/index.js +1 -1
- package/package.json +1 -1
- package/src/components/ChatInput/ChatInput.jsx +293 -215
- package/src/components/ChatInput/EmailFields.jsx +56 -26
- package/src/components/Popover.jsx +37 -20
- package/src/theme/index.js +2 -2
|
@@ -1 +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};
|
|
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 _reactNativeRemixIcon=_interopRequireDefault(require("react-native-remix-icon"));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","showReplyMenuOptions","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=(0,_react.forwardRef)(function(_ref,ref){var shouldShowEmailFields=_ref.shouldShowEmailFields,showReplyMenuOptions=_ref.showReplyMenuOptions,_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),toEmailsForForward=_useState10[0],setToEmailsForForward=_useState10[1];var _useState11=(0,_react.useState)([]),_useState12=(0,_slicedToArray2.default)(_useState11,2),ccEmails=_useState12[0],setCcEmails=_useState12[1];var _useState13=(0,_react.useState)([]),_useState14=(0,_slicedToArray2.default)(_useState13,2),bccEmails=_useState14[0],setBccEmails=_useState14[1];var moreReplyOptions=[{label:"Send and set as closed",Icon:function Icon(){return null;},onPress:function onPress(){onReply({toEmails:toEmails,ccEmails:ccEmails,bccEmails:bccEmails,status:"closed"});}}];(0,_react.useImperativeHandle)(ref,function(){return{clearEmailFields:function clearEmailFields(){setToEmails(initialToEmails!=null?initialToEmails:[]);setToEmailsForForward([]);setCcEmails([]);setBccEmails([]);inputRef.current.blur();}};},[initialToEmails,isReplyOptionSelected]);(0,_react.useEffect)(function(){onOptionChange(selectedOption);},[selectedOption]);(0,_react.useEffect)(function(){setSelectedOption(initialSelectedOption);},[initialSelectedOption]);(0,_react.useEffect)(function(){setToEmails(initialToEmails!=null?initialToEmails:[]);},[initialToEmails]);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 shouldShowExpandAndMinimizeButton=attachmentsCount>0||toEmails.length>0;var shouldDisableWhenForwardAndToFieldMissing=isForwardOptionSelected&&toEmailsForForward.length===0;return _react.default.createElement(_.Container,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:270,columnNumber:7}},_react.default.createElement(_.LineLoader,{backgroundColor:_theme.theme.colors.background.grey400,isLoading:isLoading,__self:_this,__source:{fileName:_jsxFileName,lineNumber:271,columnNumber:9}}),_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:275,columnNumber:9}},_react.default.createElement(_.Container,{pt:(0,_reactNativeSizeMatters.moderateScale)(8),__self:_this,__source:{fileName:_jsxFileName,lineNumber:281,columnNumber:11}},_react.default.createElement(_EmailFields.EmailFields,{bccEmails:bccEmails,ccEmails:ccEmails,isEmailFieldsVisible:isEmailFieldsVisible,isForwardOptionSelected:isForwardOptionSelected,isNoteOptionSelected:isNoteOptionSelected,isReplyOptionSelected:isReplyOptionSelected,setBccEmails:setBccEmails,setCcEmails:setCcEmails,setIsEmailFieldsVisible:setIsEmailFieldsVisible,setToEmails:setToEmails,setToEmailsForForward:setToEmailsForForward,shouldShowEmailFields:shouldShowEmailFields,toEmails:toEmails,toEmailsForForward:toEmailsForForward,__self:_this,__source:{fileName:_jsxFileName,lineNumber:282,columnNumber:13}}),_react.default.createElement(_.Container,{flexDirection:"row",justifyContent:"space-between",__self:_this,__source:{fileName:_jsxFileName,lineNumber:298,columnNumber:13}},_react.default.createElement(TextInput,(0,_extends2.default)({multiline:true,flex:1,maxHeight:(0,_reactNativeSizeMatters.moderateScale)(150),my:(0,_reactNativeSizeMatters.moderateScale)(12),overflow:"hidden",placeholder:placeholders[selectedOption],ref:inputRef,value:value,onChangeText:onChangeText,onTouchStart:hideEmailFieldsAndAttachments},rest,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:299,columnNumber:15}})),_react.default.createElement(_.Container,{alignSelf:"center",__self:_this,__source:{fileName:_jsxFileName,lineNumber:312,columnNumber:15}},shouldShowExpandAndMinimizeButton&&(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:315,columnNumber:21}}):_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:323,columnNumber:21}})))),_react.default.createElement(_AttachmentsView.AttachmentsView,{Attachments:Attachments,attachmentsCount:attachmentsCount,isAttachmentsVisible:isAttachmentsVisible,isNoteOptionSelected:isNoteOptionSelected,setIsAttachmentsVisible:setIsAttachmentsVisible,__self:_this,__source:{fileName:_jsxFileName,lineNumber:333,columnNumber:13}}),_react.default.createElement(_.Container,{alignItems:"center",flexDirection:"row",justifyContent:"space-between",mt:(0,_reactNativeSizeMatters.moderateScale)(10),__self:_this,__source:{fileName:_jsxFileName,lineNumber:340,columnNumber:13}},_react.default.createElement(_.Container,{flexDirection:"row",justifyContent:"space-between",__self:_this,__source:{fileName:_jsxFileName,lineNumber:346,columnNumber:15}},_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:347,columnNumber:17}}),_react.default.createElement(_IconButton.IconButton,{Icon:_note.default,opacity:isNoteOptionSelected?1:0.5,onPress:onAddNoteClickHandler,__self:_this,__source:{fileName:_jsxFileName,lineNumber:353,columnNumber:17}}),onForward&&_react.default.createElement(_IconButton.IconButton,{Icon:_forward.default,opacity:isForwardOptionSelected?1:0.5,onPress:onAddForwardClickHandler,__self:_this,__source:{fileName:_jsxFileName,lineNumber:359,columnNumber:19}}),_react.default.createElement(_.Container,{bg:"background.grey400",mx:(0,_reactNativeSizeMatters.moderateScale)(5),p:(0,_reactNativeSizeMatters.moderateScale)(0.4),__self:_this,__source:{fileName:_jsxFileName,lineNumber:365,columnNumber:17}}),onCannedResponse&&showCannedResponsesFor.includes(selectedOption)&&_react.default.createElement(_IconButton.IconButton,{Icon:_cannedResponse.default,opacity:0.5,onPress:onCannedResponse,__self:_this,__source:{fileName:_jsxFileName,lineNumber:372,columnNumber:21}}),_react.default.createElement(_IconButton.IconButton,{Icon:_attachment.default,opacity:0.5,onPress:onAddAttachmentsClickHandler,__self:_this,__source:{fileName:_jsxFileName,lineNumber:378,columnNumber:17}})),_react.default.createElement(_.Container,{alignItems:"center",flexDirection:"row",__self:_this,__source:{fileName:_jsxFileName,lineNumber:384,columnNumber:15}},_react.default.createElement(_.Button,{height:(0,_reactNativeSizeMatters.moderateScale)(30),label:labels[selectedOption],pr:0,variant:"text",disabled:shouldDisableWhenForwardAndToFieldMissing||disabled,labelStyle:{mx:(0,_reactNativeSizeMatters.moderateScale)(0)},onPress:onActionHandler,__self:_this,__source:{fileName:_jsxFileName,lineNumber:385,columnNumber:17}}),showReplyMenuOptions&&isReplyOptionSelected&&_react.default.createElement(_.Popover,{data:moreReplyOptions,from:_react.default.createElement(_.Button,{disabled:disabled,height:(0,_reactNativeSizeMatters.moderateScale)(30),label:"",p:0,variant:"text",RightIcon:function RightIcon(){return _react.default.createElement(_reactNativeRemixIcon.default,{color:_theme.theme.colors.background.grey800,name:"ri-arrow-down-s-line",size:(0,_reactNativeSizeMatters.moderateScale)(30),__self:_this,__source:{fileName:_jsxFileName,lineNumber:409,columnNumber:27}});},__self:_this,__source:{fileName:_jsxFileName,lineNumber:402,columnNumber:23}}),__self:_this,__source:{fileName:_jsxFileName,lineNumber:399,columnNumber:19}}))))));});exports.ChatInput=ChatInput;ChatInput.displayName="ChatInput";ChatInput.propTypes={isLoading:_propTypes.default.bool,shouldShowEmailFields:_propTypes.default.bool,showReplyMenuOptions:_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.arrayOf(_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.oneOf(Object.values(OPTION_TYPES))),disabled:_propTypes.default.bool};
|
|
@@ -1 +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
|
|
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 _=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 shouldShowEmailFields=_ref.shouldShowEmailFields,setIsEmailFieldsVisible=_ref.setIsEmailFieldsVisible,isEmailFieldsVisible=_ref.isEmailFieldsVisible,toEmails=_ref.toEmails,toEmailsForForward=_ref.toEmailsForForward,ccEmails=_ref.ccEmails,bccEmails=_ref.bccEmails,setToEmails=_ref.setToEmails,setToEmailsForForward=_ref.setToEmailsForForward,setBccEmails=_ref.setBccEmails,setCcEmails=_ref.setCcEmails,isReplyOptionSelected=_ref.isReplyOptionSelected,isNoteOptionSelected=_ref.isNoteOptionSelected,isForwardOptionSelected=_ref.isForwardOptionSelected;var firstToEmail=isReplyOptionSelected?toEmails[0]:toEmailsForForward[0];var badge="";if(firstToEmail){badge="To "+firstToEmail;}else if(isForwardOptionSelected){badge="Click here to enter email id.";}var totalEmailsMinus1=toEmails.length+toEmailsForForward.length+ccEmails.length+bccEmails.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:48,columnNumber:5}},isReplyOptionSelected&&_react.default.createElement(_.InputEmailChip,{disabled:true,emails:toEmails,label:"To:",onUpdate:setToEmails,__self:_this,__source:{fileName:_jsxFileName,lineNumber:54,columnNumber:9}}),isForwardOptionSelected&&_react.default.createElement(_.InputEmailChip,{disabled:false,emails:toEmailsForForward,label:"To:",onUpdate:setToEmailsForForward,__self:_this,__source:{fileName:_jsxFileName,lineNumber:62,columnNumber:9}}),_react.default.createElement(_.InputEmailChip,{disabled:false,emails:ccEmails,label:"Cc:",onUpdate:setCcEmails,__self:_this,__source:{fileName:_jsxFileName,lineNumber:69,columnNumber:7}}),_react.default.createElement(_.InputEmailChip,{disabled:false,emails:bccEmails,label:"Bcc:",onUpdate:setBccEmails,__self:_this,__source:{fileName:_jsxFileName,lineNumber:75,columnNumber:7}})):_react.default.createElement(_reactNativeReanimated.default.View,{alignItems:"flex-start",entering:_reactNativeReanimated.FadeInUp,flexDirection:"row",flexWrap:"wrap",key:isEmailFieldsVisible,style:isNoteOptionSelected&&{height:(0,_reactNativeSizeMatters.moderateScale)(0),width:(0,_reactNativeSizeMatters.moderateScale)(0)},onTouchStart:function onTouchStart(){return setIsEmailFieldsVisible(true);},__self:_this,__source:{fileName:_jsxFileName,lineNumber:83,columnNumber:5}},toEmails.length>0&&_react.default.createElement(_react.default.Fragment,null,_react.default.createElement(_Badge.Badge,{text:badge,__self:_this,__source:{fileName:_jsxFileName,lineNumber:99,columnNumber:11}}),totalEmailsMinus1>1&&_react.default.createElement(_Badge.Badge,{text:"+ "+totalEmailsMinus1,__self:_this,__source:{fileName:_jsxFileName,lineNumber:100,columnNumber:37}})));};exports.EmailFields=EmailFields;EmailFields.propTypes={shouldShowEmailFields:_propTypes.default.bool,isEmailFieldsVisible:_propTypes.default.bool,setIsEmailFieldsVisible:_propTypes.default.func,ccEmails:_propTypes.default.arrayOf(_propTypes.default.string),toEmails:_propTypes.default.arrayOf(_propTypes.default.string),toEmailsForForward:_propTypes.default.arrayOf(_propTypes.default.string),bccEmails:_propTypes.default.arrayOf(_propTypes.default.string),setBccEmails:_propTypes.default.func,setCcEmails:_propTypes.default.func,setToEmails:_propTypes.default.func,setToEmailsForForward:_propTypes.default.func,isReplyOptionSelected:_propTypes.default.bool,isNoteOptionSelected:_propTypes.default.bool,isForwardOptionSelected:_propTypes.default.bool};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.TouchableOpacity=exports.Popover=void 0;var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _taggedTemplateLiteralLoose2=_interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));var _react=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _propTypes=_interopRequireDefault(require("prop-types"));var _reactNativePopoverView=_interopRequireDefault(require("react-native-popover-view"));var _reactNativeSizeMatters=require("react-native-size-matters");var _native=_interopRequireDefault(require("styled-components/native"));var _styledSystem=require("styled-system");var _=require("./");var _excluded=["children","data","fontFamily","fontSize"];var _templateObject,_this=this,_jsxFileName="/home/runner/work/neeto-ui-rn/neeto-ui-rn/src/components/Popover.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 TouchableOpacity=_native.default.TouchableOpacity(_templateObject||(_templateObject=(0,_taggedTemplateLiteralLoose2.default)(["\n ","\n ","\n ","\n ","\n ","\n"])),_styledSystem.space,_styledSystem.border,_styledSystem.color,_styledSystem.flexbox,_styledSystem.layout);exports.TouchableOpacity=TouchableOpacity;var PopOverItem=function PopOverItem(_ref){var item=_ref.item,onPress=_ref.onPress,fontFamily=_ref.fontFamily,fontSize=_ref.fontSize;var Icon=item.Icon,label=item.label,labelProps=item.labelProps;return _react.default.createElement(TouchableOpacity,{alignItems:"center",flexDirection:"row",p:(0,_reactNativeSizeMatters.moderateScale)(2),px:(0,_reactNativeSizeMatters.moderateScale)(
|
|
1
|
+
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.TouchableOpacity=exports.Popover=void 0;var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _taggedTemplateLiteralLoose2=_interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));var _react=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _propTypes=_interopRequireDefault(require("prop-types"));var _reactNativePopoverView=_interopRequireDefault(require("react-native-popover-view"));var _reactNativeSizeMatters=require("react-native-size-matters");var _native=_interopRequireDefault(require("styled-components/native"));var _styledSystem=require("styled-system");var _=require("./");var _excluded=["children","data","fontFamily","fontSize"];var _templateObject,_this=this,_jsxFileName="/home/runner/work/neeto-ui-rn/neeto-ui-rn/src/components/Popover.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 TouchableOpacity=_native.default.TouchableOpacity(_templateObject||(_templateObject=(0,_taggedTemplateLiteralLoose2.default)(["\n ","\n ","\n ","\n ","\n ","\n"])),_styledSystem.space,_styledSystem.border,_styledSystem.color,_styledSystem.flexbox,_styledSystem.layout);exports.TouchableOpacity=TouchableOpacity;var PopOverItem=function PopOverItem(_ref){var item=_ref.item,onPress=_ref.onPress,fontFamily=_ref.fontFamily,fontSize=_ref.fontSize,shouldShowDivider=_ref.shouldShowDivider;var Icon=item.Icon,label=item.label,labelProps=item.labelProps;return _react.default.createElement(_react.default.Fragment,null,_react.default.createElement(TouchableOpacity,{alignItems:"center",flexDirection:"row",p:(0,_reactNativeSizeMatters.moderateScale)(2),px:(0,_reactNativeSizeMatters.moderateScale)(8),py:(0,_reactNativeSizeMatters.moderateScale)(8),onPress:onPress,__self:_this,__source:{fileName:_jsxFileName,lineNumber:31,columnNumber:7}},_react.default.createElement(Icon,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:39,columnNumber:9}}),_react.default.createElement(_.Typography,(0,_extends2.default)({fontColor:"font.primary",fontFamily:fontFamily,fontSize:fontSize,px:(0,_reactNativeSizeMatters.moderateScale)(2)},labelProps,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:40,columnNumber:9}}),label)),shouldShowDivider&&_react.default.createElement(_.Divider,{backgroundColor:"background.grey200",mx:(0,_reactNativeSizeMatters.moderateScale)(8),__self:_this,__source:{fileName:_jsxFileName,lineNumber:51,columnNumber:9}}));};PopOverItem.propTypes={shouldShowDivider:_propTypes.default.bool,item:_propTypes.default.object,onPress:_propTypes.default.func,fontFamily:_propTypes.default.string,fontSize:_propTypes.default.oneOfType([_propTypes.default.number,_propTypes.default.oneOf(["3xs","2xs","xs","s","m","l","xl","2xl","3xl","4xl","5xl"])])};var Popover=function Popover(_ref2){var children=_ref2.children,data=_ref2.data,_ref2$fontFamily=_ref2.fontFamily,fontFamily=_ref2$fontFamily===void 0?null:_ref2$fontFamily,_ref2$fontSize=_ref2.fontSize,fontSize=_ref2$fontSize===void 0?"l":_ref2$fontSize,rest=(0,_objectWithoutProperties2.default)(_ref2,_excluded);var popoverRef=(0,_react.useRef)();var onPressItemRef=(0,_react.useRef)(function(){});return _react.default.createElement(_reactNativePopoverView.default,(0,_extends2.default)({popoverStyle:styles.popoverStyle,ref:popoverRef,onCloseComplete:function onCloseComplete(){return onPressItemRef.current();},onOpenStart:function onOpenStart(){onPressItemRef.current=function(){};}},rest,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:172,columnNumber:5}}),data==null?void 0:data.map(function(item,index){return _react.default.createElement(PopOverItem,{fontFamily:fontFamily,fontSize:fontSize,item:item,key:index,shouldShowDivider:index!==data.length-1,onPress:function onPress(){var _popoverRef$current;popoverRef==null?void 0:(_popoverRef$current=popoverRef.current)==null?void 0:_popoverRef$current.setState({isVisible:false});onPressItemRef.current=item.onPress;},__self:_this,__source:{fileName:_jsxFileName,lineNumber:182,columnNumber:9}});}),children);};exports.Popover=Popover;Popover.propTypes={children:_propTypes.default.node,data:_propTypes.default.array,fontFamily:_propTypes.default.string,fontSize:_propTypes.default.oneOfType([_propTypes.default.number,_propTypes.default.oneOf(["xs","s","m","l","xl","xxl"])])};var styles=_reactNative.StyleSheet.create({popoverStyle:{borderRadius:(0,_reactNativeSizeMatters.moderateScale)(10),padding:(0,_reactNativeSizeMatters.moderateScale)(5)}});
|
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:"#
|
|
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:"#2f3941",grey800:"#1f1f1f"};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
|
@@ -1,6 +1,14 @@
|
|
|
1
|
-
import React, {
|
|
1
|
+
import React, {
|
|
2
|
+
useEffect,
|
|
3
|
+
useRef,
|
|
4
|
+
useCallback,
|
|
5
|
+
useState,
|
|
6
|
+
forwardRef,
|
|
7
|
+
useImperativeHandle,
|
|
8
|
+
} from "react";
|
|
2
9
|
|
|
3
10
|
import PropTypes from "prop-types";
|
|
11
|
+
import Icon from "react-native-remix-icon";
|
|
4
12
|
import { moderateScale } from "react-native-size-matters";
|
|
5
13
|
import styled from "styled-components/native";
|
|
6
14
|
import {
|
|
@@ -19,7 +27,7 @@ import ForwardSVG from "@assets/icons/forward.svg";
|
|
|
19
27
|
import MinimizeSVG from "@assets/icons/minimize.svg";
|
|
20
28
|
import NoteSVG from "@assets/icons/note.svg";
|
|
21
29
|
import ReplySVG from "@assets/icons/reply.svg";
|
|
22
|
-
import { Container, LineLoader, Button } from "@components";
|
|
30
|
+
import { Container, LineLoader, Popover, Button } from "@components";
|
|
23
31
|
|
|
24
32
|
import { AttachmentsView } from "./AttachmentsView";
|
|
25
33
|
import { EmailFields } from "./EmailFields";
|
|
@@ -115,245 +123,309 @@ const TextInput = styled.TextInput`
|
|
|
115
123
|
* ```
|
|
116
124
|
*/
|
|
117
125
|
|
|
118
|
-
export const ChatInput = (
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
126
|
+
export const ChatInput = forwardRef(
|
|
127
|
+
(
|
|
128
|
+
{
|
|
129
|
+
shouldShowEmailFields,
|
|
130
|
+
showReplyMenuOptions,
|
|
131
|
+
value = "",
|
|
132
|
+
onChangeText = () => {},
|
|
133
|
+
onForward,
|
|
134
|
+
onCannedResponse,
|
|
135
|
+
toEmails: initialToEmails,
|
|
136
|
+
onReply = () => {},
|
|
137
|
+
onAddNote = () => {},
|
|
138
|
+
onAttachment = () => {},
|
|
139
|
+
attachmentsCount,
|
|
140
|
+
Attachments,
|
|
141
|
+
showCannedResponsesFor = [OPTION_TYPES.REPLY],
|
|
142
|
+
disabled,
|
|
143
|
+
isLoading = true,
|
|
144
|
+
onOptionChange = () => {},
|
|
145
|
+
initialSelectedOption = OPTION_TYPES.REPLY,
|
|
146
|
+
...rest
|
|
147
|
+
},
|
|
148
|
+
ref
|
|
149
|
+
) => {
|
|
150
|
+
const inputRef = useRef();
|
|
138
151
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
152
|
+
const [selectedOption, setSelectedOption] = useState(initialSelectedOption);
|
|
153
|
+
const [isEmailFieldsVisible, setIsEmailFieldsVisible] = useState(false);
|
|
154
|
+
const [isAttachmentsVisible, setIsAttachmentsVisible] = useState(false);
|
|
142
155
|
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
156
|
+
const isReplyOptionSelected = selectedOption === OPTION_TYPES.REPLY;
|
|
157
|
+
const isNoteOptionSelected = selectedOption === OPTION_TYPES.NOTE;
|
|
158
|
+
const isForwardOptionSelected = selectedOption === OPTION_TYPES.FORWARD;
|
|
146
159
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
160
|
+
const [toEmails, setToEmails] = useState(initialToEmails ?? []);
|
|
161
|
+
const [toEmailsForForward, setToEmailsForForward] = useState([]);
|
|
162
|
+
const [ccEmails, setCcEmails] = useState([]);
|
|
163
|
+
const [bccEmails, setBccEmails] = useState([]);
|
|
150
164
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
165
|
+
const moreReplyOptions = [
|
|
166
|
+
{
|
|
167
|
+
label: "Send and set as closed",
|
|
168
|
+
Icon: () => null,
|
|
169
|
+
onPress: () => {
|
|
170
|
+
onReply({ toEmails, ccEmails, bccEmails, status: "closed" });
|
|
171
|
+
},
|
|
172
|
+
},
|
|
173
|
+
];
|
|
154
174
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
175
|
+
useImperativeHandle(
|
|
176
|
+
ref,
|
|
177
|
+
() => ({
|
|
178
|
+
clearEmailFields: () => {
|
|
179
|
+
setToEmails(initialToEmails ?? []);
|
|
180
|
+
setToEmailsForForward([]);
|
|
181
|
+
setCcEmails([]);
|
|
182
|
+
setBccEmails([]);
|
|
183
|
+
inputRef.current.blur();
|
|
184
|
+
},
|
|
185
|
+
}),
|
|
186
|
+
[initialToEmails, isReplyOptionSelected]
|
|
187
|
+
);
|
|
158
188
|
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
} else {
|
|
163
|
-
setToEmails("");
|
|
164
|
-
}
|
|
165
|
-
}, [initialToEmails, isReplyOptionSelected]);
|
|
189
|
+
useEffect(() => {
|
|
190
|
+
onOptionChange(selectedOption);
|
|
191
|
+
}, [selectedOption]);
|
|
166
192
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
};
|
|
193
|
+
useEffect(() => {
|
|
194
|
+
setSelectedOption(initialSelectedOption);
|
|
195
|
+
}, [initialSelectedOption]);
|
|
171
196
|
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
};
|
|
197
|
+
useEffect(() => {
|
|
198
|
+
setToEmails(initialToEmails ?? []);
|
|
199
|
+
}, [initialToEmails]);
|
|
176
200
|
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
};
|
|
201
|
+
const showEmailFieldsAndAttachments = () => {
|
|
202
|
+
setIsAttachmentsVisible(true);
|
|
203
|
+
setIsEmailFieldsVisible(true);
|
|
204
|
+
};
|
|
182
205
|
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
setSelectedOption(OPTION_TYPES.NOTE);
|
|
188
|
-
};
|
|
206
|
+
const hideEmailFieldsAndAttachments = () => {
|
|
207
|
+
setIsAttachmentsVisible(false);
|
|
208
|
+
setIsEmailFieldsVisible(false);
|
|
209
|
+
};
|
|
189
210
|
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
};
|
|
211
|
+
const onReplyClickHandler = () => {
|
|
212
|
+
hideEmailFieldsAndAttachments();
|
|
213
|
+
inputRef.current.focus();
|
|
214
|
+
setSelectedOption(OPTION_TYPES.REPLY);
|
|
215
|
+
};
|
|
196
216
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
}
|
|
203
|
-
setIsEmailFieldsVisible(false);
|
|
204
|
-
setIsAttachmentsVisible(true);
|
|
205
|
-
};
|
|
217
|
+
const onAddNoteClickHandler = () => {
|
|
218
|
+
hideEmailFieldsAndAttachments();
|
|
219
|
+
inputRef.current.focus();
|
|
220
|
+
setIsEmailFieldsVisible(false);
|
|
221
|
+
setSelectedOption(OPTION_TYPES.NOTE);
|
|
222
|
+
};
|
|
206
223
|
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
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
|
-
]);
|
|
224
|
+
const onAddForwardClickHandler = () => {
|
|
225
|
+
inputRef.current.focus();
|
|
226
|
+
setIsEmailFieldsVisible(true);
|
|
227
|
+
setIsAttachmentsVisible(false);
|
|
228
|
+
setSelectedOption(OPTION_TYPES.FORWARD);
|
|
229
|
+
};
|
|
228
230
|
|
|
229
|
-
|
|
231
|
+
const onAddAttachmentsClickHandler = () => {
|
|
232
|
+
if (!isAttachmentsVisible && attachmentsCount > 0) {
|
|
233
|
+
// When attachments are not visible but there are few attachments then we no need to show the upload modal.
|
|
234
|
+
} else {
|
|
235
|
+
onAttachment();
|
|
236
|
+
}
|
|
237
|
+
setIsEmailFieldsVisible(false);
|
|
238
|
+
setIsAttachmentsVisible(true);
|
|
239
|
+
};
|
|
230
240
|
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
241
|
+
const onActionHandler = useCallback(() => {
|
|
242
|
+
({
|
|
243
|
+
[OPTION_TYPES.REPLY]: () => {
|
|
244
|
+
onReply({ toEmails, ccEmails, bccEmails });
|
|
245
|
+
},
|
|
246
|
+
[OPTION_TYPES.NOTE]: () => {
|
|
247
|
+
onAddNote({ toEmails, ccEmails, bccEmails });
|
|
248
|
+
},
|
|
249
|
+
[OPTION_TYPES.FORWARD]: () => {
|
|
250
|
+
onForward({ toEmails, ccEmails, bccEmails });
|
|
251
|
+
},
|
|
252
|
+
}[selectedOption]());
|
|
253
|
+
}, [
|
|
254
|
+
bccEmails,
|
|
255
|
+
ccEmails,
|
|
256
|
+
onAddNote,
|
|
257
|
+
onForward,
|
|
258
|
+
onReply,
|
|
259
|
+
selectedOption,
|
|
260
|
+
toEmails,
|
|
261
|
+
]);
|
|
262
|
+
|
|
263
|
+
const shouldShowExpandAndMinimizeButton =
|
|
264
|
+
attachmentsCount > 0 || toEmails.length > 0;
|
|
265
|
+
|
|
266
|
+
const shouldDisableWhenForwardAndToFieldMissing =
|
|
267
|
+
isForwardOptionSelected && toEmailsForForward.length === 0;
|
|
268
|
+
|
|
269
|
+
return (
|
|
270
|
+
<Container>
|
|
271
|
+
<LineLoader
|
|
272
|
+
backgroundColor={theme.colors.background.grey400}
|
|
273
|
+
isLoading={isLoading}
|
|
274
|
+
/>
|
|
275
|
+
<Container
|
|
276
|
+
bg={isNoteOptionSelected ? "background.oldLace" : "transparent"}
|
|
277
|
+
p={moderateScale(5)}
|
|
278
|
+
pt={0}
|
|
279
|
+
px={moderateScale(16)}
|
|
280
|
+
>
|
|
281
|
+
<Container pt={moderateScale(8)}>
|
|
282
|
+
<EmailFields
|
|
283
|
+
bccEmails={bccEmails}
|
|
284
|
+
ccEmails={ccEmails}
|
|
285
|
+
isEmailFieldsVisible={isEmailFieldsVisible}
|
|
286
|
+
isForwardOptionSelected={isForwardOptionSelected}
|
|
287
|
+
isNoteOptionSelected={isNoteOptionSelected}
|
|
288
|
+
isReplyOptionSelected={isReplyOptionSelected}
|
|
289
|
+
setBccEmails={setBccEmails}
|
|
290
|
+
setCcEmails={setCcEmails}
|
|
291
|
+
setIsEmailFieldsVisible={setIsEmailFieldsVisible}
|
|
292
|
+
setToEmails={setToEmails}
|
|
293
|
+
setToEmailsForForward={setToEmailsForForward}
|
|
294
|
+
shouldShowEmailFields={shouldShowEmailFields}
|
|
295
|
+
toEmails={toEmails}
|
|
296
|
+
toEmailsForForward={toEmailsForForward}
|
|
266
297
|
/>
|
|
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
298
|
<Container flexDirection="row" justifyContent="space-between">
|
|
302
|
-
<
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
299
|
+
<TextInput
|
|
300
|
+
multiline
|
|
301
|
+
flex={1}
|
|
302
|
+
maxHeight={moderateScale(150)}
|
|
303
|
+
my={moderateScale(12)}
|
|
304
|
+
overflow="hidden"
|
|
305
|
+
placeholder={placeholders[selectedOption]}
|
|
306
|
+
ref={inputRef}
|
|
307
|
+
value={value}
|
|
308
|
+
onChangeText={onChangeText}
|
|
309
|
+
onTouchStart={hideEmailFieldsAndAttachments}
|
|
310
|
+
{...rest}
|
|
312
311
|
/>
|
|
313
|
-
|
|
312
|
+
<Container alignSelf="center">
|
|
313
|
+
{shouldShowExpandAndMinimizeButton &&
|
|
314
|
+
(isEmailFieldsVisible || isAttachmentsVisible ? (
|
|
315
|
+
<IconButton
|
|
316
|
+
Icon={MinimizeSVG}
|
|
317
|
+
height={moderateScale(30)}
|
|
318
|
+
pt={moderateScale(8)}
|
|
319
|
+
width={moderateScale(30)}
|
|
320
|
+
onPress={hideEmailFieldsAndAttachments}
|
|
321
|
+
/>
|
|
322
|
+
) : (
|
|
323
|
+
<IconButton
|
|
324
|
+
Icon={ExpandSVG}
|
|
325
|
+
height={moderateScale(30)}
|
|
326
|
+
pt={moderateScale(8)}
|
|
327
|
+
width={moderateScale(30)}
|
|
328
|
+
onPress={showEmailFieldsAndAttachments}
|
|
329
|
+
/>
|
|
330
|
+
))}
|
|
331
|
+
</Container>
|
|
332
|
+
</Container>
|
|
333
|
+
<AttachmentsView
|
|
334
|
+
Attachments={Attachments}
|
|
335
|
+
attachmentsCount={attachmentsCount}
|
|
336
|
+
isAttachmentsVisible={isAttachmentsVisible}
|
|
337
|
+
isNoteOptionSelected={isNoteOptionSelected}
|
|
338
|
+
setIsAttachmentsVisible={setIsAttachmentsVisible}
|
|
339
|
+
/>
|
|
340
|
+
<Container
|
|
341
|
+
alignItems="center"
|
|
342
|
+
flexDirection="row"
|
|
343
|
+
justifyContent="space-between"
|
|
344
|
+
mt={moderateScale(10)}
|
|
345
|
+
>
|
|
346
|
+
<Container flexDirection="row" justifyContent="space-between">
|
|
314
347
|
<IconButton
|
|
315
|
-
Icon={
|
|
316
|
-
opacity={
|
|
317
|
-
|
|
348
|
+
Icon={ReplySVG}
|
|
349
|
+
opacity={isReplyOptionSelected ? 1 : 0.5}
|
|
350
|
+
pl={moderateScale(10)}
|
|
351
|
+
onPress={onReplyClickHandler}
|
|
318
352
|
/>
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
{onCannedResponse &&
|
|
326
|
-
showCannedResponsesFor.includes(selectedOption) && (
|
|
353
|
+
<IconButton
|
|
354
|
+
Icon={NoteSVG}
|
|
355
|
+
opacity={isNoteOptionSelected ? 1 : 0.5}
|
|
356
|
+
onPress={onAddNoteClickHandler}
|
|
357
|
+
/>
|
|
358
|
+
{onForward && (
|
|
327
359
|
<IconButton
|
|
328
|
-
Icon={
|
|
329
|
-
opacity={0.5}
|
|
330
|
-
onPress={
|
|
360
|
+
Icon={ForwardSVG}
|
|
361
|
+
opacity={isForwardOptionSelected ? 1 : 0.5}
|
|
362
|
+
onPress={onAddForwardClickHandler}
|
|
331
363
|
/>
|
|
332
364
|
)}
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
365
|
+
<Container
|
|
366
|
+
bg="background.grey400"
|
|
367
|
+
mx={moderateScale(5)}
|
|
368
|
+
p={moderateScale(0.4)}
|
|
369
|
+
/>
|
|
370
|
+
{onCannedResponse &&
|
|
371
|
+
showCannedResponsesFor.includes(selectedOption) && (
|
|
372
|
+
<IconButton
|
|
373
|
+
Icon={CannedResponseSVG}
|
|
374
|
+
opacity={0.5}
|
|
375
|
+
onPress={onCannedResponse}
|
|
376
|
+
/>
|
|
377
|
+
)}
|
|
378
|
+
<IconButton
|
|
379
|
+
Icon={AttachmentSVG}
|
|
380
|
+
opacity={0.5}
|
|
381
|
+
onPress={onAddAttachmentsClickHandler}
|
|
382
|
+
/>
|
|
383
|
+
</Container>
|
|
384
|
+
<Container alignItems="center" flexDirection="row">
|
|
385
|
+
<Button
|
|
386
|
+
height={moderateScale(30)}
|
|
387
|
+
label={labels[selectedOption]}
|
|
388
|
+
pr={0}
|
|
389
|
+
variant="text"
|
|
390
|
+
disabled={
|
|
391
|
+
shouldDisableWhenForwardAndToFieldMissing || disabled
|
|
392
|
+
}
|
|
393
|
+
labelStyle={{
|
|
394
|
+
mx: moderateScale(0),
|
|
395
|
+
}}
|
|
396
|
+
onPress={onActionHandler}
|
|
397
|
+
/>
|
|
398
|
+
{showReplyMenuOptions && isReplyOptionSelected && (
|
|
399
|
+
<Popover
|
|
400
|
+
data={moreReplyOptions}
|
|
401
|
+
from={
|
|
402
|
+
<Button
|
|
403
|
+
disabled={disabled}
|
|
404
|
+
height={moderateScale(30)}
|
|
405
|
+
label=""
|
|
406
|
+
p={0}
|
|
407
|
+
variant="text"
|
|
408
|
+
RightIcon={() => (
|
|
409
|
+
<Icon
|
|
410
|
+
color={theme.colors.background.grey800}
|
|
411
|
+
name="ri-arrow-down-s-line"
|
|
412
|
+
size={moderateScale(30)}
|
|
413
|
+
/>
|
|
414
|
+
)}
|
|
415
|
+
/>
|
|
416
|
+
}
|
|
417
|
+
/>
|
|
418
|
+
)}
|
|
419
|
+
</Container>
|
|
338
420
|
</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
421
|
</Container>
|
|
351
422
|
</Container>
|
|
352
423
|
</Container>
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
424
|
+
);
|
|
425
|
+
}
|
|
426
|
+
);
|
|
356
427
|
|
|
428
|
+
ChatInput.displayName = "ChatInput";
|
|
357
429
|
ChatInput.propTypes = {
|
|
358
430
|
/**
|
|
359
431
|
* If true, Shows loader
|
|
@@ -363,6 +435,10 @@ ChatInput.propTypes = {
|
|
|
363
435
|
* If true, Shows to, cc and bcc email inputs.
|
|
364
436
|
*/
|
|
365
437
|
shouldShowEmailFields: PropTypes.bool,
|
|
438
|
+
/**
|
|
439
|
+
* If true, Shows reply menu options
|
|
440
|
+
*/
|
|
441
|
+
showReplyMenuOptions: PropTypes.bool,
|
|
366
442
|
/**
|
|
367
443
|
* Value to make input component controllable.
|
|
368
444
|
*/
|
|
@@ -390,7 +466,7 @@ ChatInput.propTypes = {
|
|
|
390
466
|
/**
|
|
391
467
|
* Email list separated by comma.
|
|
392
468
|
*/
|
|
393
|
-
toEmails: PropTypes.string,
|
|
469
|
+
toEmails: PropTypes.arrayOf(PropTypes.string),
|
|
394
470
|
/**
|
|
395
471
|
* Callback to be called on click of reply icon.
|
|
396
472
|
*/
|
|
@@ -414,7 +490,9 @@ ChatInput.propTypes = {
|
|
|
414
490
|
/**
|
|
415
491
|
* Array for options to show canned responses. Example: ["reply","notes","forward"]
|
|
416
492
|
*/
|
|
417
|
-
showCannedResponsesFor: PropTypes.arrayOf(
|
|
493
|
+
showCannedResponsesFor: PropTypes.arrayOf(
|
|
494
|
+
PropTypes.oneOf(Object.values(OPTION_TYPES))
|
|
495
|
+
),
|
|
418
496
|
/**
|
|
419
497
|
* If true, Disables the reply, forward and add note button.
|
|
420
498
|
*/
|
|
@@ -12,19 +12,34 @@ export const EmailFields = ({
|
|
|
12
12
|
shouldShowEmailFields,
|
|
13
13
|
setIsEmailFieldsVisible,
|
|
14
14
|
isEmailFieldsVisible,
|
|
15
|
-
ccEmails,
|
|
16
15
|
toEmails,
|
|
16
|
+
toEmailsForForward,
|
|
17
|
+
ccEmails,
|
|
17
18
|
bccEmails,
|
|
19
|
+
setToEmails,
|
|
20
|
+
setToEmailsForForward,
|
|
18
21
|
setBccEmails,
|
|
19
22
|
setCcEmails,
|
|
20
|
-
|
|
23
|
+
isReplyOptionSelected,
|
|
24
|
+
isNoteOptionSelected,
|
|
25
|
+
isForwardOptionSelected,
|
|
21
26
|
}) => {
|
|
22
|
-
const firstToEmail =
|
|
27
|
+
const firstToEmail = isReplyOptionSelected
|
|
28
|
+
? toEmails[0]
|
|
29
|
+
: toEmailsForForward[0];
|
|
30
|
+
|
|
31
|
+
let badge = "";
|
|
32
|
+
if (firstToEmail) {
|
|
33
|
+
badge = `To ${firstToEmail}`;
|
|
34
|
+
} else if (isForwardOptionSelected) {
|
|
35
|
+
badge = "Click here to enter email id.";
|
|
36
|
+
}
|
|
23
37
|
|
|
24
38
|
const totalEmailsMinus1 =
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
39
|
+
toEmails.length +
|
|
40
|
+
toEmailsForForward.length +
|
|
41
|
+
ccEmails.length +
|
|
42
|
+
bccEmails.length -
|
|
28
43
|
1;
|
|
29
44
|
|
|
30
45
|
if (!shouldShowEmailFields) return null;
|
|
@@ -35,29 +50,33 @@ export const EmailFields = ({
|
|
|
35
50
|
key={isEmailFieldsVisible}
|
|
36
51
|
pb={moderateScale(10)}
|
|
37
52
|
>
|
|
53
|
+
{isReplyOptionSelected && (
|
|
54
|
+
<InputEmailChip
|
|
55
|
+
disabled
|
|
56
|
+
emails={toEmails}
|
|
57
|
+
label="To:"
|
|
58
|
+
onUpdate={setToEmails}
|
|
59
|
+
/>
|
|
60
|
+
)}
|
|
61
|
+
{isForwardOptionSelected && (
|
|
62
|
+
<InputEmailChip
|
|
63
|
+
disabled={false}
|
|
64
|
+
emails={toEmailsForForward}
|
|
65
|
+
label="To:"
|
|
66
|
+
onUpdate={setToEmailsForForward}
|
|
67
|
+
/>
|
|
68
|
+
)}
|
|
38
69
|
<InputEmailChip
|
|
39
70
|
disabled={false}
|
|
40
|
-
emails={
|
|
41
|
-
label="To:"
|
|
42
|
-
onUpdate={emails => {
|
|
43
|
-
setToEmails(emails.join(","));
|
|
44
|
-
}}
|
|
45
|
-
/>
|
|
46
|
-
<InputEmailChip
|
|
47
|
-
disabled={false}
|
|
48
|
-
emails={ccEmails.trim() ? ccEmails.split(",") : []}
|
|
71
|
+
emails={ccEmails}
|
|
49
72
|
label="Cc:"
|
|
50
|
-
onUpdate={
|
|
51
|
-
setCcEmails(emails.join(","));
|
|
52
|
-
}}
|
|
73
|
+
onUpdate={setCcEmails}
|
|
53
74
|
/>
|
|
54
75
|
<InputEmailChip
|
|
55
76
|
disabled={false}
|
|
56
|
-
emails={bccEmails
|
|
77
|
+
emails={bccEmails}
|
|
57
78
|
label="Bcc:"
|
|
58
|
-
onUpdate={
|
|
59
|
-
setBccEmails(emails.join(","));
|
|
60
|
-
}}
|
|
79
|
+
onUpdate={setBccEmails}
|
|
61
80
|
/>
|
|
62
81
|
</Animated.View>
|
|
63
82
|
) : (
|
|
@@ -67,11 +86,17 @@ export const EmailFields = ({
|
|
|
67
86
|
flexDirection="row"
|
|
68
87
|
flexWrap="wrap"
|
|
69
88
|
key={isEmailFieldsVisible}
|
|
89
|
+
style={
|
|
90
|
+
isNoteOptionSelected && {
|
|
91
|
+
height: moderateScale(0),
|
|
92
|
+
width: moderateScale(0),
|
|
93
|
+
}
|
|
94
|
+
}
|
|
70
95
|
onTouchStart={() => setIsEmailFieldsVisible(true)}
|
|
71
96
|
>
|
|
72
97
|
{toEmails.length > 0 && (
|
|
73
98
|
<>
|
|
74
|
-
<Badge text={
|
|
99
|
+
<Badge text={badge} />
|
|
75
100
|
{totalEmailsMinus1 > 1 && <Badge text={`+ ${totalEmailsMinus1}`} />}
|
|
76
101
|
</>
|
|
77
102
|
)}
|
|
@@ -83,10 +108,15 @@ EmailFields.propTypes = {
|
|
|
83
108
|
shouldShowEmailFields: PropTypes.bool,
|
|
84
109
|
isEmailFieldsVisible: PropTypes.bool,
|
|
85
110
|
setIsEmailFieldsVisible: PropTypes.func,
|
|
86
|
-
ccEmails: PropTypes.string,
|
|
87
|
-
toEmails: PropTypes.string,
|
|
88
|
-
|
|
111
|
+
ccEmails: PropTypes.arrayOf(PropTypes.string),
|
|
112
|
+
toEmails: PropTypes.arrayOf(PropTypes.string),
|
|
113
|
+
toEmailsForForward: PropTypes.arrayOf(PropTypes.string),
|
|
114
|
+
bccEmails: PropTypes.arrayOf(PropTypes.string),
|
|
89
115
|
setBccEmails: PropTypes.func,
|
|
90
116
|
setCcEmails: PropTypes.func,
|
|
91
117
|
setToEmails: PropTypes.func,
|
|
118
|
+
setToEmailsForForward: PropTypes.func,
|
|
119
|
+
isReplyOptionSelected: PropTypes.bool,
|
|
120
|
+
isNoteOptionSelected: PropTypes.bool,
|
|
121
|
+
isForwardOptionSelected: PropTypes.bool,
|
|
92
122
|
};
|
|
@@ -7,7 +7,7 @@ import { moderateScale } from "react-native-size-matters";
|
|
|
7
7
|
import styled from "styled-components/native";
|
|
8
8
|
import { flexbox, space, border, color, layout } from "styled-system";
|
|
9
9
|
|
|
10
|
-
import { Typography } from "@components";
|
|
10
|
+
import { Typography, Divider } from "@components";
|
|
11
11
|
|
|
12
12
|
export const TouchableOpacity = styled.TouchableOpacity`
|
|
13
13
|
${space}
|
|
@@ -17,32 +17,45 @@ export const TouchableOpacity = styled.TouchableOpacity`
|
|
|
17
17
|
${layout}
|
|
18
18
|
`;
|
|
19
19
|
|
|
20
|
-
const PopOverItem = ({
|
|
20
|
+
const PopOverItem = ({
|
|
21
|
+
item,
|
|
22
|
+
onPress,
|
|
23
|
+
fontFamily,
|
|
24
|
+
fontSize,
|
|
25
|
+
shouldShowDivider,
|
|
26
|
+
}) => {
|
|
21
27
|
const { Icon, label, labelProps } = item;
|
|
22
28
|
|
|
23
29
|
return (
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
<Typography
|
|
33
|
-
fontColor="font.primary"
|
|
34
|
-
fontFamily={fontFamily}
|
|
35
|
-
fontSize={fontSize}
|
|
36
|
-
px={moderateScale(2)}
|
|
37
|
-
{...labelProps}
|
|
30
|
+
<>
|
|
31
|
+
<TouchableOpacity
|
|
32
|
+
alignItems="center"
|
|
33
|
+
flexDirection="row"
|
|
34
|
+
p={moderateScale(2)}
|
|
35
|
+
px={moderateScale(8)}
|
|
36
|
+
py={moderateScale(8)}
|
|
37
|
+
onPress={onPress}
|
|
38
38
|
>
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
39
|
+
<Icon />
|
|
40
|
+
<Typography
|
|
41
|
+
fontColor="font.primary"
|
|
42
|
+
fontFamily={fontFamily}
|
|
43
|
+
fontSize={fontSize}
|
|
44
|
+
px={moderateScale(2)}
|
|
45
|
+
{...labelProps}
|
|
46
|
+
>
|
|
47
|
+
{label}
|
|
48
|
+
</Typography>
|
|
49
|
+
</TouchableOpacity>
|
|
50
|
+
{shouldShowDivider && (
|
|
51
|
+
<Divider backgroundColor="background.grey200" mx={moderateScale(8)} />
|
|
52
|
+
)}
|
|
53
|
+
</>
|
|
42
54
|
);
|
|
43
55
|
};
|
|
44
56
|
|
|
45
57
|
PopOverItem.propTypes = {
|
|
58
|
+
shouldShowDivider: PropTypes.bool,
|
|
46
59
|
item: PropTypes.object,
|
|
47
60
|
onPress: PropTypes.func,
|
|
48
61
|
fontFamily: PropTypes.string,
|
|
@@ -171,6 +184,7 @@ export const Popover = ({
|
|
|
171
184
|
fontSize={fontSize}
|
|
172
185
|
item={item}
|
|
173
186
|
key={index}
|
|
187
|
+
shouldShowDivider={index !== data.length - 1}
|
|
174
188
|
onPress={() => {
|
|
175
189
|
popoverRef?.current?.setState({ isVisible: false });
|
|
176
190
|
onPressItemRef.current = item.onPress;
|
|
@@ -201,5 +215,8 @@ Popover.propTypes = {
|
|
|
201
215
|
};
|
|
202
216
|
|
|
203
217
|
const styles = StyleSheet.create({
|
|
204
|
-
popoverStyle: {
|
|
218
|
+
popoverStyle: {
|
|
219
|
+
borderRadius: moderateScale(10),
|
|
220
|
+
padding: moderateScale(5),
|
|
221
|
+
},
|
|
205
222
|
});
|
package/src/theme/index.js
CHANGED