@paymanai/payman-typescript-ask-sdk 4.0.5 → 4.0.6

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/dist/index.mjs CHANGED
@@ -964,9 +964,28 @@ function buildRequestBody(config, userMessage, sessionId, options) {
964
964
  sessionOwnerId,
965
965
  sessionOwnerLabel: sessionOwner?.name || void 0,
966
966
  sessionAttributes,
967
- analysisMode: options?.analysisMode
967
+ analysisMode: options?.analysisMode,
968
+ locale: resolveLocale(config.locale),
969
+ timezone: resolveTimezone(config.timezone)
968
970
  };
969
971
  }
972
+ function resolveLocale(configured) {
973
+ if (configured && configured.trim().length > 0) return configured.trim();
974
+ if (typeof navigator !== "undefined") {
975
+ const navLocale = navigator.language;
976
+ if (navLocale && navLocale.length > 0) return navLocale;
977
+ }
978
+ return "en-US";
979
+ }
980
+ function resolveTimezone(configured) {
981
+ if (configured && configured.trim().length > 0) return configured.trim();
982
+ try {
983
+ const zone = Intl.DateTimeFormat().resolvedOptions().timeZone;
984
+ if (zone && zone.length > 0) return zone;
985
+ } catch {
986
+ }
987
+ return "UTC";
988
+ }
970
989
  function buildStreamingUrl(config) {
971
990
  const endpoint = config.api.streamEndpoint || DEFAULT_STREAM_ENDPOINT;
972
991
  const stage = config.stage || "DEV";
@@ -1410,14 +1429,24 @@ function useStreamManagerV2(config, callbacks, setMessages, setIsWaitingForRespo
1410
1429
  }
1411
1430
 
1412
1431
  // src/hooks/useChatV2.ts
1432
+ function getStoredOrInitialMessages(config) {
1433
+ if (!config.userId) return config.initialMessages ?? [];
1434
+ const stored = chatStore.get(config.userId);
1435
+ if (stored.length > 0) return stored;
1436
+ if (config.initialMessages?.length) {
1437
+ chatStore.set(config.userId, config.initialMessages);
1438
+ return config.initialMessages;
1439
+ }
1440
+ return [];
1441
+ }
1442
+ function getSessionIdFromMessages(messages) {
1443
+ return messages.find((message) => message.sessionId)?.sessionId;
1444
+ }
1413
1445
  function useChatV2(config, callbacks = {}) {
1414
- const [messages, setMessages] = useState(() => {
1415
- if (config.userId) return chatStore.get(config.userId);
1416
- return config.initialMessages ?? [];
1417
- });
1446
+ const [messages, setMessages] = useState(() => getStoredOrInitialMessages(config));
1418
1447
  const [isWaitingForResponse, setIsWaitingForResponse] = useState(false);
1419
1448
  const sessionIdRef = useRef(
1420
- config.userId ? chatStore.get(config.userId).find((m) => m.sessionId)?.sessionId ?? config.initialSessionId ?? void 0 : config.initialSessionId ?? void 0
1449
+ getSessionIdFromMessages(getStoredOrInitialMessages(config)) ?? config.initialSessionId ?? void 0
1421
1450
  );
1422
1451
  const prevUserIdRef = useRef(config.userId);
1423
1452
  const callbacksRef = useRef(callbacks);
@@ -1661,7 +1690,7 @@ function useChatV2(config, callbacks = {}) {
1661
1690
  setIsWaitingForResponse(active.isWaiting);
1662
1691
  }
1663
1692
  return unsubscribe;
1664
- }, []);
1693
+ }, [config.userId]);
1665
1694
  useEffect(() => {
1666
1695
  if (!config.userId) return;
1667
1696
  const toSave = messages.filter((m) => !m.isStreaming);
@@ -1669,6 +1698,13 @@ function useChatV2(config, callbacks = {}) {
1669
1698
  chatStore.set(config.userId, toSave);
1670
1699
  }
1671
1700
  }, [messages, config.userId]);
1701
+ useEffect(() => {
1702
+ if (!config.userId || activeStreamStore.has(config.userId)) return;
1703
+ if (!config.initialMessages?.length || messagesRef.current.length > 0) return;
1704
+ chatStore.set(config.userId, config.initialMessages);
1705
+ setMessages(config.initialMessages);
1706
+ sessionIdRef.current = getSessionIdFromMessages(config.initialMessages) ?? config.initialSessionId;
1707
+ }, [config.initialMessages, config.initialSessionId, config.userId]);
1672
1708
  useEffect(() => {
1673
1709
  const prevUserId = prevUserIdRef.current;
1674
1710
  prevUserIdRef.current = config.userId;
@@ -1680,11 +1716,19 @@ function useChatV2(config, callbacks = {}) {
1680
1716
  setIsWaitingForResponse(false);
1681
1717
  setUserActionState({ request: null, result: null, clearOtpTrigger: 0 });
1682
1718
  } else if (config.userId) {
1683
- const stored = chatStore.get(config.userId);
1684
- setMessages(stored);
1685
- sessionIdRef.current = stored.find((m) => m.sessionId)?.sessionId;
1719
+ const active = activeStreamStore.get(config.userId);
1720
+ if (active) {
1721
+ setMessages(active.messages);
1722
+ setIsWaitingForResponse(active.isWaiting);
1723
+ sessionIdRef.current = getSessionIdFromMessages(active.messages) ?? config.initialSessionId;
1724
+ return;
1725
+ }
1726
+ const nextMessages = getStoredOrInitialMessages(config);
1727
+ setMessages(nextMessages);
1728
+ sessionIdRef.current = getSessionIdFromMessages(nextMessages) ?? config.initialSessionId;
1729
+ setIsWaitingForResponse(false);
1686
1730
  }
1687
- }, [config.userId]);
1731
+ }, [config]);
1688
1732
  return {
1689
1733
  messages,
1690
1734
  sendMessage,