@nethesis/phone-island 0.8.42 → 0.8.43
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -0
- package/dist/App.js +1 -1
- package/dist/App.js.map +1 -1
- package/package.json +4 -2
package/README.md
CHANGED
|
@@ -146,3 +146,9 @@ As you can see the app/component can be built in two ways.
|
|
|
146
146
|
|
|
147
147
|
- The component library built with Rollup
|
|
148
148
|
- The widget files built with Parcel
|
|
149
|
+
|
|
150
|
+
```
|
|
151
|
+
npm build-pack
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
It's useful to create a new local version of phone-island that could be imported in any project with some debug command
|
package/dist/App.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),n=require("./components/Events.js"),t=require("./components/Socket.js"),s=require("./components/WebRTC.js"),i=require("./components/Island.js"),o=require("./components/RestAPI.js"),a=require("./utils/customHooks/useEventListener.js"),r=require("./utils/genericFunctions/eventDispatch.js"),c=require("./utils/genericFunctions/localStorage.js");require("./node_modules/react-redux/es/index.js");var d=require("./store/index.js");require("./node_modules/@fortawesome/react-fontawesome/index.es.js"),require("./node_modules/i18next/dist/esm/i18next.js");var u=require("./node_modules/js-base64/base64.mjs.js"),l=require("./workers/wake_up.js"),p=require("./lib/i18n.js");require("./node_modules/react-tooltip/dist/react-tooltip.min.css.js");var h=require("./lib/webrtc/messages.js"),v=require("./lib/darkTheme.js"),f=require("./services/user.js"),m=require("./utils/genericFunctions/isEmpty.js"),g=require("./utils/genericFunctions/checkConnection.js"),E=require("./node_modules/react-redux/es/components/Provider.js");function j(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js"),require("./node_modules/react-redux/node_modules/react-is/index.js"),require("./node_modules/react-redux/es/components/Context.js");var I=j(e),q=function(j){var q=j.dataConfig,D=j.i18nLoadPath,k=void 0===D?void 0:D,S=j.showAlways,y=void 0!==S&&S,L=j.uaType,w=u.Base64.atob(q||"").split(":"),x=w[0],b=w[1],P=w[2],_=w[3],
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),n=require("./components/Events.js"),t=require("./components/Socket.js"),s=require("./components/WebRTC.js"),i=require("./components/Island.js"),o=require("./components/RestAPI.js"),a=require("./utils/customHooks/useEventListener.js"),r=require("./utils/genericFunctions/eventDispatch.js"),c=require("./utils/genericFunctions/localStorage.js");require("./node_modules/react-redux/es/index.js");var d=require("./store/index.js");require("./node_modules/@fortawesome/react-fontawesome/index.es.js"),require("./node_modules/i18next/dist/esm/i18next.js");var u=require("./node_modules/js-base64/base64.mjs.js"),l=require("./workers/wake_up.js"),p=require("./lib/i18n.js");require("./node_modules/react-tooltip/dist/react-tooltip.min.css.js");var h=require("./lib/webrtc/messages.js"),v=require("./lib/darkTheme.js"),f=require("./services/user.js"),m=require("./utils/genericFunctions/isEmpty.js"),g=require("./utils/genericFunctions/checkConnection.js"),E=require("./node_modules/react-redux/es/components/Provider.js");function j(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js"),require("./node_modules/react-redux/node_modules/react-is/index.js"),require("./node_modules/react-redux/es/components/Context.js");var I=j(e),q=function(j){var q=j.dataConfig,D=j.i18nLoadPath,k=void 0===D?void 0:D,S=j.showAlways,y=void 0!==S&&S,L=j.uaType,w=u.Base64.atob(q||"").split(":"),x=w[0],b=w[1],P=w[2],_=w[3],T=w[4],C=w[5],O=w[6],A=e.useState(!1),N=A[0],F=A[1],R=e.useState(!1),U=R[0],V=R[1],H=e.useState(!1),J=H[0],W=H[1];e.useEffect((function(){var e=new Worker(l.default,{type:"module"});return e.onmessage=function(e){"wakeup"===e.data&&F(!0)},function(){e.terminate()}}),[]),e.useEffect((function(){J&&U&&(F(!1),V(!1),W(!1))}),[J,U]),a.useEventListener("phone-island-expand",(function(){d.store.dispatch.island.toggleIsOpen(!0),r.eventDispatch("phone-island-expanded",{})})),a.useEventListener("phone-island-compress",(function(){d.store.dispatch.island.toggleIsOpen(!1),r.eventDispatch("phone-island-compressed",{})})),a.useEventListener("phone-island-call-keypad-close",(function(){d.store.dispatch.island.setIslandView("call"),r.eventDispatch("phone-island-call-keypad-closed",{})})),a.useEventListener("phone-island-call-transfer-close",(function(){d.store.dispatch.island.setIslandView("call"),r.eventDispatch("phone-island-call-transfer-closed",{})})),a.useEventListener("phone-island-recording-close",(function(){d.store.dispatch.island.setIslandView(null),r.eventDispatch("phone-island-recording-closed",{})})),a.useEventListener("phone-island-audio-player-close",(function(){d.store.dispatch.island.setIslandView(null),r.eventDispatch("phone-island-audio-player-closed",{})})),a.useEventListener("phone-island-detach",(function(e){h.detach(),r.eventDispatch("phone-island-detached",{})})),a.useEventListener("phone-island-audio-input-change",(function(e){c.setJSONItem("phone-island-audio-input-device",{deviceId:e.deviceId}),r.eventDispatch("phone-island-audio-input-changed",{})})),a.useEventListener("phone-island-audio-output-change",(function(e){var n=d.store.getState().player.remoteAudio;null==n||n.current.setSinkId(e.deviceId).then((function(){console.info("Default audio output device change with success!"),c.setJSONItem("phone-island-audio-output-device",{deviceId:e.deviceId}),r.eventDispatch("phone-island-audio-output-changed",{})})).catch((function(e){console.error("Default audio output device change error:",e)}))})),a.useEventListener("phone-island-presence-change",(function(e){f.changeOperatorStatus(e),r.eventDispatch("phone-island-presence-changed",{})}));var M=e.useState(!0),B=M[0],z=M[1],G=e.useState(!0),K=G[0],Q=G[1];e.useEffect((function(){B&&(p.loadI18n(k),z(!1))}),[B]);var X=d.store.getState().player.remoteAudio;return e.useEffect((function(){var e;if(K&&X){var n=null===(e=c.getJSONItem("phone-island-audio-output-device"))||void 0===e?void 0:e.deviceId;r.eventDispatch("phone-island-audio-output-change",{deviceId:n}),Q(!1)}}),[K,X]),e.useEffect((function(){v.checkDarkTheme()}),[]),a.useEventListener("phone-island-theme-change",(function(e){v.setTheme(null==e?void 0:e.selectedTheme)})),a.useEventListener("phone-island-default-device-change",(function(e){d.store.dispatch.currentUser.updateCurrentDefaultDevice(null==e?void 0:e.deviceInformationObject),r.eventDispatch("phone-island-default-device-changed",{})})),a.useEventListener("phone-island-alert",(function(e){d.store.dispatch.alerts.setAlert(e.toString())})),a.useEventListener("phone-island-check-connection",(function(){g.checkInternetConnection().then((function(e){e?r.eventDispatch("phone-island-internet-connected",{}):r.eventDispatch("phone-island-internet-disconnected",{})}))})),e.useEffect((function(){var e=setInterval((function(){g.checkInternetConnection().then((function(e){e?r.eventDispatch("phone-island-internet-connected",{}):r.eventDispatch("phone-island-internet-disconnected",{})}))}),5e3);return function(){return clearInterval(e)}}),[]),a.useEventListener("phone-island-main-presence",(function(e){var n,t,s,i,o=null===(n=d.store.getState().currentUser)||void 0===n?void 0:n.username,a=d.store.getState().currentUser,c=null==a?void 0:a.mainPresence;if(void 0!==o&&""!==o&&!m.isEmpty(e[o])&&void 0!==(null===(t=e[o])||void 0===t?void 0:t.mainPresence)){var u=null===(s=e[o])||void 0===s?void 0:s.mainPresence;d.store.dispatch.currentUser.updateMainPresence(null===(i=e[o])||void 0===i?void 0:i.mainPresence),"online"===u&&"online"!==c&&r.eventDispatch("phone-island-call-ended",{})}})),I.default.createElement(I.default.Fragment,null,I.default.createElement(E.default,{store:d.store},I.default.createElement(s.WebRTC,{hostName:x,sipExten:_,sipSecret:T,sipHost:C,sipPort:O,reload:N,reloadedCallback:function(){return V(!0)},uaType:L},I.default.createElement(o.RestAPI,{hostName:x,username:b,authToken:P},I.default.createElement(t.Socket,{hostName:x,username:b,authToken:P,reload:N,reloadedCallback:function(){return W(!0)},uaType:L},I.default.createElement(n.Events,{sipHost:C},I.default.createElement(i.Island,{showAlways:y})))))))};q.displayName="PhoneIsland",exports.PhoneIsland=q;
|
|
2
2
|
//# sourceMappingURL=App.js.map
|
package/dist/App.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"App.js","sources":["../src/App.tsx"],"sourcesContent":["import React, { type FC, useState, useEffect } from 'react'\nimport { Events, Socket, WebRTC, Island, RestAPI } from './components'\nimport { Provider } from 'react-redux'\nimport { store } from './store'\nimport { Base64 } from 'js-base64'\nimport wakeUpWorker from './workers/wake_up'\nimport loadI18n from './lib/i18n'\nimport i18next, { i18n } from 'i18next'\n\nimport 'react-tooltip/dist/react-tooltip.css'\nimport { useEventListener, eventDispatch, setJSONItem, getJSONItem } from './utils'\nimport { detach } from './lib/webrtc/messages'\nimport { checkDarkTheme, setTheme } from './lib/darkTheme'\nimport { changeOperatorStatus } from './services/user'\nimport { isEmpty } from './utils/genericFunctions/isEmpty'\nimport { checkInternetConnection } from './utils/genericFunctions/checkConnection'\n\ninterface PhoneIslandProps {\n dataConfig: string\n i18nLoadPath?: string\n showAlways?: boolean\n uaType: string\n}\n\ninterface DeviceInputOutputTypes {\n deviceId: string\n}\n\nexport const PhoneIsland: FC<PhoneIslandProps> = ({\n dataConfig,\n i18nLoadPath = undefined,\n showAlways = false,\n uaType,\n}: PhoneIslandProps) => {\n const CONFIG: string[] = Base64.atob(dataConfig || '').split(':')\n const HOST_NAME: string = CONFIG[0]\n const USERNAME: string = CONFIG[1]\n const AUTH_TOKEN: string = CONFIG[2]\n const SIP_EXTEN: string = CONFIG[3]\n const SIP_SECRET: string = CONFIG[4]\n const SIP_HOST: string = CONFIG[5]\n const SIP_PORT: string = CONFIG[6]\n\n // Initialize the state to manage the reload events\n const [reload, setReload] = useState<boolean>(false)\n const [reloadedWebRTC, setReloadedWebRTC] = useState<boolean>(false)\n const [reloadedSocket, setReloadedSocket] = useState<boolean>(false)\n\n useEffect(() => {\n const worker = new Worker(wakeUpWorker, { type: 'module' })\n worker.onmessage = (event: MessageEvent<string>) => {\n // Handle wakeup message\n if (event.data === 'wakeup') {\n setReload(true)\n }\n }\n\n return () => {\n worker.terminate()\n }\n }, [])\n\n useEffect(() => {\n if (reloadedSocket && reloadedWebRTC) {\n setReload(false)\n setReloadedWebRTC(false)\n setReloadedSocket(false)\n }\n }, [reloadedSocket, reloadedWebRTC])\n\n useEventListener('phone-island-expand', () => {\n store.dispatch.island.toggleIsOpen(true)\n eventDispatch('phone-island-expanded', {})\n })\n useEventListener('phone-island-compress', () => {\n store.dispatch.island.toggleIsOpen(false)\n eventDispatch('phone-island-compressed', {})\n })\n\n useEventListener('phone-island-call-keypad-close', () => {\n store.dispatch.island.setIslandView('call')\n eventDispatch('phone-island-call-keypad-closed', {})\n })\n useEventListener('phone-island-call-transfer-close', () => {\n store.dispatch.island.setIslandView('call')\n eventDispatch('phone-island-call-transfer-closed', {})\n })\n useEventListener('phone-island-recording-close', () => {\n store.dispatch.island.setIslandView(null)\n eventDispatch('phone-island-recording-closed', {})\n })\n useEventListener('phone-island-audio-player-close', () => {\n store.dispatch.island.setIslandView(null)\n eventDispatch('phone-island-audio-player-closed', {})\n })\n\n useEventListener('phone-island-detach', (data) => {\n detach()\n store.dispatch.currentUser.updateCurrentDefaultDevice(data?.deviceInformationObject)\n eventDispatch('phone-island-detached', {})\n })\n\n useEventListener('phone-island-audio-input-change', (data: DeviceInputOutputTypes) => {\n setJSONItem('phone-island-audio-input-device', { deviceId: data.deviceId })\n eventDispatch('phone-island-audio-input-changed', {})\n })\n\n useEventListener('phone-island-audio-output-change', (data: DeviceInputOutputTypes) => {\n const remoteAudioElement: any = store.getState().player.remoteAudio\n // set audio output\n remoteAudioElement?.current\n .setSinkId(data.deviceId)\n .then(function () {\n console.info('Default audio output device change with success!')\n // set device to localstorage\n setJSONItem('phone-island-audio-output-device', { deviceId: data.deviceId })\n\n // dispatch event\n eventDispatch('phone-island-audio-output-changed', {})\n })\n .catch(function (err) {\n console.error('Default audio output device change error:', err)\n })\n })\n\n // Listen for the operator status change\n useEventListener('phone-island-presence-change', (data: any) => {\n changeOperatorStatus(data)\n eventDispatch('phone-island-presence-changed', {})\n })\n\n const [firstRenderI18n, setFirstRenderI18n] = useState(true)\n const [firstAudioOutputInit, setFirstAudioOutputInit] = useState(true)\n\n //initialize i18n\n useEffect(() => {\n if (firstRenderI18n) {\n loadI18n(i18nLoadPath)\n setFirstRenderI18n(false)\n }\n }, [firstRenderI18n])\n\n const remoteAudioElement: any = store.getState().player.remoteAudio\n\n //get output device from localstorage\n useEffect(() => {\n if (firstAudioOutputInit && remoteAudioElement) {\n const defaultAudioOutputDevice: any = getJSONItem(\n `phone-island-audio-output-device`,\n )?.deviceId\n eventDispatch('phone-island-audio-output-change', { deviceId: defaultAudioOutputDevice })\n setFirstAudioOutputInit(false)\n }\n }, [firstAudioOutputInit, remoteAudioElement])\n\n useEffect(() => {\n checkDarkTheme()\n }, [])\n\n useEventListener('phone-island-theme-change', (theme: any) => {\n setTheme(theme?.selectedTheme)\n })\n\n useEventListener('phone-island-default-device-change', (data) => {\n store.dispatch.currentUser.updateCurrentDefaultDevice(data?.deviceInformationObject)\n eventDispatch('phone-island-default-device-changed', {})\n })\n\n useEventListener('phone-island-alert', (alertType: any) => {\n store.dispatch.alerts.setAlert(alertType.toString())\n })\n\n // Manually check if internet connection is enabled or not\n useEventListener('phone-island-check-connection', () => {\n checkInternetConnection().then((internetIsActive) => {\n if (internetIsActive) {\n eventDispatch('phone-island-internet-connected', {})\n } else {\n eventDispatch('phone-island-internet-disconnected', {})\n }\n })\n })\n\n // Check internet connection every 5 seconds\n useEffect(() => {\n const intervalId = setInterval(() => {\n checkInternetConnection().then((internetIsActive) => {\n if (internetIsActive) {\n eventDispatch('phone-island-internet-connected', {})\n } else {\n eventDispatch('phone-island-internet-disconnected', {})\n }\n })\n }, 5000)\n\n return () => clearInterval(intervalId)\n }, [])\n\n useEventListener('phone-island-main-presence', (data: any) => {\n const currentUsernameInformation: any = store.getState().currentUser?.username\n const currentUserObject: any = store.getState().currentUser\n let mainPresenceValueBeforeUpdate = currentUserObject?.mainPresence\n if (\n currentUsernameInformation !== undefined &&\n currentUsernameInformation !== '' &&\n !isEmpty(data[currentUsernameInformation]) &&\n data[currentUsernameInformation]?.mainPresence !== undefined\n ) {\n let newMainPresenceValue = data[currentUsernameInformation]?.mainPresence\n store.dispatch.currentUser.updateMainPresence(data[currentUsernameInformation]?.mainPresence)\n let mainPresenceValueAfterUpdate = newMainPresenceValue\n if (mainPresenceValueAfterUpdate === 'online' && mainPresenceValueBeforeUpdate !== 'online') {\n eventDispatch('phone-island-call-ended', {})\n }\n }\n })\n\n return (\n <>\n <Provider store={store}>\n <WebRTC\n hostName={HOST_NAME}\n sipExten={SIP_EXTEN}\n sipSecret={SIP_SECRET}\n sipHost={SIP_HOST}\n sipPort={SIP_PORT}\n reload={reload}\n reloadedCallback={() => setReloadedWebRTC(true)}\n uaType={uaType}\n >\n <RestAPI hostName={HOST_NAME} username={USERNAME} authToken={AUTH_TOKEN}>\n <Socket\n hostName={HOST_NAME}\n username={USERNAME}\n authToken={AUTH_TOKEN}\n reload={reload}\n reloadedCallback={() => setReloadedSocket(true)}\n uaType={uaType}\n >\n <Events sipHost={SIP_HOST}>\n <Island showAlways={showAlways} />\n </Events>\n </Socket>\n </RestAPI>\n </WebRTC>\n </Provider>\n </>\n )\n}\n\nPhoneIsland.displayName = 'PhoneIsland'\n"],"names":["PhoneIsland","_a","dataConfig","_b","i18nLoadPath","undefined","_c","showAlways","uaType","CONFIG","Base64","atob","split","HOST_NAME","USERNAME","AUTH_TOKEN","SIP_EXTEN","SIP_SECRET","SIP_HOST","SIP_PORT","_d","useState","reload","setReload","_e","reloadedWebRTC","setReloadedWebRTC","_f","reloadedSocket","setReloadedSocket","useEffect","worker","Worker","wakeUpWorker","type","onmessage","event","data","terminate","useEventListener","store","dispatch","island","toggleIsOpen","eventDispatch","setIslandView","detach","currentUser","updateCurrentDefaultDevice","deviceInformationObject","setJSONItem","deviceId","remoteAudioElement","getState","player","remoteAudio","current","setSinkId","then","console","info","catch","err","error","changeOperatorStatus","_g","firstRenderI18n","setFirstRenderI18n","_h","firstAudioOutputInit","setFirstAudioOutputInit","loadI18n","defaultAudioOutputDevice","getJSONItem","checkDarkTheme","theme","setTheme","selectedTheme","alertType","alerts","setAlert","toString","checkInternetConnection","internetIsActive","intervalId","setInterval","clearInterval","currentUsernameInformation","username","currentUserObject","mainPresenceValueBeforeUpdate","mainPresence","isEmpty","newMainPresenceValue","updateMainPresence","React","createElement","Fragment","Provider","WebRTC","hostName","sipExten","sipSecret","sipHost","sipPort","reloadedCallback","RestAPI","authToken","Socket","Events","Island","displayName"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"App.js","sources":["../src/App.tsx"],"sourcesContent":["import React, { type FC, useState, useEffect } from 'react'\nimport { Events, Socket, WebRTC, Island, RestAPI } from './components'\nimport { Provider } from 'react-redux'\nimport { store } from './store'\nimport { Base64 } from 'js-base64'\nimport wakeUpWorker from './workers/wake_up'\nimport loadI18n from './lib/i18n'\nimport i18next, { i18n } from 'i18next'\n\nimport 'react-tooltip/dist/react-tooltip.css'\nimport { useEventListener, eventDispatch, setJSONItem, getJSONItem } from './utils'\nimport { detach } from './lib/webrtc/messages'\nimport { checkDarkTheme, setTheme } from './lib/darkTheme'\nimport { changeOperatorStatus } from './services/user'\nimport { isEmpty } from './utils/genericFunctions/isEmpty'\nimport { checkInternetConnection } from './utils/genericFunctions/checkConnection'\n\ninterface PhoneIslandProps {\n dataConfig: string\n i18nLoadPath?: string\n showAlways?: boolean\n uaType: string\n}\n\ninterface DeviceInputOutputTypes {\n deviceId: string\n}\n\nexport const PhoneIsland: FC<PhoneIslandProps> = ({\n dataConfig,\n i18nLoadPath = undefined,\n showAlways = false,\n uaType,\n}: PhoneIslandProps) => {\n const CONFIG: string[] = Base64.atob(dataConfig || '').split(':')\n const HOST_NAME: string = CONFIG[0]\n const USERNAME: string = CONFIG[1]\n const AUTH_TOKEN: string = CONFIG[2]\n const SIP_EXTEN: string = CONFIG[3]\n const SIP_SECRET: string = CONFIG[4]\n const SIP_HOST: string = CONFIG[5]\n const SIP_PORT: string = CONFIG[6]\n\n // Initialize the state to manage the reload events\n const [reload, setReload] = useState<boolean>(false)\n const [reloadedWebRTC, setReloadedWebRTC] = useState<boolean>(false)\n const [reloadedSocket, setReloadedSocket] = useState<boolean>(false)\n\n useEffect(() => {\n const worker = new Worker(wakeUpWorker, { type: 'module' })\n worker.onmessage = (event: MessageEvent<string>) => {\n // Handle wakeup message\n if (event.data === 'wakeup') {\n setReload(true)\n }\n }\n\n return () => {\n worker.terminate()\n }\n }, [])\n\n useEffect(() => {\n if (reloadedSocket && reloadedWebRTC) {\n setReload(false)\n setReloadedWebRTC(false)\n setReloadedSocket(false)\n }\n }, [reloadedSocket, reloadedWebRTC])\n\n useEventListener('phone-island-expand', () => {\n store.dispatch.island.toggleIsOpen(true)\n eventDispatch('phone-island-expanded', {})\n })\n useEventListener('phone-island-compress', () => {\n store.dispatch.island.toggleIsOpen(false)\n eventDispatch('phone-island-compressed', {})\n })\n\n useEventListener('phone-island-call-keypad-close', () => {\n store.dispatch.island.setIslandView('call')\n eventDispatch('phone-island-call-keypad-closed', {})\n })\n useEventListener('phone-island-call-transfer-close', () => {\n store.dispatch.island.setIslandView('call')\n eventDispatch('phone-island-call-transfer-closed', {})\n })\n useEventListener('phone-island-recording-close', () => {\n store.dispatch.island.setIslandView(null)\n eventDispatch('phone-island-recording-closed', {})\n })\n useEventListener('phone-island-audio-player-close', () => {\n store.dispatch.island.setIslandView(null)\n eventDispatch('phone-island-audio-player-closed', {})\n })\n\n useEventListener('phone-island-detach', (data) => {\n detach()\n eventDispatch('phone-island-detached', {})\n })\n\n useEventListener('phone-island-audio-input-change', (data: DeviceInputOutputTypes) => {\n setJSONItem('phone-island-audio-input-device', { deviceId: data.deviceId })\n eventDispatch('phone-island-audio-input-changed', {})\n })\n\n useEventListener('phone-island-audio-output-change', (data: DeviceInputOutputTypes) => {\n const remoteAudioElement: any = store.getState().player.remoteAudio\n // set audio output\n remoteAudioElement?.current\n .setSinkId(data.deviceId)\n .then(function () {\n console.info('Default audio output device change with success!')\n // set device to localstorage\n setJSONItem('phone-island-audio-output-device', { deviceId: data.deviceId })\n\n // dispatch event\n eventDispatch('phone-island-audio-output-changed', {})\n })\n .catch(function (err) {\n console.error('Default audio output device change error:', err)\n })\n })\n\n // Listen for the operator status change\n useEventListener('phone-island-presence-change', (data: any) => {\n changeOperatorStatus(data)\n eventDispatch('phone-island-presence-changed', {})\n })\n\n const [firstRenderI18n, setFirstRenderI18n] = useState(true)\n const [firstAudioOutputInit, setFirstAudioOutputInit] = useState(true)\n\n //initialize i18n\n useEffect(() => {\n if (firstRenderI18n) {\n loadI18n(i18nLoadPath)\n setFirstRenderI18n(false)\n }\n }, [firstRenderI18n])\n\n const remoteAudioElement: any = store.getState().player.remoteAudio\n\n //get output device from localstorage\n useEffect(() => {\n if (firstAudioOutputInit && remoteAudioElement) {\n const defaultAudioOutputDevice: any = getJSONItem(\n `phone-island-audio-output-device`,\n )?.deviceId\n eventDispatch('phone-island-audio-output-change', { deviceId: defaultAudioOutputDevice })\n setFirstAudioOutputInit(false)\n }\n }, [firstAudioOutputInit, remoteAudioElement])\n\n useEffect(() => {\n checkDarkTheme()\n }, [])\n\n useEventListener('phone-island-theme-change', (theme: any) => {\n setTheme(theme?.selectedTheme)\n })\n\n useEventListener('phone-island-default-device-change', (data) => {\n store.dispatch.currentUser.updateCurrentDefaultDevice(data?.deviceInformationObject)\n eventDispatch('phone-island-default-device-changed', {})\n })\n\n useEventListener('phone-island-alert', (alertType: any) => {\n store.dispatch.alerts.setAlert(alertType.toString())\n })\n\n // Manually check if internet connection is enabled or not\n useEventListener('phone-island-check-connection', () => {\n checkInternetConnection().then((internetIsActive) => {\n if (internetIsActive) {\n eventDispatch('phone-island-internet-connected', {})\n } else {\n eventDispatch('phone-island-internet-disconnected', {})\n }\n })\n })\n\n // Check internet connection every 5 seconds\n useEffect(() => {\n const intervalId = setInterval(() => {\n checkInternetConnection().then((internetIsActive) => {\n if (internetIsActive) {\n eventDispatch('phone-island-internet-connected', {})\n } else {\n eventDispatch('phone-island-internet-disconnected', {})\n }\n })\n }, 5000)\n\n return () => clearInterval(intervalId)\n }, [])\n\n useEventListener('phone-island-main-presence', (data: any) => {\n const currentUsernameInformation: any = store.getState().currentUser?.username\n const currentUserObject: any = store.getState().currentUser\n let mainPresenceValueBeforeUpdate = currentUserObject?.mainPresence\n if (\n currentUsernameInformation !== undefined &&\n currentUsernameInformation !== '' &&\n !isEmpty(data[currentUsernameInformation]) &&\n data[currentUsernameInformation]?.mainPresence !== undefined\n ) {\n let newMainPresenceValue = data[currentUsernameInformation]?.mainPresence\n store.dispatch.currentUser.updateMainPresence(data[currentUsernameInformation]?.mainPresence)\n let mainPresenceValueAfterUpdate = newMainPresenceValue\n if (mainPresenceValueAfterUpdate === 'online' && mainPresenceValueBeforeUpdate !== 'online') {\n eventDispatch('phone-island-call-ended', {})\n }\n }\n })\n\n return (\n <>\n <Provider store={store}>\n <WebRTC\n hostName={HOST_NAME}\n sipExten={SIP_EXTEN}\n sipSecret={SIP_SECRET}\n sipHost={SIP_HOST}\n sipPort={SIP_PORT}\n reload={reload}\n reloadedCallback={() => setReloadedWebRTC(true)}\n uaType={uaType}\n >\n <RestAPI hostName={HOST_NAME} username={USERNAME} authToken={AUTH_TOKEN}>\n <Socket\n hostName={HOST_NAME}\n username={USERNAME}\n authToken={AUTH_TOKEN}\n reload={reload}\n reloadedCallback={() => setReloadedSocket(true)}\n uaType={uaType}\n >\n <Events sipHost={SIP_HOST}>\n <Island showAlways={showAlways} />\n </Events>\n </Socket>\n </RestAPI>\n </WebRTC>\n </Provider>\n </>\n )\n}\n\nPhoneIsland.displayName = 'PhoneIsland'\n"],"names":["PhoneIsland","_a","dataConfig","_b","i18nLoadPath","undefined","_c","showAlways","uaType","CONFIG","Base64","atob","split","HOST_NAME","USERNAME","AUTH_TOKEN","SIP_EXTEN","SIP_SECRET","SIP_HOST","SIP_PORT","_d","useState","reload","setReload","_e","reloadedWebRTC","setReloadedWebRTC","_f","reloadedSocket","setReloadedSocket","useEffect","worker","Worker","wakeUpWorker","type","onmessage","event","data","terminate","useEventListener","store","dispatch","island","toggleIsOpen","eventDispatch","setIslandView","detach","setJSONItem","deviceId","remoteAudioElement","getState","player","remoteAudio","current","setSinkId","then","console","info","catch","err","error","changeOperatorStatus","_g","firstRenderI18n","setFirstRenderI18n","_h","firstAudioOutputInit","setFirstAudioOutputInit","loadI18n","defaultAudioOutputDevice","getJSONItem","checkDarkTheme","theme","setTheme","selectedTheme","currentUser","updateCurrentDefaultDevice","deviceInformationObject","alertType","alerts","setAlert","toString","checkInternetConnection","internetIsActive","intervalId","setInterval","clearInterval","currentUsernameInformation","username","currentUserObject","mainPresenceValueBeforeUpdate","mainPresence","isEmpty","newMainPresenceValue","updateMainPresence","React","createElement","Fragment","Provider","WebRTC","hostName","sipExten","sipSecret","sipHost","sipPort","reloadedCallback","RestAPI","authToken","Socket","Events","Island","displayName"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nethesis/phone-island",
|
|
3
3
|
"author": "Nethesis",
|
|
4
|
-
"version": "0.8.
|
|
4
|
+
"version": "0.8.43",
|
|
5
5
|
"description": "NethVoice CTI Phone Island",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"nethserver",
|
|
@@ -75,7 +75,9 @@
|
|
|
75
75
|
"build-storybook": "storybook build -s public",
|
|
76
76
|
"release": "npm publish",
|
|
77
77
|
"release:widget": "np patch",
|
|
78
|
-
"format": "prettier --write './**/*.{js,jsx,ts,tsx,css,md,json}' --config ./.prettierrc"
|
|
78
|
+
"format": "prettier --write './**/*.{js,jsx,ts,tsx,css,md,json}' --config ./.prettierrc",
|
|
79
|
+
"bump": "node bump-version.js",
|
|
80
|
+
"build-pack": "npm run bump && npm run build && npm pack"
|
|
79
81
|
},
|
|
80
82
|
"browserslist": {
|
|
81
83
|
"production": [
|