callix-dialer-widget 1.1.5 → 1.1.7

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.
@@ -53044,10 +53044,10 @@ const MAX_DIAL_LENGTH = 32;
53044
53044
  const DEFAULT_DIALER_DIMENSIONS = { width: 448, height: 640 };
53045
53045
  const MIN_DIALER_WIDTH = 280;
53046
53046
  const MIN_DIALER_HEIGHT = 420;
53047
- const MAX_DIALER_WIDTH = 720;
53048
- const MAX_DIALER_HEIGHT = 900;
53049
- const MIN_DIALER_SCALE = 0.7;
53050
- const MAX_DIALER_SCALE = 1.25;
53047
+ const MAX_DIALER_WIDTH = 1024;
53048
+ const MAX_DIALER_HEIGHT = 960;
53049
+ const MIN_DIALER_SCALE = 0.55;
53050
+ const MAX_DIALER_SCALE = 2.5;
53051
53051
  const VIEWPORT_MARGIN_SMALL = 12;
53052
53052
  const VIEWPORT_MARGIN_DEFAULT = 16;
53053
53053
  const keypadKeys = [
@@ -53413,6 +53413,8 @@ function FloatingDialer({
53413
53413
  }
53414
53414
  );
53415
53415
  const scale = Number.isFinite(contentScale) && contentScale > 0 ? contentScale : 1;
53416
+ const scaledWidth = DEFAULT_DIALER_DIMENSIONS.width / scale;
53417
+ const scaledHeight = DEFAULT_DIALER_DIMENSIONS.height / scale;
53416
53418
  const cardStyle = {
53417
53419
  width: manualSize ? `${manualSize.width}px` : void 0,
53418
53420
  height: manualSize ? `${manualSize.height}px` : void 0,
@@ -53427,15 +53429,15 @@ function FloatingDialer({
53427
53429
  flexDirection: "column",
53428
53430
  transform: `scale(${scale})`,
53429
53431
  transformOrigin: "top left",
53430
- width: `${DEFAULT_DIALER_DIMENSIONS.width}px`,
53431
- minHeight: `${DEFAULT_DIALER_DIMENSIONS.height}px`
53432
+ width: `${scaledWidth}px`,
53433
+ minHeight: `${scaledHeight}px`
53432
53434
  };
53433
53435
  const cardContentStyle = {
53434
53436
  flex: 1,
53435
53437
  display: "flex",
53436
53438
  flexDirection: "column",
53437
- minHeight: `${DEFAULT_DIALER_DIMENSIONS.height}px`,
53438
- width: `${DEFAULT_DIALER_DIMENSIONS.width}px`
53439
+ width: `${DEFAULT_DIALER_DIMENSIONS.width}px`,
53440
+ minHeight: `${DEFAULT_DIALER_DIMENSIONS.height}px`
53439
53441
  };
53440
53442
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
53441
53443
  "div",
@@ -53455,35 +53457,43 @@ function FloatingDialer({
53455
53457
  className: tw`relative flex flex-col items-start overflow-hidden rounded-3xl border border-slate-200/60 bg-gradient-to-br from-white/95 via-slate-50/95 to-white/90 shadow-2xl backdrop-blur-lg transition-all duration-300 w-[min(32rem,calc(100vw-1.5rem))] max-w-[calc(100vw-1.5rem)] sm:w-[28rem] md:w-[30rem] max-h-[calc(100vh-3rem)] sm:max-h-none`,
53456
53458
  style: cardStyle,
53457
53459
  children: [
53458
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: tw`flex flex-1 flex-col overflow-hidden`, style: scaledWrapperStyle, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: tw`flex flex-1 flex-col rounded-3xl overflow-hidden`, style: cardContentStyle, children: [
53459
- /* @__PURE__ */ jsxRuntimeExports.jsxs(
53460
- "div",
53461
- {
53462
- className: tw`cursor-grab touch-none active:cursor-grabbing flex items-center justify-between bg-gradient-to-r from-primary to-primaryDark px-4 py-3 sm:px-5 sm:py-4 text-white shadow-sm`,
53463
- onPointerDown: beginDrag,
53464
- children: [
53465
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: tw`flex items-center gap-3`, children: [
53466
- /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: tw`inline-flex h-10 w-10 items-center justify-center rounded-2xl bg-white/15 shadow-inner sm:h-11 sm:w-11`, children: /* @__PURE__ */ jsxRuntimeExports.jsx(FiPhoneCall, { className: tw`text-xl` }) }),
53467
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: tw`space-y-0.5`, children: [
53468
- /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: tw`text-[11px] uppercase tracking-[0.2em] text-white/70`, children: "Discadora" }),
53469
- /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: tw`text-sm font-semibold sm:text-base`, children: username ?? "Visitante" })
53470
- ] })
53471
- ] }),
53472
- /* @__PURE__ */ jsxRuntimeExports.jsx(
53473
- "button",
53474
- {
53475
- type: "button",
53476
- className: tw`rounded-full p-2 text-white/80 transition hover:bg-white/15 hover:text-white`,
53477
- onClick: () => setIsOpen(false),
53478
- "aria-label": "Fechar discadora",
53479
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(FiX, { className: tw`text-lg` })
53480
- }
53481
- )
53482
- ]
53483
- }
53484
- ),
53485
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: tw`flex-1 overflow-y-auto p-3 sm:p-4`, children: dialerContent })
53486
- ] }) }),
53460
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: tw`flex flex-1 flex-col overflow-hidden`, style: scaledWrapperStyle, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
53461
+ "div",
53462
+ {
53463
+ "data-floating-dialer-content": true,
53464
+ className: tw`flex flex-1 flex-col rounded-3xl overflow-hidden`,
53465
+ style: cardContentStyle,
53466
+ children: [
53467
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(
53468
+ "div",
53469
+ {
53470
+ className: tw`cursor-grab touch-none active:cursor-grabbing flex items-center justify-between bg-gradient-to-r from-primary to-primaryDark px-4 py-3 text-white shadow-sm`,
53471
+ onPointerDown: beginDrag,
53472
+ children: [
53473
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: tw`flex items-center gap-3`, children: [
53474
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: tw`inline-flex h-10 w-10 items-center justify-center rounded-2xl bg-white/15 shadow-inner`, children: /* @__PURE__ */ jsxRuntimeExports.jsx(FiPhoneCall, { className: tw`text-xl` }) }),
53475
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: tw`space-y-0.5`, children: [
53476
+ /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: tw`text-[11px] uppercase tracking-[0.2em] text-white/70`, children: "Discadora" }),
53477
+ /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: tw`text-base font-semibold`, children: username ?? "Visitante" })
53478
+ ] })
53479
+ ] }),
53480
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
53481
+ "button",
53482
+ {
53483
+ type: "button",
53484
+ className: tw`rounded-full p-2 text-white/80 transition hover:bg-white/15 hover:text-white`,
53485
+ onClick: () => setIsOpen(false),
53486
+ "aria-label": "Fechar discadora",
53487
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(FiX, { className: tw`text-lg` })
53488
+ }
53489
+ )
53490
+ ]
53491
+ }
53492
+ ),
53493
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: tw`flex-1 overflow-y-auto p-3`, children: dialerContent })
53494
+ ]
53495
+ }
53496
+ ) }),
53487
53497
  /* @__PURE__ */ jsxRuntimeExports.jsx(
53488
53498
  "div",
53489
53499
  {
@@ -54297,7 +54307,7 @@ function AuthenticatedDialer({ username, dialValue, setDialValue, onLogout }) {
54297
54307
  "aria-label": "Discador manual",
54298
54308
  onFocusCapture: handleFocusWithin,
54299
54309
  onBlurCapture: handleBlurWithin,
54300
- className: tw`space-y-3 sm:space-y-4 rounded-2xl outline-none`,
54310
+ className: tw`space-y-3 rounded-2xl outline-none`,
54301
54311
  children: [
54302
54312
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: tw`flex items-center justify-between gap-2`, children: [
54303
54313
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: tw`flex items-center gap-2 min-w-0 flex-1`, children: [
@@ -54506,23 +54516,23 @@ function AuthenticatedDialer({ username, dialValue, setDialValue, onLogout }) {
54506
54516
  }
54507
54517
  )
54508
54518
  ] }),
54509
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: tw`rounded-xl border border-slate-200 bg-white/80 p-2.5 shadow-sm sm:p-3`, children: [
54519
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: tw`rounded-xl border border-slate-200 bg-white/80 p-3 shadow-sm`, children: [
54510
54520
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: tw`flex flex-wrap items-center justify-between gap-2`, children: [
54511
54521
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
54512
54522
  /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: tw`text-[10px] uppercase tracking-wide text-slate-500`, children: "Volume" }),
54513
- /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: tw`text-xs font-semibold text-slate-800 sm:text-sm`, children: [
54523
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: tw`text-sm font-semibold text-slate-800`, children: [
54514
54524
  "Saída ",
54515
54525
  volumePercent,
54516
54526
  "%"
54517
54527
  ] })
54518
54528
  ] }),
54519
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: tw`flex items-center gap-1.5 sm:gap-2`, children: [
54529
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: tw`flex items-center gap-2`, children: [
54520
54530
  /* @__PURE__ */ jsxRuntimeExports.jsx(
54521
54531
  "button",
54522
54532
  {
54523
54533
  type: "button",
54524
54534
  onClick: () => setVolumeClamped((outputVolume ?? 0) - 0.05),
54525
- className: tw`inline-flex h-7 w-7 items-center justify-center rounded-full border border-slate-200 bg-white text-slate-600 transition hover:border-primary/60 hover:text-primary sm:h-8 sm:w-8`,
54535
+ className: tw`inline-flex h-8 w-8 items-center justify-center rounded-full border border-slate-200 bg-white text-slate-600 transition hover:border-primary/60 hover:text-primary`,
54526
54536
  "aria-label": "Diminuir volume",
54527
54537
  children: /* @__PURE__ */ jsxRuntimeExports.jsx(FiMinus, { className: tw`text-sm` })
54528
54538
  }
@@ -54536,7 +54546,7 @@ function AuthenticatedDialer({ username, dialValue, setDialValue, onLogout }) {
54536
54546
  step: 0.01,
54537
54547
  value: Number.isFinite(outputVolume) ? outputVolume : 0,
54538
54548
  onChange: (event2) => setVolumeClamped(parseFloat(event2.target.value)),
54539
- className: tw`h-1 w-full max-w-[9rem] cursor-pointer appearance-none rounded-full bg-slate-200 accent-primary sm:max-w-none sm:w-32`,
54549
+ className: tw`h-1 w-full max-w-full cursor-pointer appearance-none rounded-full bg-slate-200 accent-primary`,
54540
54550
  "aria-label": "Volume de saida"
54541
54551
  }
54542
54552
  ),
@@ -54545,21 +54555,21 @@ function AuthenticatedDialer({ username, dialValue, setDialValue, onLogout }) {
54545
54555
  {
54546
54556
  type: "button",
54547
54557
  onClick: () => setVolumeClamped((outputVolume ?? 0) + 0.05),
54548
- className: tw`inline-flex h-7 w-7 items-center justify-center rounded-full border border-slate-200 bg-white text-slate-600 transition hover:border-primary/60 hover:text-primary sm:h-8 sm:w-8`,
54558
+ className: tw`inline-flex h-8 w-8 items-center justify-center rounded-full border border-slate-200 bg-white text-slate-600 transition hover:border-primary/60 hover:text-primary`,
54549
54559
  "aria-label": "Aumentar volume",
54550
54560
  children: /* @__PURE__ */ jsxRuntimeExports.jsx(FiPlus, { className: tw`text-sm` })
54551
54561
  }
54552
54562
  )
54553
54563
  ] })
54554
54564
  ] }),
54555
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: tw`mt-2 flex flex-wrap items-center gap-2 text-[11px] text-slate-600 sm:text-xs`, children: [
54565
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: tw`mt-2 flex flex-wrap items-center gap-2 text-xs text-slate-600`, children: [
54556
54566
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: tw`flex items-center gap-1.5`, children: [
54557
54567
  /* @__PURE__ */ jsxRuntimeExports.jsx(FiMic, { className: tw`text-sm text-primary` }),
54558
- /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: tw`truncate max-w-[8rem] sm:max-w-none`, children: inputDeviceLabel })
54568
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: tw`truncate max-w-full`, children: inputDeviceLabel })
54559
54569
  ] }),
54560
54570
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: tw`flex items-center gap-1.5`, children: [
54561
54571
  /* @__PURE__ */ jsxRuntimeExports.jsx(FiHeadphones, { className: tw`text-sm text-primary` }),
54562
- /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: tw`truncate max-w-[8rem] sm:max-w-none`, children: outputDeviceLabel })
54572
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: tw`truncate max-w-full`, children: outputDeviceLabel })
54563
54573
  ] }),
54564
54574
  (audioDevices.inputs.length > 0 || audioDevices.outputs.length > 0) && /* @__PURE__ */ jsxRuntimeExports.jsxs(
54565
54575
  "button",
@@ -54574,7 +54584,7 @@ function AuthenticatedDialer({ username, dialValue, setDialValue, onLogout }) {
54574
54584
  }
54575
54585
  )
54576
54586
  ] }),
54577
- isDevicePanelOpen && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: tw`mt-3 grid gap-2 sm:grid-cols-2`, children: [
54587
+ isDevicePanelOpen && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: tw`mt-3 grid gap-2`, children: [
54578
54588
  /* @__PURE__ */ jsxRuntimeExports.jsxs("label", { className: tw`space-y-1 text-xs text-slate-700`, children: [
54579
54589
  /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: tw`flex items-center gap-1.5 font-semibold`, children: [
54580
54590
  /* @__PURE__ */ jsxRuntimeExports.jsx(FiMic, { className: tw`text-sm text-primary` }),
@@ -54583,7 +54593,7 @@ function AuthenticatedDialer({ username, dialValue, setDialValue, onLogout }) {
54583
54593
  /* @__PURE__ */ jsxRuntimeExports.jsxs(
54584
54594
  "select",
54585
54595
  {
54586
- className: tw`w-full rounded-lg border border-slate-200 bg-white px-2.5 py-1.5 text-[11px] shadow-inner focus:border-primary focus:outline-none focus:ring-2 focus:ring-primary/40 sm:text-xs`,
54596
+ className: tw`w-full rounded-lg border border-slate-200 bg-white px-2.5 py-1.5 text-xs shadow-inner focus:border-primary focus:outline-none focus:ring-2 focus:ring-primary/40`,
54587
54597
  value: selectedInputId ?? "",
54588
54598
  onChange: handleSelectInputDevice,
54589
54599
  children: [
@@ -54601,7 +54611,7 @@ function AuthenticatedDialer({ username, dialValue, setDialValue, onLogout }) {
54601
54611
  /* @__PURE__ */ jsxRuntimeExports.jsxs(
54602
54612
  "select",
54603
54613
  {
54604
- className: tw`w-full rounded-lg border border-slate-200 bg-white px-2.5 py-1.5 text-[11px] shadow-inner focus:border-primary focus:outline-none focus:ring-2 focus:ring-primary/40 sm:text-xs`,
54614
+ className: tw`w-full rounded-lg border border-slate-200 bg-white px-2.5 py-1.5 text-xs shadow-inner focus:border-primary focus:outline-none focus:ring-2 focus:ring-primary/40`,
54605
54615
  value: selectedOutputId ?? "",
54606
54616
  onChange: handleSelectOutputDevice,
54607
54617
  children: [
@@ -55047,37 +55057,26 @@ function InlineDialer(props) {
55047
55057
  inset: auto !important;
55048
55058
  transform: none !important;
55049
55059
  width: 100% !important;
55050
- max-width: 100% !important;
55051
- min-width: 0 !important;
55052
55060
  height: 100% !important;
55053
- max-height: 100% !important;
55054
- min-height: 0 !important;
55055
55061
  }
55056
55062
  .callix-inline-wrapper [data-floating-dialer-card] {
55063
+ position: relative !important;
55064
+ inset: auto !important;
55065
+ transform: none !important;
55057
55066
  width: 100% !important;
55058
- max-width: 100% !important;
55059
- min-width: 0 !important;
55060
55067
  height: 100% !important;
55061
- max-height: 100% !important;
55062
- min-height: 0 !important;
55063
55068
  box-shadow: none !important;
55064
55069
  backdrop-filter: none !important;
55065
55070
  }
55066
- .callix-inline-wrapper [data-floating-dialer-card] > * {
55067
- width: 100% !important;
55068
- height: 100% !important;
55069
- }
55070
55071
  .callix-inline-wrapper [data-floating-dialer-card] > div:first-child {
55071
- transform: none !important;
55072
- width: 100% !important;
55073
- min-height: 100% !important;
55074
- }
55075
- .callix-inline-wrapper [data-floating-dialer-card] > div:first-child > div:first-child {
55076
55072
  width: 100% !important;
55077
- min-height: 100% !important;
55073
+ height: 100% !important;
55074
+ transform-origin: top left !important;
55078
55075
  }
55079
- .callix-inline-wrapper [data-floating-dialer-card] .overflow-y-auto {
55080
- max-height: none !important;
55076
+ .callix-inline-wrapper [data-floating-dialer-card] [data-floating-dialer-content] {
55077
+ width: auto !important;
55078
+ min-width: 448px !important;
55079
+ min-height: 640px !important;
55081
55080
  }
55082
55081
  .callix-inline-wrapper [data-floating-dialer-resize] {
55083
55082
  display: none !important;
@@ -55134,6 +55133,12 @@ class CallixDialerWidget {
55134
55133
  }
55135
55134
  }
55136
55135
  }
55136
+ const getStorageKeys = (username) => ({
55137
+ SESSION_TOKEN: `callix_dialer_${username}_session_token`,
55138
+ DOMAIN: `callix_dialer_${username}_domain`,
55139
+ TIMESTAMP: `callix_dialer_${username}_timestamp`
55140
+ });
55141
+ const LAST_USERNAME_KEY = "callix_dialer_last_username";
55137
55142
  const SESSION_EXPIRATION_MS = 8 * 60 * 60 * 1e3;
55138
55143
  function DialerWrapper({ options }) {
55139
55144
  const [username, setUsername] = useState(null);
@@ -55149,22 +55154,27 @@ function DialerWrapper({ options }) {
55149
55154
  return;
55150
55155
  }
55151
55156
  try {
55152
- const storedUsername = localStorage.getItem(STORAGE_KEYS.USERNAME);
55157
+ const storedLastUsername = localStorage.getItem(LAST_USERNAME_KEY);
55158
+ if (!storedLastUsername) {
55159
+ setIsRestoringSession(false);
55160
+ return;
55161
+ }
55162
+ const STORAGE_KEYS = getStorageKeys(storedLastUsername);
55153
55163
  const storedToken = localStorage.getItem(STORAGE_KEYS.SESSION_TOKEN);
55154
55164
  const storedDomain = localStorage.getItem(STORAGE_KEYS.DOMAIN);
55155
55165
  const storedTimestamp = localStorage.getItem(STORAGE_KEYS.TIMESTAMP);
55156
- if (storedUsername && storedToken && storedDomain && storedTimestamp) {
55166
+ if (storedLastUsername && storedToken && storedDomain && storedTimestamp) {
55157
55167
  const timestamp = parseInt(storedTimestamp, 10);
55158
55168
  const now = Date.now();
55159
55169
  if (now - timestamp < SESSION_EXPIRATION_MS) {
55160
- console.log("[Callix Dialer] Restaurando sessão salva:", storedUsername);
55161
- setUsername(storedUsername);
55170
+ console.log("[Callix Dialer] Restaurando sessão salva:", storedLastUsername);
55171
+ setUsername(storedLastUsername);
55162
55172
  setSessionToken(storedToken);
55163
55173
  setCallixDomain(storedDomain);
55164
55174
  setIsAuthenticated(true);
55165
55175
  } else {
55166
55176
  console.log("[Callix Dialer] Sessão expirada, limpando...");
55167
- localStorage.removeItem(STORAGE_KEYS.USERNAME);
55177
+ localStorage.removeItem(LAST_USERNAME_KEY);
55168
55178
  localStorage.removeItem(STORAGE_KEYS.SESSION_TOKEN);
55169
55179
  localStorage.removeItem(STORAGE_KEYS.DOMAIN);
55170
55180
  localStorage.removeItem(STORAGE_KEYS.TIMESTAMP);
@@ -55202,7 +55212,8 @@ function DialerWrapper({ options }) {
55202
55212
  setError(null);
55203
55213
  if (typeof window !== "undefined") {
55204
55214
  try {
55205
- localStorage.setItem(STORAGE_KEYS.USERNAME, user);
55215
+ const STORAGE_KEYS = getStorageKeys(user);
55216
+ localStorage.setItem(LAST_USERNAME_KEY, user);
55206
55217
  localStorage.setItem(STORAGE_KEYS.SESSION_TOKEN, data.userSessionToken);
55207
55218
  localStorage.setItem(STORAGE_KEYS.DOMAIN, data.domain || "villelabrasil.callix.com.br");
55208
55219
  localStorage.setItem(STORAGE_KEYS.TIMESTAMP, Date.now().toString());
@@ -55222,14 +55233,16 @@ function DialerWrapper({ options }) {
55222
55233
  }
55223
55234
  };
55224
55235
  const handleLogout = () => {
55236
+ const currentUsername = username;
55225
55237
  setUsername(null);
55226
55238
  setIsAuthenticated(false);
55227
55239
  setSessionToken(null);
55228
55240
  setCallixDomain(null);
55229
55241
  setError(null);
55230
- if (typeof window !== "undefined") {
55242
+ if (typeof window !== "undefined" && currentUsername) {
55231
55243
  try {
55232
- localStorage.removeItem(STORAGE_KEYS.USERNAME);
55244
+ const STORAGE_KEYS = getStorageKeys(currentUsername);
55245
+ localStorage.removeItem(LAST_USERNAME_KEY);
55233
55246
  localStorage.removeItem(STORAGE_KEYS.SESSION_TOKEN);
55234
55247
  localStorage.removeItem(STORAGE_KEYS.DOMAIN);
55235
55248
  localStorage.removeItem(STORAGE_KEYS.TIMESTAMP);