callix-dialer-widget 1.3.18 → 1.4.0

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.
@@ -6,7 +6,7 @@ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read fr
6
6
  var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
7
7
  var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
8
8
  var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
9
- import React, { useEffect, useState, useRef, useMemo, useCallback, StrictMode } from "react";
9
+ import React, { useEffect, useState, useRef, useMemo, useCallback, createContext, StrictMode, useContext } from "react";
10
10
  import require$$0$2, { createPortal } from "react-dom";
11
11
  var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
12
12
  function getAugmentedNamespace(n) {
@@ -53715,6 +53715,8 @@ function AuthenticatedDialer({ username, dialValue, setDialValue, onLogout, vari
53715
53715
  var _a2, _b;
53716
53716
  const operator = clientSdkReactExports.useCallOperator();
53717
53717
  const isMiniMode = variant === "min";
53718
+ const { skipManualQualification } = useDialerConfig();
53719
+ console.log("[FloatingDialer/AuthenticatedDialer] 🔧 skipManualQualification:", skipManualQualification);
53718
53720
  const operatorState = clientSdkReactExports.useCallOperatorState();
53719
53721
  const currentCall = clientSdkReactExports.useCallOperatorCurrentCall();
53720
53722
  const currentCallInfo = clientSdkReactExports.useCallOperatorCurrentCallInfo();
@@ -53827,9 +53829,9 @@ function AuthenticatedDialer({ username, dialValue, setDialValue, onLogout, vari
53827
53829
  }, [callState, requestAvailability]);
53828
53830
  useEffect(() => {
53829
53831
  if (callState === "afterCall") {
53830
- const shouldSkipQualification = (currentCallInfo == null ? void 0 : currentCallInfo.type) === "campaign" && currentCallInfo.info.campaign.skipCallQualification === true;
53831
- if (shouldSkipQualification) {
53832
- console.log("[FloatingDialer] ?? skipCallQualification ativado - finalizando automaticamente");
53832
+ const shouldSkipCampaignQualification = (currentCallInfo == null ? void 0 : currentCallInfo.type) === "campaign" && currentCallInfo.info.campaign.skipCallQualification === true;
53833
+ if (shouldSkipCampaignQualification) {
53834
+ console.log("[FloatingDialer] 🚀 skipCallQualification ativado - finalizando automaticamente");
53833
53835
  if (typeof finishAfterCall === "function") {
53834
53836
  void Promise.resolve(
53835
53837
  finishAfterCall({
@@ -53842,8 +53844,8 @@ function AuthenticatedDialer({ username, dialValue, setDialValue, onLogout, vari
53842
53844
  }
53843
53845
  const isManualCall = (currentCallInfo == null ? void 0 : currentCallInfo.type) === "manual";
53844
53846
  const hasNoQualifications = successQualifications.length === 0 && discardQualifications.length === 0;
53845
- if (isManualCall && hasNoQualifications) {
53846
- console.log("[FloatingDialer] ?? Chamada manual sem qualificações - finalizando automaticamente");
53847
+ if (isManualCall && (skipManualQualification || hasNoQualifications)) {
53848
+ console.log("[FloatingDialer] 🚀 Chamada manual - finalizando automaticamente (skipManualQualification:", skipManualQualification, ", hasNoQualifications:", hasNoQualifications, ")");
53847
53849
  if (typeof finishAfterCall === "function") {
53848
53850
  void Promise.resolve(
53849
53851
  finishAfterCall({
@@ -53859,7 +53861,7 @@ function AuthenticatedDialer({ username, dialValue, setDialValue, onLogout, vari
53859
53861
  setSelectedQualificationId(null);
53860
53862
  setAfterCallError(null);
53861
53863
  }
53862
- }, [callState, successQualifications.length, discardQualifications.length, currentCallInfo, finishAfterCall]);
53864
+ }, [callState, successQualifications.length, discardQualifications.length, currentCallInfo, finishAfterCall, skipManualQualification]);
53863
53865
  useEffect(() => {
53864
53866
  if (typeof window === "undefined") {
53865
53867
  return;
@@ -56089,6 +56091,7 @@ function InlineDialer({ variant = "default", isAuthenticated, ...props }) {
56089
56091
  if (!isAuthenticated || !isMiniMode) {
56090
56092
  return /* @__PURE__ */ jsxRuntimeExports.jsx(FloatingDialer, { variant, isAuthenticated, ...props });
56091
56093
  }
56094
+ const { skipManualQualification } = useDialerConfig();
56092
56095
  const operatorState = clientSdkReactExports.useCallOperatorState();
56093
56096
  const currentCall = clientSdkReactExports.useCallOperatorCurrentCall();
56094
56097
  const currentCallInfo = clientSdkReactExports.useCallOperatorCurrentCallInfo();
@@ -56129,8 +56132,8 @@ function InlineDialer({ variant = "default", isAuthenticated, ...props }) {
56129
56132
  useEffect(() => {
56130
56133
  if (!isMiniMode) return;
56131
56134
  if (isAfterCall) {
56132
- const shouldSkipQualification = (currentCallInfo == null ? void 0 : currentCallInfo.type) === "campaign" && currentCallInfo.info.campaign.skipCallQualification === true;
56133
- if (shouldSkipQualification && finishAfterCall) {
56135
+ const shouldSkipCampaignQualification = (currentCallInfo == null ? void 0 : currentCallInfo.type) === "campaign" && currentCallInfo.info.campaign.skipCallQualification === true;
56136
+ if (shouldSkipCampaignQualification && finishAfterCall) {
56134
56137
  void Promise.resolve(
56135
56138
  finishAfterCall({
56136
56139
  result: "success",
@@ -56141,7 +56144,8 @@ function InlineDialer({ variant = "default", isAuthenticated, ...props }) {
56141
56144
  }
56142
56145
  const isManualCall = (currentCallInfo == null ? void 0 : currentCallInfo.type) === "manual";
56143
56146
  const hasNoQualifications = successQualifications.length === 0 && discardQualifications.length === 0;
56144
- if (isManualCall && hasNoQualifications && finishAfterCall) {
56147
+ if (isManualCall && (skipManualQualification || hasNoQualifications) && finishAfterCall) {
56148
+ console.log("[InlineDialer] 🚀 Chamada manual - finalizando automaticamente (skipManualQualification:", skipManualQualification, ", hasNoQualifications:", hasNoQualifications, ")");
56145
56149
  void Promise.resolve(
56146
56150
  finishAfterCall({
56147
56151
  result: "success",
@@ -56158,7 +56162,7 @@ function InlineDialer({ variant = "default", isAuthenticated, ...props }) {
56158
56162
  } else {
56159
56163
  setIsQualificationModalOpen(false);
56160
56164
  }
56161
- }, [isMiniMode, isAfterCall, currentCallInfo, finishAfterCall, successQualifications, discardQualifications]);
56165
+ }, [isMiniMode, isAfterCall, currentCallInfo, finishAfterCall, successQualifications, discardQualifications, skipManualQualification]);
56162
56166
  useEffect(() => {
56163
56167
  if (!isMiniMode) return;
56164
56168
  if (!isInCall && !isConnecting && !isAfterCall) {
@@ -56353,6 +56357,14 @@ function InlineDialer({ variant = "default", isAuthenticated, ...props }) {
56353
56357
  ] })
56354
56358
  ] });
56355
56359
  }
56360
+ const DialerConfigContext = createContext(null);
56361
+ function useDialerConfig() {
56362
+ const context = useContext(DialerConfigContext);
56363
+ if (!context) {
56364
+ return { skipManualQualification: false };
56365
+ }
56366
+ return context;
56367
+ }
56356
56368
  function deriveOptionsFromElement(element) {
56357
56369
  const result2 = {};
56358
56370
  const datasetMode = element.getAttribute("data-callix-mode") || element.dataset.callixMode || element.dataset.mode;
@@ -56440,7 +56452,8 @@ class CallixDialerWidget {
56440
56452
  const getStorageKeys = (username) => ({
56441
56453
  SESSION_TOKEN: `callix_dialer_${username}_session_token`,
56442
56454
  DOMAIN: `callix_dialer_${username}_domain`,
56443
- TIMESTAMP: `callix_dialer_${username}_timestamp`
56455
+ TIMESTAMP: `callix_dialer_${username}_timestamp`,
56456
+ SKIP_MANUAL_QUALIFICATION: `callix_dialer_${username}_skip_manual_qualification`
56444
56457
  });
56445
56458
  const LAST_USERNAME_KEY = "callix_dialer_last_username";
56446
56459
  const SESSION_EXPIRATION_MS = 8 * 60 * 60 * 1e3;
@@ -56452,6 +56465,7 @@ function DialerWrapper({ options }) {
56452
56465
  const [sessionToken, setSessionToken] = useState(null);
56453
56466
  const [callixDomain, setCallixDomain] = useState(null);
56454
56467
  const [isRestoringSession, setIsRestoringSession] = useState(true);
56468
+ const [skipManualQualification, setSkipManualQualification] = useState(false);
56455
56469
  const presetUsername = options.presetUsername ? options.presetUsername.trim() : null;
56456
56470
  const uiVariant = options.uiVariant ?? "default";
56457
56471
  const autoLoginAttemptedRef = useRef(false);
@@ -56485,6 +56499,10 @@ function DialerWrapper({ options }) {
56485
56499
  setSessionToken(storedToken);
56486
56500
  setCallixDomain(storedDomain);
56487
56501
  setIsAuthenticated(true);
56502
+ const storedSkipQualification = localStorage.getItem(STORAGE_KEYS.SKIP_MANUAL_QUALIFICATION);
56503
+ if (storedSkipQualification) {
56504
+ setSkipManualQualification(storedSkipQualification === "true");
56505
+ }
56488
56506
  } else {
56489
56507
  console.log("[Callix Dialer] Sessão expirada, limpando...");
56490
56508
  localStorage.removeItem(LAST_USERNAME_KEY);
@@ -56505,6 +56523,7 @@ function DialerWrapper({ options }) {
56505
56523
  }
56506
56524
  }, [presetUsername, username]);
56507
56525
  const handleLogin = useCallback(async (user) => {
56526
+ var _a2, _b;
56508
56527
  setIsLoading(true);
56509
56528
  setError(null);
56510
56529
  try {
@@ -56528,6 +56547,35 @@ function DialerWrapper({ options }) {
56528
56547
  setUsername(user);
56529
56548
  setIsAuthenticated(true);
56530
56549
  setError(null);
56550
+ try {
56551
+ const domain = data.domain || "villelabrasil.callix.com.br";
56552
+ const configUrl = `https://${domain}/sdk/v1/client/user-service/config`;
56553
+ console.log("[Callix Dialer] 🔍 Buscando configuração do serviço:", configUrl);
56554
+ const configResponse = await fetch(configUrl, {
56555
+ headers: {
56556
+ "Authorization": `Bearer ${data.userSessionToken}`
56557
+ },
56558
+ credentials: "omit"
56559
+ });
56560
+ console.log("[Callix Dialer] 📡 Resposta da config:", configResponse.status);
56561
+ if (configResponse.ok) {
56562
+ const configData = await configResponse.json();
56563
+ console.log("[Callix Dialer] 📦 Dados da config recebidos:", JSON.stringify(configData, null, 2));
56564
+ const shouldSkipQualification = ((_b = (_a2 = configData == null ? void 0 : configData.service) == null ? void 0 : _a2.outboundOptions) == null ? void 0 : _b.skipQualification) === true;
56565
+ console.log("[Callix Dialer] ✅ skipQualification configurado:", shouldSkipQualification);
56566
+ setSkipManualQualification(shouldSkipQualification);
56567
+ if (typeof window !== "undefined") {
56568
+ const STORAGE_KEYS = getStorageKeys(user);
56569
+ localStorage.setItem(STORAGE_KEYS.SKIP_MANUAL_QUALIFICATION, shouldSkipQualification.toString());
56570
+ console.log("[Callix Dialer] 💾 skipQualification salvo no localStorage");
56571
+ }
56572
+ } else {
56573
+ const errorText = await configResponse.text();
56574
+ console.warn("[Callix Dialer] ⚠️ Erro ao buscar config do serviço:", configResponse.status, errorText);
56575
+ }
56576
+ } catch (configErr) {
56577
+ console.error("[Callix Dialer] ❌ Erro ao buscar config do serviço:", configErr);
56578
+ }
56531
56579
  if (typeof window !== "undefined") {
56532
56580
  try {
56533
56581
  const STORAGE_KEYS = getStorageKeys(user);
@@ -56603,7 +56651,7 @@ function DialerWrapper({ options }) {
56603
56651
  }
56604
56652
  );
56605
56653
  }
56606
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
56654
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(DialerConfigContext.Provider, { value: { skipManualQualification }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
56607
56655
  clientSdkReactExports.CallixClientProvider,
56608
56656
  {
56609
56657
  domain: callixDomain,
@@ -56621,7 +56669,7 @@ function DialerWrapper({ options }) {
56621
56669
  }
56622
56670
  )
56623
56671
  }
56624
- );
56672
+ ) });
56625
56673
  }
56626
56674
  function init(options) {
56627
56675
  const widget = new CallixDialerWidget(options);
@@ -56636,6 +56684,7 @@ if (typeof window !== "undefined") {
56636
56684
  window.CallixDialer = CallixDialer;
56637
56685
  }
56638
56686
  export {
56639
- CallixDialer as default
56687
+ CallixDialer as default,
56688
+ useDialerConfig
56640
56689
  };
56641
56690
  //# sourceMappingURL=callix-dialer.es.js.map