UNPKG

@nethesis/phone-island

Version:
3 lines (2 loc) 12.5 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../node_modules/tslib/tslib.es6.js"),t=require("react"),i=require("../Button.js");require("../../node_modules/react-redux/es/index.js");var a=require("../../node_modules/@fortawesome/react-fontawesome/index.es.js"),r=require("../../lib/island/island.js"),n=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),l=require("../../lib/phone/call.js");require("../../node_modules/@babel/runtime/helpers/defineProperty.js"),require("../../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"),require("../../node_modules/@babel/runtime/helpers/typeof.js"),require("../../node_modules/html-parse-stringify/dist/html-parse-stringify.js"),require("../../node_modules/react-i18next/dist/es/context.js");var o=require("../../node_modules/react-i18next/dist/es/useTranslation.js");require("../../node_modules/@babel/runtime/helpers/slicedToArray.js");var s=require("../../utils/customHooks/useEventListener.js"),u=require("../../utils/genericFunctions/eventDispatch.js");require("../../store/index.js");var c=require("../CustomThemedTooltip.js"),d=require("../../services/phonebook.js"),p=require("./SelectContactNumberView.js"),m=require("../../node_modules/lodash/debounce.js"),f=require("./ListAvatar.js"),v=require("../../node_modules/react-redux/es/hooks/useSelector.js"),h=require("../../node_modules/react-redux/es/hooks/useDispatch.js");function g(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var b=g(t);exports.ContactListView=function(){var g=v.useSelector((function(e){return e.island})),x=g.isOpen,E=g.contactListView,y=v.useSelector((function(e){return e.users})).endpoints,N=v.useSelector((function(e){return e.currentUser})).username,w=t.useState(!1),k=w[0],j=w[1],C=t.useState([]),T=C[0],_=C[1],q=t.useState([]),P=q[0],L=q[1],S=t.useState(),A=S[0],I=S[1],F=t.useState(!0),B=F[0],H=F[1],O=t.useState(""),z=O[0],D=O[1],V=t.useState(),M=V[0],R=V[1],U=t.useRef(null),W=t.useState(!1),$=W[0],G=W[1],J=t.useState(10),K=J[0],Q=J[1],X=h.useDispatch(),Y=v.useSelector((function(e){return e.currentCall})).paused,Z=t.useMemo((function(){return e.__spreadArray(e.__spreadArray([],T,!0),P,!0)}),[T,P]),ee=t.useRef(m.default((function(e){ie(e)}),300)).current;function te(e){if(void 0===e&&(e=""),e=e.trim().toLowerCase(),y){var t=null==Object?void 0:Object.values(y).filter((function(t){var i,a,r,n,l;return(null==t?void 0:t.username)!==N&&((null===(i=null==t?void 0:t.endpoints)||void 0===i?void 0:i.extension.find((function(t){var i,a;return null===(a=null===(i=null==t?void 0:t.id)||void 0===i?void 0:i.toLowerCase())||void 0===a?void 0:a.startsWith(e)})))||(null===(r=null===(a=null==t?void 0:t.username)||void 0===a?void 0:a.toLowerCase())||void 0===r?void 0:r.includes(e))||(null===(l=null===(n=null==t?void 0:t.name)||void 0===n?void 0:n.toLowerCase())||void 0===l?void 0:l.includes(e)))}));_(t)}}function ie(t){return void 0===t&&(t=""),e.__awaiter(this,void 0,void 0,(function(){var i,a;return e.__generator(this,(function(e){switch(e.label){case 0:j(!1),t=t.trim().toLowerCase(),/^[0-9*#+]+$/.test(t)?R(!0):R(!1),e.label=1;case 1:return e.trys.push([1,3,,4]),[4,d.searchPhonebook(1,t,"")];case 2:return i=e.sent(),L(i.rows),[3,4];case 3:return a=e.sent(),console.error("Error fetching phonebook:",a),[3,4];case 4:return j(!0),[2]}}))}))}function ae(e){return e&&"object"==typeof e&&"endpoints"in e&&"username"in e}function re(e){return e&&"object"==typeof e&&"source"in e&&"name"in e}function ne(e){var t;return null===(t=["online","voicemail","cellphone","callforward"])||void 0===t?void 0:t.includes(e)}t.useEffect((function(){return function(){ee.cancel()}}),[ee]),s.useEventListener("phone-island-call-transfer",(function(e){l.handleAttendedTransfer(e.number,X),u.eventDispatch("phone-island-call-transfer-opened",{})})),t.useEffect((function(){y&&N&&(te(z),B&&(ie(z),H(!1)))}),[y,N]),t.useEffect((function(){var e,t,i=function(){var e,t,i;G(!!(U.current&&U.current.scrollTop>3)),U.current&&(null===(e=U.current)||void 0===e?void 0:e.offsetHeight)+(null===(t=U.current)||void 0===t?void 0:t.scrollTop)>=(null===(i=U.current)||void 0===i?void 0:i.scrollHeight)-10&&Q((function(e){return e+10}))};return x?null===(e=U.current)||void 0===e||e.addEventListener("scroll",i):null===(t=U.current)||void 0===t||t.removeEventListener("scroll",i),function(){var e;return null===(e=U.current)||void 0===e?void 0:e.removeEventListener("scroll",i)}}),[x]);var le=o.useTranslation().t,oe=b.default.createElement("div",{className:"pi-relative pi-flex pi-flex-col"},b.default.createElement("div",{className:"pi-relative pi-z-50"},b.default.createElement("div",{className:"pi-flex pi-gap-4"},b.default.createElement(i.Button,{variant:"transparent",onClick:function(){l.isInsideConferenceList()&&u.eventDispatch("phone-island-conference-list-close",{}),Y&&u.eventDispatch("phone-island-call-unhold",{}),r.backToPreviousView()},"data-tooltip-id":"contact-list-tooltip-back-to-call","data-tooltip-content":le("Tooltip.Back to call")||""},b.default.createElement(a.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:n.faArrowLeft})),b.default.createElement("input",{"data-stop-propagation":!0,type:"text",onChange:function(e){D(e.currentTarget.value),ee(e.currentTarget.value),te(e.currentTarget.value)},value:z,placeholder:le("Common.Search contact or phone number")||"",autoFocus:!0,spellCheck:!1,className:"pi-w-full pi-rounded-full dark:pi-bg-gray-950 pi-bg-gray-50 pi-border-2 pi-border-emerald-500 dark:pi-border-emerald-200 active:pi-border-emerald-500 dark:active:pi-border-emerald-200 focus:pi-border-emerald-500 dark:focus:pi-border-emerald-200 pi-text-gray-900 dark:pi-text-gray-50 pi-font-light pi-text-sm pi-px-5 focus:pi-outline-0 focus:pi-ring-0 pi-placeholder-gray-400 dark:pi-placeholder-gray-500 pi-font-[inherit]"}))),!k&&b.default.createElement("div",{className:"pi-mt-6"},Array.from({length:5}).map((function(e,t){return b.default.createElement("div",{key:t,className:"pi-animate-pulse pi-flex pi-items-center pi-space-x-4 pi-px-3 pi-py-1"},b.default.createElement("div",{className:"pi-flex pi-items-center pi-justify-center"},b.default.createElement("div",{className:"pi-rounded-full pi-h-12 pi-w-12 pi-bg-gray-300 dark:pi-bg-gray-700"})),b.default.createElement("div",{className:"pi-flex pi-flex-col pi-gap-2 pi-w-full"},b.default.createElement("div",{className:"pi-h-3 pi-w-4/5 pi-rounded pi-bg-gray-300 dark:pi-bg-gray-700"}),b.default.createElement("div",{className:"pi-h-3 pi-w-1/2 pi-rounded pi-bg-gray-300 dark:pi-bg-gray-700"})),b.default.createElement("div",{className:"pi-flex pi-items-center pi-justify-center pi-pr-2"},b.default.createElement("div",{className:"pi-rounded-full pi-h-12 pi-w-12 pi-bg-gray-300 dark:pi-bg-gray-700"})))}))),b.default.createElement("div",{className:k?"":"pi-hidden"},b.default.createElement("div",{className:"pi-z-30 pi-h-6 pi-pointer-events-none pi-bg-transparent pi-mt-7 pi-pr-4"},$&&b.default.createElement("div",{className:"pi-h-6 pi-w-full pi-bg-gradient-to-b dark:pi-from-black pi-from-gray-100 pi-to-transparent pi-z-100"})),b.default.createElement("div",{style:{marginTop:"-22px"},className:"pi-flex pi-flex-col pi-gap-7"},b.default.createElement("div",{style:{height:"17rem"},ref:U,className:"pi-relative pi-w-full pi-flex pi-flex-col pi-gap-1 pi-overflow-y-auto pi-overflow-x-hidden pi-scrollbar-thin pi-scrollbar-thumb-gray-400 pi-scrollbar-thumb-rounded-full pi-scrollbar-thumb-opacity-50 dark:pi-scrollbar-track-gray-900 pi-scrollbar-track-gray-200 pi-scrollbar-track-rounded-full pi-scrollbar-track-opacity-25"},M&&b.default.createElement("div",{className:"pi-flex pi-items-center pi-w-full pi-justify-between pi-px-3 pi-py-1 pi-rounded-md hover:pi-bg-gray-200 hover:dark:pi-bg-gray-800"},b.default.createElement("div",{className:"pi-flex pi-items-center pi-gap-4"},b.default.createElement(f.default,{placeHolderIcon:n.faUser}),b.default.createElement("div",null,b.default.createElement("div",{className:"pi-h-fit pi-max-w-48 pi-truncate pi-text-sm pi-font-medium"},le("Common.Phone number entered")),b.default.createElement("div",{className:"pi-text-sm pi-max-w-48 pi-text-gray-700 dark:pi-text-gray-300"},z))),b.default.createElement("div",{className:"pi-flex pi-gap-3.5"},b.default.createElement(i.Button,{onClick:function(){return l.clickTransferOrConference(z,X)},variant:"green","data-tooltip-id":"contact-list-tooltip-call-to-transfer","data-tooltip-content":l.isInsideConferenceList()?le("Conference.Add participant"):le("Tooltip.Transfer call")},b.default.createElement(a.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:n.faPhone})))),Z&&Z.slice(0,K).map((function(e,t){return b.default.createElement("div",{key:t,className:"pi-flex pi-items-center pi-w-full pi-justify-between pi-px-3 pi-py-1 pi-rounded-md hover:pi-bg-gray-200 hover:dark:pi-bg-gray-800"},b.default.createElement("div",{className:"pi-flex pi-items-center pi-gap-4"},function(){var t,i;return ae(e)?b.default.createElement(b.default.Fragment,null,b.default.createElement(f.default,{username:null==e?void 0:e.username,status:null==e?void 0:e.mainPresence,placeHolderIcon:n.faHeadset}),b.default.createElement("div",null,b.default.createElement("div",{"data-stop-propagation":!0,className:"pi-h-fit pi-max-w-48 pi-truncate pi-text-sm pi-font-medium"},e.name),b.default.createElement("div",{className:"pi-text-sm pi-max-w-48 pi-text-gray-700 dark:pi-text-gray-300"},null===(i=null===(t=null==e?void 0:e.endpoints)||void 0===t?void 0:t.mainextension[0])||void 0===i?void 0:i.id))):re(e)?b.default.createElement(b.default.Fragment,null,b.default.createElement(f.default,{placeHolderIcon:"person"===(null==e?void 0:e.kind)?n.faUser:n.faBuilding}),b.default.createElement("div",null,b.default.createElement("div",{"data-stop-propagation":!0,className:"pi-h-fit pi-max-w-48 pi-truncate pi-text-sm pi-font-medium"},(null==e?void 0:e.displayName)||"-"),b.default.createElement("div",{className:"pi-text-sm pi-max-w-48 pi-text-gray-700 dark:pi-text-gray-300"},b.default.createElement("span",null,d.getMainPhoneNumber(e)||"-"),d.getTotalPhoneNumbers(e)>1&&b.default.createElement("span",{className:"pi-ml-2"},le("Common.plus_x_others",{count:d.getTotalPhoneNumbers(e)-1}))))):void 0}()),b.default.createElement("div",{className:"pi-flex pi-gap-3.5"},ae(e)?b.default.createElement(i.Button,{onClick:function(){var t,i;return ne(null==e?void 0:e.mainPresence)&&l.clickTransferOrConference(null===(i=null===(t=null==e?void 0:e.endpoints)||void 0===t?void 0:t.mainextension[0])||void 0===i?void 0:i.id,X)},variant:"green",disabled:!ne(null==e?void 0:e.mainPresence),"data-tooltip-id":ne(null==e?void 0:e.mainPresence)?"contact-list-tooltip-left":"","data-tooltip-content":l.isInsideConferenceList()?le("Conference.Add participant"):le("Tooltip.Transfer call")},b.default.createElement(a.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:n.faPhone})):re(e)?d.getTotalPhoneNumbers(e)<2?b.default.createElement(i.Button,{onClick:function(){return l.clickTransferOrConference(d.getMainPhoneNumber(e),X)},variant:"green",disabled:0==d.getTotalPhoneNumbers(e),"data-tooltip-id":d.getTotalPhoneNumbers(e)>0?"contact-list-tooltip-left":"","data-tooltip-content":l.isInsideConferenceList()?le("Conference.Add participant"):le("Tooltip.Transfer call")},b.default.createElement(a.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:n.faPhone})):b.default.createElement(i.Button,{onClick:function(){return I(e),void X.island.setContactListView("selectContactNumber")},variant:"transparent","data-tooltip-id":"contact-list-tooltip-left","data-tooltip-content":le("Tooltip.Select phone number")},b.default.createElement(a.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:n.faAngleRight})):void 0))})),0===Z.length&&!M&&b.default.createElement("p",{className:" pi-font-medium pi-w-full pi-flex pi-justify-center pi-text-sm"},le("No contacts found"))))));return b.default.createElement(b.default.Fragment,null,function(){switch(E){case"main":default:return oe;case"selectContactNumber":return b.default.createElement(p.SelectContactNumberView,{contact:A})}}(),b.default.createElement(c.CustomThemedTooltip,{className:"pi-z-1000",id:"contact-list-tooltip-left",place:"left"}),b.default.createElement(c.CustomThemedTooltip,{className:"pi-z-1000",id:"contact-list-tooltip-back-to-call",place:"right"}),b.default.createElement(c.CustomThemedTooltip,{className:"pi-z-1000",id:"contact-list-tooltip-call-to-transfer",place:"left"}))}; //# sourceMappingURL=ContactListView.js.map