@droppii-org/chat-sdk 0.5.5 → 0.6.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.
Files changed (38) hide show
  1. package/dist/components/compose/ComposeNewMessageModal.js +3 -3
  2. package/dist/components/conversation/ConversationByGroupItem.d.ts.map +1 -1
  3. package/dist/components/conversation/ConversationByGroupItem.js +4 -2
  4. package/dist/components/conversation/ConversationBySessionItem.d.ts.map +1 -1
  5. package/dist/components/conversation/ConversationBySessionItem.js +4 -2
  6. package/dist/components/conversation-inbox/ConversationInboxList.js +3 -3
  7. package/dist/components/conversation-inbox/contact-search/ContactSearchPanel.d.ts.map +1 -1
  8. package/dist/components/conversation-inbox/contact-search/ContactSearchPanel.js +13 -11
  9. package/dist/components/conversation-inbox/contact-search/utils.d.ts +7 -1
  10. package/dist/components/conversation-inbox/contact-search/utils.d.ts.map +1 -1
  11. package/dist/components/conversation-inbox/contact-search/utils.js +19 -15
  12. package/dist/components/message/GroupMembersDrawer.d.ts.map +1 -1
  13. package/dist/components/message/GroupMembersDrawer.js +3 -3
  14. package/dist/components/search-conversation/item/SearchItemAsGroup.js +3 -3
  15. package/dist/context/ChatContext.d.ts +1 -1
  16. package/dist/context/ChatContext.d.ts.map +1 -1
  17. package/dist/context/ChatContext.js +10 -1
  18. package/dist/hooks/conversation/useChatNavigate.d.ts +2 -0
  19. package/dist/hooks/conversation/useChatNavigate.d.ts.map +1 -0
  20. package/dist/hooks/conversation/useChatNavigate.js +14 -0
  21. package/dist/hooks/global/useGlobalEvent.d.ts.map +1 -1
  22. package/dist/hooks/global/useGlobalEvent.js +4 -2
  23. package/dist/hooks/group/useCreateGroup.js +3 -3
  24. package/dist/hooks/group/useDismissGroup.js +3 -3
  25. package/dist/hooks/group/useQuitGroup.js +3 -3
  26. package/dist/screens/conversation-detail/index.d.ts.map +1 -1
  27. package/dist/screens/conversation-detail/index.js +15 -2
  28. package/dist/screens/conversation-inbox/index.d.ts +1 -1
  29. package/dist/screens/conversation-inbox/index.d.ts.map +1 -1
  30. package/dist/screens/conversation-inbox/index.js +48 -14
  31. package/dist/store/conversation.d.ts +1 -0
  32. package/dist/store/conversation.d.ts.map +1 -1
  33. package/dist/store/conversation.js +11 -1
  34. package/dist/store/type.d.ts +10 -0
  35. package/dist/store/type.d.ts.map +1 -1
  36. package/dist/types/chat.d.ts +2 -0
  37. package/dist/types/chat.d.ts.map +1 -1
  38. package/package.json +1 -1
@@ -10,7 +10,7 @@ import { useEligibleAccounts } from "../../hooks/group/useEligibleAccounts";
10
10
  import { DChatSDK } from "../../constants/sdk";
11
11
  import useConversationStore from "../../store/conversation";
12
12
  import CreateGroupForm from "../../components/group/CreateGroupForm";
13
- import { useChatContext } from "../../context/ChatContext";
13
+ import { useChatNavigate } from "../../hooks/conversation/useChatNavigate";
14
14
  const ComposeNewMessageModal = ({ open, onClose, }) => {
15
15
  const { t } = useTranslation("conversation-inbox");
16
16
  const [step, setStep] = useState("compose");
@@ -18,7 +18,7 @@ const ComposeNewMessageModal = ({ open, onClose, }) => {
18
18
  const [openingUserID, setOpeningUserID] = useState(null);
19
19
  const debouncedSearch = useDebounce(search, { wait: 300 });
20
20
  const { accounts, isLoading } = useEligibleAccounts(debouncedSearch, open);
21
- const { onNavigate } = useChatContext();
21
+ const onNavigate = useChatNavigate();
22
22
  const setConversationData = useConversationStore((state) => state.setConversationData);
23
23
  const setSelectedConversationId = useConversationStore((state) => state.setSelectedConversationId);
24
24
  const handleClose = () => {
@@ -47,7 +47,7 @@ const ComposeNewMessageModal = ({ open, onClose, }) => {
47
47
  newSearchParams.delete("userId");
48
48
  newSearchParams.delete("groupId");
49
49
  newSearchParams.delete("botId");
50
- onNavigate === null || onNavigate === void 0 ? void 0 : onNavigate(`${window.location.pathname}?${newSearchParams.toString()}`);
50
+ onNavigate(`${window.location.pathname}?${newSearchParams.toString()}`);
51
51
  handleClose();
52
52
  }
53
53
  finally {
@@ -1 +1 @@
1
- {"version":3,"file":"ConversationByGroupItem.d.ts","sourceRoot":"","sources":["../../../src/components/conversation/ConversationByGroupItem.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,qCAAqC,CAAC;AAQxF,UAAU,4BAA4B;IACpC,KAAK,EAAE,4BAA4B,CAAC;IACpC,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED,QAAA,MAAM,uBAAuB,GAAI,2BAG9B,4BAA4B,4CA+D9B,CAAC;AAEF,eAAe,uBAAuB,CAAC"}
1
+ {"version":3,"file":"ConversationByGroupItem.d.ts","sourceRoot":"","sources":["../../../src/components/conversation/ConversationByGroupItem.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,qCAAqC,CAAC;AASxF,UAAU,4BAA4B;IACpC,KAAK,EAAE,4BAA4B,CAAC;IACpC,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED,QAAA,MAAM,uBAAuB,GAAI,2BAG9B,4BAA4B,4CAgE9B,CAAC;AAEF,eAAe,uBAAuB,CAAC"}
@@ -3,13 +3,15 @@ import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import { useTranslation } from "react-i18next";
4
4
  import useConversationStore from "../../store/conversation";
5
5
  import { useChatContext } from "../../context/ChatContext";
6
+ import { useChatNavigate } from "../../hooks/conversation/useChatNavigate";
6
7
  import { formatTimestamp, parseLatestMessage } from "../../utils/common";
7
8
  import GroupCompositeAvatar from "../../components/group/GroupCompositeAvatar";
8
9
  import ThreadCard from "./ThreadCard";
9
10
  import MentionIndicatorIcon from "./MentionIndicatorIcon";
10
11
  const ConversationByGroupItem = ({ group, latestPreview, }) => {
11
12
  const { t } = useTranslation();
12
- const { user, onNavigate } = useChatContext();
13
+ const { user } = useChatContext();
14
+ const onNavigate = useChatNavigate();
13
15
  const setConversationData = useConversationStore((state) => state.setConversationData);
14
16
  const setSelectedConversationId = useConversationStore((state) => state.setSelectedConversationId);
15
17
  const isSelected = useConversationStore((state) => state.selectedConversationId === group.conversationId);
@@ -22,7 +24,7 @@ const ConversationByGroupItem = ({ group, latestPreview, }) => {
22
24
  newSearchParams.delete("userId");
23
25
  newSearchParams.delete("groupId");
24
26
  newSearchParams.delete("botId");
25
- onNavigate === null || onNavigate === void 0 ? void 0 : onNavigate(`${window.location.pathname}?${newSearchParams.toString()}`);
27
+ onNavigate(`${window.location.pathname}?${newSearchParams.toString()}`);
26
28
  };
27
29
  const latestMsg = (latestPreview === null || latestPreview === void 0 ? void 0 : latestPreview.latestMsg) || "";
28
30
  const latestMsgSendTime = (latestPreview === null || latestPreview === void 0 ? void 0 : latestPreview.latestMsgSendTime) || 0;
@@ -1 +1 @@
1
- {"version":3,"file":"ConversationBySessionItem.d.ts","sourceRoot":"","sources":["../../../src/components/conversation/ConversationBySessionItem.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAE7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAWhD,UAAU,8BAA8B;IACtC,WAAW,EAAE,gBAAgB,CAAC;IAC9B,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED,QAAA,MAAM,yBAAyB,GAAI,iCAGhC,8BAA8B,mDA8EhC,CAAC;AAEF,eAAe,yBAAyB,CAAC"}
1
+ {"version":3,"file":"ConversationBySessionItem.d.ts","sourceRoot":"","sources":["../../../src/components/conversation/ConversationBySessionItem.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAE7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAYhD,UAAU,8BAA8B;IACtC,WAAW,EAAE,gBAAgB,CAAC;IAC9B,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED,QAAA,MAAM,yBAAyB,GAAI,iCAGhC,8BAA8B,mDA+EhC,CAAC;AAEF,eAAe,yBAAyB,CAAC"}
@@ -4,6 +4,7 @@ import { useTranslation } from "react-i18next";
4
4
  import useConversationStore from "../../store/conversation";
5
5
  import { Avatar } from "antd";
6
6
  import { useChatContext } from "../../context/ChatContext";
7
+ import { useChatNavigate } from "../../hooks/conversation/useChatNavigate";
7
8
  import { useConversationDisplayData } from "../../hooks/conversation/useConversation";
8
9
  import { formatTimestamp, parseLatestMessage } from "../../utils/common";
9
10
  import { isGroupSession } from "../../utils/imCommon";
@@ -13,7 +14,8 @@ import MentionIndicatorIcon from "./MentionIndicatorIcon";
13
14
  const ConversationBySessionItem = ({ sessionItem, latestPreview, }) => {
14
15
  var _a;
15
16
  const { t } = useTranslation();
16
- const { user, onNavigate } = useChatContext();
17
+ const { user } = useChatContext();
18
+ const onNavigate = useChatNavigate();
17
19
  const isSelected = useConversationStore((state) => {
18
20
  var _a;
19
21
  return state.selectedConversationId ===
@@ -29,7 +31,7 @@ const ConversationBySessionItem = ({ sessionItem, latestPreview, }) => {
29
31
  newSearchParams.delete("userId");
30
32
  newSearchParams.delete("groupId");
31
33
  newSearchParams.delete("botId");
32
- onNavigate === null || onNavigate === void 0 ? void 0 : onNavigate(`${window.location.pathname}?${newSearchParams.toString()}`);
34
+ onNavigate(`${window.location.pathname}?${newSearchParams.toString()}`);
33
35
  setSelectedConversationId(conversation.conversationID);
34
36
  };
35
37
  const { avatar, displayName = "" } = useConversationDisplayData(conversation || null);
@@ -4,13 +4,13 @@ import { useTranslation } from "react-i18next";
4
4
  import { Empty, Spin } from "antd";
5
5
  import InfiniteScroll from "react-infinite-scroll-component";
6
6
  import useConversationStore from "../../store/conversation";
7
- import { useChatContext } from "../../context/ChatContext";
7
+ import { useChatNavigate } from "../../hooks/conversation/useChatNavigate";
8
8
  import { Icon } from "../../components/icon";
9
9
  import ConversationInboxItem from "./ConversationInboxItem";
10
10
  const FooterSkeleton = () => (_jsxs("div", { className: "flex items-center gap-3 p-3", children: [_jsx("div", { className: "h-10 w-10 animate-pulse rounded-full bg-neutral-200" }), _jsxs("div", { className: "flex flex-1 flex-col gap-2", children: [_jsx("div", { className: "h-3 w-1/2 animate-pulse rounded bg-neutral-200" }), _jsx("div", { className: "h-2.5 w-1/3 animate-pulse rounded bg-neutral-200" })] })] }));
11
11
  const ConversationInboxList = ({ items, isLoading, isFetchingNextPage, hasNextPage, onLoadMore, onSelectThread, }) => {
12
12
  const { t } = useTranslation("conversation-inbox");
13
- const { onNavigate } = useChatContext();
13
+ const onNavigate = useChatNavigate();
14
14
  const setConversationData = useConversationStore((state) => state.setConversationData);
15
15
  const setSelectedConversationId = useConversationStore((state) => state.setSelectedConversationId);
16
16
  const handleSelectThread = (item) => {
@@ -19,7 +19,7 @@ const ConversationInboxList = ({ items, isLoading, isFetchingNextPage, hasNextPa
19
19
  newSearchParams.delete("userId");
20
20
  newSearchParams.delete("groupId");
21
21
  newSearchParams.delete("botId");
22
- onNavigate === null || onNavigate === void 0 ? void 0 : onNavigate(`${window.location.pathname}?${newSearchParams.toString()}`);
22
+ onNavigate(`${window.location.pathname}?${newSearchParams.toString()}`);
23
23
  setSelectedConversationId(item.conversationID);
24
24
  setConversationData(item);
25
25
  onSelectThread === null || onSelectThread === void 0 ? void 0 : onSelectThread(item);
@@ -1 +1 @@
1
- {"version":3,"file":"ContactSearchPanel.d.ts","sourceRoot":"","sources":["../../../../src/components/conversation-inbox/contact-search/ContactSearchPanel.tsx"],"names":[],"mappings":"AA8BA,UAAU,uBAAuB;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,QAAA,MAAM,kBAAkB,GAAI,mBAAmB,uBAAuB,4CAuTrE,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"ContactSearchPanel.d.ts","sourceRoot":"","sources":["../../../../src/components/conversation-inbox/contact-search/ContactSearchPanel.tsx"],"names":[],"mappings":"AA+BA,UAAU,uBAAuB;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,QAAA,MAAM,kBAAkB,GAAI,mBAAmB,uBAAuB,4CA2TrE,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
@@ -6,9 +6,10 @@ import { useDebounce } from "ahooks";
6
6
  import InfiniteScroll from "react-infinite-scroll-component";
7
7
  import { useTranslation } from "react-i18next";
8
8
  import { Icon } from "../../../components/icon";
9
- import { useChatContext } from "../../../context/ChatContext";
9
+ import { useChatNavigate } from "../../../hooks/conversation/useChatNavigate";
10
10
  import { useSearchContacts } from "../../../hooks/search/useSearchContacts";
11
11
  import { useSearchPublicGroups } from "../../../hooks/search/useSearchPublicGroups";
12
+ import useConversationStore from "../../../store/conversation";
12
13
  import ContactSearchFilters from "./ContactSearchFilters";
13
14
  import ContactSearchResultItem from "./ContactSearchResultItem";
14
15
  import ContactSearchSectionHeader from "./ContactSearchSectionHeader";
@@ -17,12 +18,13 @@ import ContactSearchTabs from "./ContactSearchTabs";
17
18
  import ContactSearchViewMoreBar from "./ContactSearchViewMoreBar";
18
19
  import PublicGroupResultItem from "./PublicGroupResultItem";
19
20
  import { CONTACT_SEARCH_DEBOUNCE_MS, CONTACT_SEARCH_ICON_SIZE, CONTACT_SEARCH_PREVIEW_LIMIT, ContactSearchTab, } from "./constants";
20
- import { buildContactSearchParams } from "./utils";
21
+ import { buildContactSearchParams, resolveContactSearchTarget } from "./utils";
21
22
  const SCROLL_TARGET_ID = "contact-search-scroll";
22
23
  const COMMUNITY_SCROLL_TARGET_ID = "contact-search-community-scroll";
23
24
  const ContactSearchPanel = ({ open, onClose }) => {
24
25
  const { t } = useTranslation("conversation-inbox");
25
- const { onNavigate } = useChatContext();
26
+ const onNavigate = useChatNavigate();
27
+ const setPendingResolveTarget = useConversationStore((state) => state.setPendingResolveTarget);
26
28
  const [keyword, setKeyword] = useState("");
27
29
  const [activeType, setActiveType] = useState();
28
30
  const [activeTab, setActiveTab] = useState(ContactSearchTab.All);
@@ -49,18 +51,18 @@ const ContactSearchPanel = ({ open, onClose }) => {
49
51
  enabled: open && activeTab === ContactSearchTab.Community,
50
52
  });
51
53
  const handleOpenGroup = (groupID) => {
52
- const params = new URLSearchParams(window.location.search);
53
- params.delete("threadId");
54
- params.delete("userId");
55
- params.delete("botId");
56
- params.set("groupId", groupID);
54
+ const target = { groupId: groupID };
55
+ setPendingResolveTarget(target);
56
+ const params = buildContactSearchParams(target);
57
57
  onClose();
58
- onNavigate === null || onNavigate === void 0 ? void 0 : onNavigate(`${window.location.pathname}?${params.toString()}`);
58
+ onNavigate(`${window.location.pathname}?${params.toString()}`);
59
59
  };
60
60
  const handleSelectContact = (contact) => {
61
- const params = buildContactSearchParams(contact);
61
+ const target = resolveContactSearchTarget(contact);
62
+ setPendingResolveTarget(target);
63
+ const params = buildContactSearchParams(target);
62
64
  onClose();
63
- onNavigate === null || onNavigate === void 0 ? void 0 : onNavigate(`${window.location.pathname}?${params.toString()}`);
65
+ onNavigate(`${window.location.pathname}?${params.toString()}`);
64
66
  };
65
67
  // Filters belong to the `Liên hệ` tab only, so leaving it drops the active
66
68
  // type — `Tất cả` always previews every contact type.
@@ -2,5 +2,11 @@ import { ContactSearchItem, ContactSearchType } from "../../../types/dto";
2
2
  import { PeerType } from "../../../types/conversation";
3
3
  export declare const resolveContactPeerType: (type: ContactSearchType) => PeerType;
4
4
  export declare const formatLastOnlineTime: (lastOnlineTime: string | null) => string;
5
- export declare const buildContactSearchParams: (contact: ContactSearchItem) => URLSearchParams;
5
+ export interface ContactSearchTarget {
6
+ userId?: string;
7
+ groupId?: string;
8
+ botId?: string;
9
+ }
10
+ export declare const resolveContactSearchTarget: (contact: ContactSearchItem) => ContactSearchTarget;
11
+ export declare const buildContactSearchParams: (target: ContactSearchTarget) => URLSearchParams;
6
12
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/components/conversation-inbox/contact-search/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAahD,eAAO,MAAM,sBAAsB,GAAI,MAAM,iBAAiB,KAAG,QAChC,CAAC;AAIlC,eAAO,MAAM,oBAAoB,GAAI,gBAAgB,MAAM,GAAG,IAAI,KAAG,MACd,CAAC;AAIxD,eAAO,MAAM,wBAAwB,GACnC,SAAS,iBAAiB,KACzB,eA0BF,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/components/conversation-inbox/contact-search/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAahD,eAAO,MAAM,sBAAsB,GAAI,MAAM,iBAAiB,KAAG,QAChC,CAAC;AAIlC,eAAO,MAAM,oBAAoB,GAAI,gBAAgB,MAAM,GAAG,IAAI,KAAG,MACd,CAAC;AAExD,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAKD,eAAO,MAAM,0BAA0B,GACrC,SAAS,iBAAiB,KACzB,mBAcF,CAAC;AAEF,eAAO,MAAM,wBAAwB,GACnC,QAAQ,mBAAmB,KAC1B,eAYF,CAAC"}
@@ -15,30 +15,34 @@ export const resolveContactPeerType = (type) => CONTACT_TYPE_TO_PEER_TYPE[type];
15
15
  // The Vietnamese dayjs locale is already registered in the SDK layout, so
16
16
  // fromNow() renders "1 giờ trước" without extra setup here.
17
17
  export const formatLastOnlineTime = (lastOnlineTime) => lastOnlineTime ? dayjs(lastOnlineTime).fromNow() : "";
18
- // Each contact type resolves to a different route param; the conversation
18
+ // Each contact type resolves to a different target field; the conversation
19
19
  // detail screen turns it into an existing thread or the new-chat flow.
20
- export const buildContactSearchParams = (contact) => {
20
+ // Shared by both the URL-synced and bubble-mode (store-only) navigation paths.
21
+ export const resolveContactSearchTarget = (contact) => {
21
22
  var _a;
22
- const params = new URLSearchParams(window.location.search);
23
- params.delete("threadId");
24
- params.delete("userId");
25
- params.delete("groupId");
26
- params.delete("botId");
27
23
  if (contact.type === ContactSearchType.Group) {
28
- if (contact.targetGroupId)
29
- params.set("groupId", contact.targetGroupId);
30
- return params;
24
+ return contact.targetGroupId ? { groupId: contact.targetGroupId } : {};
31
25
  }
32
26
  // PDP bots carry their id in targetBotId; targetUserId is null for them.
33
27
  if (contact.type === ContactSearchType.PdpBot) {
34
- if (contact.targetBotId)
35
- params.set("botId", contact.targetBotId);
36
- return params;
28
+ return contact.targetBotId ? { botId: contact.targetBotId } : {};
37
29
  }
38
30
  // Individual contacts: sellers carry targetUserId, customers carry
39
31
  // targetCustomerId — the other field is null in each case.
40
32
  const peerId = (_a = contact.targetUserId) !== null && _a !== void 0 ? _a : contact.targetCustomerId;
41
- if (peerId)
42
- params.set("userId", peerId);
33
+ return peerId ? { userId: peerId } : {};
34
+ };
35
+ export const buildContactSearchParams = (target) => {
36
+ const params = new URLSearchParams(window.location.search);
37
+ params.delete("threadId");
38
+ params.delete("userId");
39
+ params.delete("groupId");
40
+ params.delete("botId");
41
+ if (target.groupId)
42
+ params.set("groupId", target.groupId);
43
+ if (target.botId)
44
+ params.set("botId", target.botId);
45
+ if (target.userId)
46
+ params.set("userId", target.userId);
43
47
  return params;
44
48
  };
@@ -1 +1 @@
1
- {"version":3,"file":"GroupMembersDrawer.d.ts","sourceRoot":"","sources":["../../../src/components/message/GroupMembersDrawer.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAiB/C,UAAU,uBAAuB;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA0CD,QAAA,MAAM,kBAAkB,GAAI,wDAKzB,uBAAuB,4CAwjBzB,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"GroupMembersDrawer.d.ts","sourceRoot":"","sources":["../../../src/components/message/GroupMembersDrawer.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAiB/C,UAAU,uBAAuB;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA0CD,QAAA,MAAM,kBAAkB,GAAI,wDAKzB,uBAAuB,4CAwjBzB,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
@@ -5,7 +5,7 @@ import ConfirmModal from "../../components/common/ConfirmModal";
5
5
  import { useEffect, useMemo, useState } from "react";
6
6
  import { useDebounce } from "ahooks";
7
7
  import { useTranslation } from "react-i18next";
8
- import { useChatContext } from "../../context/ChatContext";
8
+ import { useChatNavigate } from "../../hooks/conversation/useChatNavigate";
9
9
  import useAuthStore from "../../store/auth";
10
10
  import useConversationStore from "../../store/conversation";
11
11
  import { useGroupMembers } from "../../hooks/group/useGroupMembers";
@@ -34,7 +34,7 @@ const getMemberRoleLabel = ({ member, customerUserID, t, }) => {
34
34
  const GroupMembersDrawer = ({ groupID, conversationId, currentSession, disabled = false, }) => {
35
35
  var _a, _b;
36
36
  const { t } = useTranslation();
37
- const { onNavigate } = useChatContext();
37
+ const onNavigate = useChatNavigate();
38
38
  const [isOpen, setIsOpen] = useState(false);
39
39
  const [showLeaveConfirm, setShowLeaveConfirm] = useState(false);
40
40
  const [showAddMember, setShowAddMember] = useState(false);
@@ -244,7 +244,7 @@ const GroupMembersDrawer = ({ groupID, conversationId, currentSession, disabled
244
244
  try {
245
245
  await leaveConversation({ conversationId });
246
246
  message.success(t("leave_group_success"));
247
- onNavigate === null || onNavigate === void 0 ? void 0 : onNavigate(window.location.pathname);
247
+ onNavigate(window.location.pathname);
248
248
  setShowLeaveConfirm(false);
249
249
  setIsOpen(false);
250
250
  }
@@ -3,14 +3,14 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
3
3
  import { useTranslation } from "react-i18next";
4
4
  import { GroupVisibility } from "@droppii-org/wasm-client-sdk";
5
5
  import useConversationStore from "../../../store/conversation";
6
- import { useChatContext } from "../../../context/ChatContext";
6
+ import { useChatNavigate } from "../../../hooks/conversation/useChatNavigate";
7
7
  import { highlightSearch, sanitizeHtml } from "../../../utils/common";
8
8
  import { Icon } from "../../../components/icon";
9
9
  import GroupCompositeAvatar from "../../../components/group/GroupCompositeAvatar";
10
10
  const SearchItemAsGroup = (props) => {
11
11
  const { group, searchTerm = "" } = props;
12
12
  const { t } = useTranslation();
13
- const { onNavigate } = useChatContext();
13
+ const onNavigate = useChatNavigate();
14
14
  const setConversationData = useConversationStore((state) => state.setConversationData);
15
15
  const setSelectedConversationId = useConversationStore((state) => state.setSelectedConversationId);
16
16
  const { conversation } = group;
@@ -24,7 +24,7 @@ const SearchItemAsGroup = (props) => {
24
24
  newSearchParams.delete("userId");
25
25
  newSearchParams.delete("groupId");
26
26
  newSearchParams.delete("botId");
27
- onNavigate === null || onNavigate === void 0 ? void 0 : onNavigate(`${window.location.pathname}?${newSearchParams.toString()}`);
27
+ onNavigate(`${window.location.pathname}?${newSearchParams.toString()}`);
28
28
  };
29
29
  return (_jsxs("div", { className: "py-3 px-2 flex items-center gap-3 hover:bg-gray-100 hover:rounded-sm cursor-pointer border-b mx-1", onClick: onPressItem, "data-cp-name": "SearchItemAsGroup", children: [_jsx(GroupCompositeAvatar, { groupID: group.groupId, faceURL: conversation.faceURL, groupName: conversation.showName, size: 48 }), _jsxs("div", { className: "flex flex-col flex-1 min-w-0 gap-0.5", children: [_jsx("p", { className: "text-sm font-semibold truncate", dangerouslySetInnerHTML: {
30
30
  __html: sanitizeHtml(highlightSearch(conversation.showName || "", searchTerm)),
@@ -2,5 +2,5 @@ import "../styles/global.css";
2
2
  import { ChatContextType, ChatProviderProps } from "../types/chat";
3
3
  export declare const ChatContext: import("react").Context<ChatContextType>;
4
4
  export declare const useChatContext: () => ChatContextType;
5
- export declare const ChatProvider: ({ children, config, renderCustomMessage, onNavigate, renderGroupAccessModal, theme, }: ChatProviderProps) => import("react/jsx-runtime").JSX.Element;
5
+ export declare const ChatProvider: ({ children, config, renderCustomMessage, onNavigate, useUrlState, renderGroupAccessModal, theme, }: ChatProviderProps) => import("react/jsx-runtime").JSX.Element;
6
6
  //# sourceMappingURL=ChatContext.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChatContext.d.ts","sourceRoot":"","sources":["../../src/context/ChatContext.tsx"],"names":[],"mappings":"AAEA,OAAO,sBAAsB,CAAC;AAG9B,OAAO,EACL,eAAe,EACf,iBAAiB,EAGlB,MAAM,cAAc,CAAC;AAStB,eAAO,MAAM,WAAW,0CAOtB,CAAC;AAEH,eAAO,MAAM,cAAc,uBAAgC,CAAC;AAS5D,eAAO,MAAM,YAAY,GAAI,uFAO1B,iBAAiB,4CAyHnB,CAAC"}
1
+ {"version":3,"file":"ChatContext.d.ts","sourceRoot":"","sources":["../../src/context/ChatContext.tsx"],"names":[],"mappings":"AAEA,OAAO,sBAAsB,CAAC;AAG9B,OAAO,EACL,eAAe,EACf,iBAAiB,EAGlB,MAAM,cAAc,CAAC;AAUtB,eAAO,MAAM,WAAW,0CAQtB,CAAC;AAEH,eAAO,MAAM,cAAc,uBAAgC,CAAC;AAS5D,eAAO,MAAM,YAAY,GAAI,oGAQ1B,iBAAiB,4CAiInB,CAAC"}
@@ -6,6 +6,7 @@ import { ConnectStatus, SyncStatus, } from "../types/chat";
6
6
  import { DChatSDK } from "../constants/sdk";
7
7
  import MainLayout from "../layout";
8
8
  import useAuthStore from "../store/auth";
9
+ import { setUrlStateEnabled } from "../store/conversation";
9
10
  import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
10
11
  import { ConfigProvider } from "antd";
11
12
  const queryClient = new QueryClient();
@@ -16,6 +17,7 @@ export const ChatContext = createContext({
16
17
  getSelfUserInfo: () => { },
17
18
  updateConnectStatus: () => { },
18
19
  updateSyncStatus: () => { },
20
+ useUrlState: true,
19
21
  });
20
22
  export const useChatContext = () => useContext(ChatContext);
21
23
  const DEFAULT_THEME = {
@@ -24,8 +26,14 @@ const DEFAULT_THEME = {
24
26
  "--dc-color-primary-light": "#E6E9FF",
25
27
  "--dc-color-primary-focus": "#607CFB",
26
28
  };
27
- export const ChatProvider = ({ children, config, renderCustomMessage, onNavigate, renderGroupAccessModal, theme, }) => {
29
+ export const ChatProvider = ({ children, config, renderCustomMessage, onNavigate, useUrlState = true, renderGroupAccessModal, theme, }) => {
28
30
  var _a, _b, _c, _d;
31
+ // The store's clearSelectedConversation touches window.history directly
32
+ // (it has no React context access) — mirror the flag there so bubble mode
33
+ // doesn't clobber the host page's own URL.
34
+ useEffect(() => {
35
+ setUrlStateEnabled(useUrlState);
36
+ }, [useUrlState]);
29
37
  const themeStyle = {
30
38
  "--dc-color-primary": (_a = theme === null || theme === void 0 ? void 0 : theme.primary) !== null && _a !== void 0 ? _a : DEFAULT_THEME["--dc-color-primary"],
31
39
  "--dc-color-primary-hover": (_b = theme === null || theme === void 0 ? void 0 : theme.primaryHover) !== null && _b !== void 0 ? _b : DEFAULT_THEME["--dc-color-primary-hover"],
@@ -109,6 +117,7 @@ export const ChatProvider = ({ children, config, renderCustomMessage, onNavigate
109
117
  updateSyncStatus,
110
118
  renderCustomMessage,
111
119
  onNavigate,
120
+ useUrlState,
112
121
  renderGroupAccessModal,
113
122
  }, children: _jsx(ConfigProvider, { getPopupContainer: () => { var _a; return (_a = rootRef.current) !== null && _a !== void 0 ? _a : document.body; }, children: _jsx(QueryClientProvider, { client: queryClient, children: _jsx("div", { ref: rootRef, style: themeStyle, className: "contents", children: _jsx(MainLayout, { children: children }) }) }) }) }));
114
123
  };
@@ -0,0 +1,2 @@
1
+ export declare const useChatNavigate: () => (url: string) => void;
2
+ //# sourceMappingURL=useChatNavigate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useChatNavigate.d.ts","sourceRoot":"","sources":["../../../src/hooks/conversation/useChatNavigate.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,eAAe,cAIlB,MAAM,SAMf,CAAC"}
@@ -0,0 +1,14 @@
1
+ "use client";
2
+ import { useCallback } from "react";
3
+ import { useChatContext } from "../../context/ChatContext";
4
+ // Every call site builds a URL and hands it to onNavigate — wrapping that
5
+ // here means bubble-mode hosts (useUrlState: false) get a single place that
6
+ // no-ops instead of needing every call site to check the flag itself.
7
+ export const useChatNavigate = () => {
8
+ const { onNavigate, useUrlState = true } = useChatContext();
9
+ return useCallback((url) => {
10
+ if (!useUrlState)
11
+ return;
12
+ onNavigate === null || onNavigate === void 0 ? void 0 : onNavigate(url);
13
+ }, [onNavigate, useUrlState]);
14
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"useGlobalEvent.d.ts","sourceRoot":"","sources":["../../../src/hooks/global/useGlobalEvent.ts"],"names":[],"mappings":"AAyCA,eAAO,MAAM,cAAc,YAsiB1B,CAAC"}
1
+ {"version":3,"file":"useGlobalEvent.d.ts","sourceRoot":"","sources":["../../../src/hooks/global/useGlobalEvent.ts"],"names":[],"mappings":"AA0CA,eAAO,MAAM,cAAc,YAuiB1B,CAAC"}
@@ -7,6 +7,7 @@ import { pushNewMessage, updateOneMessage } from "../../hooks/message/useMessage
7
7
  import { fetchPinnedMessages } from "../../hooks/message/usePinnedMessages";
8
8
  import { applyRevokedMessage } from "../../hooks/message/useRevokeMessage";
9
9
  import { useChatContext } from "../../context/ChatContext";
10
+ import { useChatNavigate } from "../../hooks/conversation/useChatNavigate";
10
11
  import useConversationStore from "../../store/conversation";
11
12
  import useAuthStore from "../../store/auth";
12
13
  import { useRefetchChatToken } from "../../hooks/init/useChatToken";
@@ -19,7 +20,8 @@ import { invalidateSessionQueries } from "../../utils/queryHelpers";
19
20
  import emitter from "../../utils/events";
20
21
  const notPushType = [MessageType.TypingMessage, MessageType.RevokeMessage];
21
22
  export const useGlobalEvent = () => {
22
- const { user, onNavigate } = useChatContext();
23
+ const { user } = useChatContext();
24
+ const onNavigate = useChatNavigate();
23
25
  const userRef = useLatest(user);
24
26
  const queryClient = useQueryClient();
25
27
  const { updateConnectStatus, updateSyncStatus, getSelfUserInfo } = useChatContext();
@@ -304,7 +306,7 @@ export const useGlobalEvent = () => {
304
306
  newSearchParams.delete("botId");
305
307
  const query = newSearchParams.toString();
306
308
  const pathname = window.location.pathname;
307
- onNavigate === null || onNavigate === void 0 ? void 0 : onNavigate(query ? `${pathname}?${query}` : pathname);
309
+ onNavigate(query ? `${pathname}?${query}` : pathname);
308
310
  }
309
311
  // Public groups the user can still view-only stay in conversationList;
310
312
  // private-blocked/disbanded groups get dropped.
@@ -6,7 +6,7 @@ import { useTranslation } from "react-i18next";
6
6
  import { GroupType, GroupVerificationType, GroupVisibility, SessionType } from "@droppii-org/wasm-client-sdk";
7
7
  import { DChatSDK } from "../../constants/sdk";
8
8
  import useAuthStore from "../../store/auth";
9
- import { useChatContext } from "../../context/ChatContext";
9
+ import { useChatNavigate } from "../../hooks/conversation/useChatNavigate";
10
10
  import { generateDefaultGroupName } from "../../utils/groupName";
11
11
  import { QUERY_KEYS } from "../../services/query";
12
12
  const GET_CONVERSATION_RETRY_COUNT = 4;
@@ -43,7 +43,7 @@ const getOneConversationWithRetry = async (groupID) => {
43
43
  export const useCreateGroup = () => {
44
44
  const { t } = useTranslation("conversation-inbox");
45
45
  const { t: tCommon } = useTranslation();
46
- const { onNavigate } = useChatContext();
46
+ const onNavigate = useChatNavigate();
47
47
  const queryClient = useQueryClient();
48
48
  const userID = useAuthStore((state) => state.userID);
49
49
  const createGroup = useCallback(async ({ groupName, isPublic, members, faceURL }) => {
@@ -80,7 +80,7 @@ export const useCreateGroup = () => {
80
80
  });
81
81
  const searchParams = new URLSearchParams(window.location.search);
82
82
  searchParams.set("threadId", conversation.conversationID);
83
- onNavigate === null || onNavigate === void 0 ? void 0 : onNavigate(`${window.location.pathname}?${searchParams.toString()}`);
83
+ onNavigate(`${window.location.pathname}?${searchParams.toString()}`);
84
84
  return conversation;
85
85
  }
86
86
  catch (error) {
@@ -5,9 +5,9 @@ import useConversationStore from "../../store/conversation";
5
5
  import useSessionStore from "../../store/session";
6
6
  import { SessionStatus } from "../../types/chat";
7
7
  import emitter from "../../utils/events";
8
- import { useChatContext } from "../../context/ChatContext";
8
+ import { useChatNavigate } from "../../hooks/conversation/useChatNavigate";
9
9
  export const useDismissGroup = () => {
10
- const { onNavigate } = useChatContext();
10
+ const onNavigate = useChatNavigate();
11
11
  return useMutation({
12
12
  mutationFn: async ({ groupID }) => {
13
13
  // Set before the request — OnGroupDismissed also fires on our own
@@ -31,7 +31,7 @@ export const useDismissGroup = () => {
31
31
  newSearchParams.delete("botId");
32
32
  const query = newSearchParams.toString();
33
33
  const pathname = window.location.pathname;
34
- onNavigate === null || onNavigate === void 0 ? void 0 : onNavigate(query ? `${pathname}?${query}` : pathname);
34
+ onNavigate(query ? `${pathname}?${query}` : pathname);
35
35
  },
36
36
  onError: () => {
37
37
  useConversationStore.getState().setSelfDisbandedGroupID(null);
@@ -3,9 +3,9 @@ import { useMutation } from "@tanstack/react-query";
3
3
  import { DChatSDK } from "../../constants/sdk";
4
4
  import useConversationStore from "../../store/conversation";
5
5
  import emitter from "../../utils/events";
6
- import { useChatContext } from "../../context/ChatContext";
6
+ import { useChatNavigate } from "../../hooks/conversation/useChatNavigate";
7
7
  export const useQuitGroup = () => {
8
- const { onNavigate } = useChatContext();
8
+ const onNavigate = useChatNavigate();
9
9
  return useMutation({
10
10
  mutationFn: async ({ groupID, conversationID, isPublicGroup, }) => {
11
11
  // Set before the request — OnJoinedGroupDeleted also fires on our own
@@ -53,7 +53,7 @@ export const useQuitGroup = () => {
53
53
  newSearchParams.delete("botId");
54
54
  const query = newSearchParams.toString();
55
55
  const pathname = window.location.pathname;
56
- onNavigate === null || onNavigate === void 0 ? void 0 : onNavigate(query ? `${pathname}?${query}` : pathname);
56
+ onNavigate(query ? `${pathname}?${query}` : pathname);
57
57
  },
58
58
  onError: () => {
59
59
  useConversationStore.getState().setSelfLeftGroupID(null);
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/screens/conversation-detail/index.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,kCAAkC,CAAC;AAWrF,OAAO,EAEL,KAAK,4BAA4B,EAClC,MAAM,6CAA6C,CAAC;AAGrD,MAAM,WAAW,4BACf,SAAQ,4BAA4B,EACpC,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,QAAA,MAAM,uBAAuB,GAAI,wFAS9B,4BAA4B,mDAwK9B,CAAC;AAEF,eAAe,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/screens/conversation-detail/index.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,kCAAkC,CAAC;AAWrF,OAAO,EAEL,KAAK,4BAA4B,EAClC,MAAM,6CAA6C,CAAC;AAGrD,MAAM,WAAW,4BACf,SAAQ,4BAA4B,EACpC,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,QAAA,MAAM,uBAAuB,GAAI,wFAS9B,4BAA4B,mDA0L9B,CAAC;AAEF,eAAe,uBAAuB,CAAC"}
@@ -14,6 +14,7 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
14
14
  import { useState } from "react";
15
15
  import { useTranslation } from "react-i18next";
16
16
  import { useChatContext } from "../../context/ChatContext";
17
+ import { useChatNavigate } from "../../hooks/conversation/useChatNavigate";
17
18
  import { useBoolean } from "ahooks";
18
19
  import clsx from "clsx";
19
20
  import { Empty, Spin } from "antd";
@@ -31,8 +32,11 @@ const DChatConversationDetail = (_a) => {
31
32
  var _b;
32
33
  var { className, children, onBack, conversationId, userId, groupId, botId } = _a, inputProps = __rest(_a, ["className", "children", "onBack", "conversationId", "userId", "groupId", "botId"]);
33
34
  const { t } = useTranslation("conversation-inbox");
34
- const { onNavigate } = useChatContext();
35
+ const { useUrlState = true } = useChatContext();
36
+ const onNavigate = useChatNavigate();
35
37
  const conversation = useConversationStore((state) => state.conversationData);
38
+ const clearSelectedConversation = useConversationStore((state) => state.clearSelectedConversation);
39
+ const setPendingResolveTarget = useConversationStore((state) => state.setPendingResolveTarget);
36
40
  const { isResolving, error } = useResolveConversation({
37
41
  conversationId,
38
42
  userId,
@@ -49,6 +53,15 @@ const DChatConversationDetail = (_a) => {
49
53
  const [isProfileOpen, { setTrue: openProfile, setFalse: closeProfile }] = useBoolean(false);
50
54
  const [resourceTab, setResourceTab] = useState(null);
51
55
  const handleBack = () => {
56
+ // Bubble mode owns no page/URL to go "back" to — window.history.back()
57
+ // would instead navigate the host app itself. The store is the only
58
+ // source of truth here, so clear it directly.
59
+ if (!useUrlState) {
60
+ clearSelectedConversation();
61
+ setPendingResolveTarget(null);
62
+ onBack === null || onBack === void 0 ? void 0 : onBack();
63
+ return;
64
+ }
52
65
  if (typeof window !== "undefined" && window.history.length > 1) {
53
66
  window.history.back();
54
67
  onBack === null || onBack === void 0 ? void 0 : onBack();
@@ -61,7 +74,7 @@ const DChatConversationDetail = (_a) => {
61
74
  newSearchParams.delete("botId");
62
75
  const query = newSearchParams.toString();
63
76
  const pathname = window.location.pathname;
64
- onNavigate === null || onNavigate === void 0 ? void 0 : onNavigate(query ? `${pathname}?${query}` : pathname);
77
+ onNavigate(query ? `${pathname}?${query}` : pathname);
65
78
  onBack === null || onBack === void 0 ? void 0 : onBack();
66
79
  };
67
80
  if (isResolving) {
@@ -11,6 +11,6 @@ export interface DChatConversationInboxProps {
11
11
  headerTitle?: string;
12
12
  headerRightSlot?: React.ReactNode;
13
13
  }
14
- declare const DChatConversationInbox: ({ onSelectThread, className, moreOptions, chatCategory, showSearch, headerTitle, headerRightSlot, }: DChatConversationInboxProps) => import("react/jsx-runtime").JSX.Element;
14
+ declare const DChatConversationInbox: (props: DChatConversationInboxProps) => import("react/jsx-runtime").JSX.Element;
15
15
  export default DChatConversationInbox;
16
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/screens/conversation-inbox/index.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG/D,MAAM,WAAW,2BAA2B;IAC1C,cAAc,CAAC,EAAE,CAAC,YAAY,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACjC,6FAA6F;IAC7F,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,yEAAyE;IACzE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACnC;AAED,QAAA,MAAM,sBAAsB,GAAI,qGAQ7B,2BAA2B,4CAiG7B,CAAC;AAEF,eAAe,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/screens/conversation-inbox/index.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG/D,MAAM,WAAW,2BAA2B;IAC1C,cAAc,CAAC,EAAE,CAAC,YAAY,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACjC,6FAA6F;IAC7F,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,yEAAyE;IACzE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACnC;AAoLD,QAAA,MAAM,sBAAsB,GAAI,OAAO,2BAA2B,4CAQjE,CAAC;AAEF,eAAe,sBAAsB,CAAC"}
@@ -7,6 +7,7 @@ import { useBoolean } from "ahooks";
7
7
  import clsx from "clsx";
8
8
  import useAuthStore from "../../store/auth";
9
9
  import useConversationStore from "../../store/conversation";
10
+ import { useChatContext } from "../../context/ChatContext";
10
11
  import { useConversationList } from "../../hooks/conversation/useConversationList";
11
12
  import { useActiveConversation } from "../../hooks/conversation/useActiveConversation";
12
13
  import { ConversationInboxHeader } from "../../components/conversation-inbox";
@@ -15,23 +16,48 @@ import { ContactSearchPanel } from "../../components/conversation-inbox/contact-
15
16
  import DChatConversationDetail from "../../screens/conversation-detail";
16
17
  import { DChatApplicationType } from "../../types/chat";
17
18
  import { Icon } from "../../components/icon";
18
- const DChatConversationInbox = ({ onSelectThread, className, moreOptions, chatCategory, showSearch = true, headerTitle, headerRightSlot, }) => {
19
- var _a, _b, _c;
20
- const { t } = useTranslation("conversation-inbox");
19
+ // Reads the active-thread target from the URL and keeps the store in sync
20
+ // with it (back/forward, external links). Only mounted when useUrlState is
21
+ // true — bubble mode has no URL to read, see WithStoreTarget below.
22
+ const DChatConversationInboxWithUrlTarget = (props) => {
23
+ var _a, _b, _c, _d;
21
24
  const searchParams = useSearchParams();
22
- const threadId = searchParams.get("threadId");
23
- const userId = (_a = searchParams.get("userId")) !== null && _a !== void 0 ? _a : undefined;
24
- const groupId = (_b = searchParams.get("groupId")) !== null && _b !== void 0 ? _b : undefined;
25
- const botId = (_c = searchParams.get("botId")) !== null && _c !== void 0 ? _c : undefined;
25
+ const conversationList = useInboxConversationList(props.chatCategory);
26
+ useActiveConversation(conversationList.items);
27
+ const target = {
28
+ threadId: (_a = searchParams.get("threadId")) !== null && _a !== void 0 ? _a : undefined,
29
+ userId: (_b = searchParams.get("userId")) !== null && _b !== void 0 ? _b : undefined,
30
+ groupId: (_c = searchParams.get("groupId")) !== null && _c !== void 0 ? _c : undefined,
31
+ botId: (_d = searchParams.get("botId")) !== null && _d !== void 0 ? _d : undefined,
32
+ };
33
+ return (_jsx(DChatConversationInboxBody, Object.assign({}, props, { target: target, conversationList: conversationList })));
34
+ };
35
+ // Bubble mode (useUrlState: false): no page/URL owns the active thread, so
36
+ // the target comes entirely from the store — selectedConversationId for an
37
+ // existing thread, pendingResolveTarget for a brand-new contact/group/bot
38
+ // picked before a conversationID exists (see ContactSearchPanel).
39
+ const DChatConversationInboxWithStoreTarget = (props) => {
40
+ const conversationList = useInboxConversationList(props.chatCategory);
41
+ const selectedConversationId = useConversationStore((state) => state.selectedConversationId);
42
+ const pendingResolveTarget = useConversationStore((state) => state.pendingResolveTarget);
43
+ const target = {
44
+ threadId: selectedConversationId || undefined,
45
+ userId: pendingResolveTarget === null || pendingResolveTarget === void 0 ? void 0 : pendingResolveTarget.userId,
46
+ groupId: pendingResolveTarget === null || pendingResolveTarget === void 0 ? void 0 : pendingResolveTarget.groupId,
47
+ botId: pendingResolveTarget === null || pendingResolveTarget === void 0 ? void 0 : pendingResolveTarget.botId,
48
+ };
49
+ return (_jsx(DChatConversationInboxBody, Object.assign({}, props, { target: target, conversationList: conversationList })));
50
+ };
51
+ const useInboxConversationList = (chatCategory) => {
26
52
  const applicationType = useAuthStore((state) => state.applicationType);
53
+ const isApplicationTypeValid = Object.values(DChatApplicationType).includes(applicationType);
54
+ return Object.assign(Object.assign({}, useConversationList({ enabled: isApplicationTypeValid, chatCategory })), { isApplicationTypeValid });
55
+ };
56
+ const DChatConversationInboxBody = ({ onSelectThread, className, moreOptions, showSearch = true, headerTitle, headerRightSlot, target, conversationList, }) => {
57
+ const { t } = useTranslation("conversation-inbox");
27
58
  const selectedConversationId = useConversationStore((state) => state.selectedConversationId);
28
59
  const [isSearchOpen, { setTrue: openSearch, setFalse: closeSearch }] = useBoolean(false);
29
- const isApplicationTypeValid = Object.values(DChatApplicationType).includes(applicationType);
30
- const conversationList = useConversationList({
31
- enabled: isApplicationTypeValid,
32
- chatCategory,
33
- });
34
- useActiveConversation(conversationList.items);
60
+ const { threadId, userId, groupId, botId } = target;
35
61
  // Any of the four targets opens the detail screen — useResolveConversation
36
62
  // turns userId/groupId/botId into a thread (creating the bot one when
37
63
  // missing), so entry points that only know the peer still work.
@@ -51,6 +77,14 @@ const DChatConversationInbox = ({ onSelectThread, className, moreOptions, chatCa
51
77
  // `relative` + `overflow-hidden` keep ContactSearchPanel's Drawer
52
78
  // (getContainer={false}) inside this column instead of escaping to
53
79
  // the viewport — same containment the conversation detail root uses.
54
- "relative flex h-full w-full flex-col overflow-hidden bg-white", className), children: [_jsx(ConversationInboxHeader, { onOpenSearch: showSearch ? openSearch : undefined, title: headerTitle, rightSlot: headerRightSlot }), !isApplicationTypeValid ? (_jsx("div", { className: "flex flex-1 items-center justify-center py-12", children: _jsx(Empty, { image: _jsx("div", { className: "flex justify-center", children: _jsx(Icon, { icon: "chat-square-b", size: 80, className: "text-[var(--dc-color-primary-light)]" }) }), description: t("empty.no_conversations") }) })) : (_jsx(ConversationInboxList, { items: conversationList.items, isLoading: conversationList.isLoading, isFetchingNextPage: conversationList.isFetchingNextPage, hasNextPage: conversationList.hasNextPage, onLoadMore: conversationList.fetchNextPage, onSelectThread: onSelectThread })), _jsx(ContactSearchPanel, { open: isSearchOpen, onClose: closeSearch })] }));
80
+ "relative flex h-full w-full flex-col overflow-hidden bg-white", className), children: [_jsx(ConversationInboxHeader, { onOpenSearch: showSearch ? openSearch : undefined, title: headerTitle, rightSlot: headerRightSlot }), !conversationList.isApplicationTypeValid ? (_jsx("div", { className: "flex flex-1 items-center justify-center py-12", children: _jsx(Empty, { image: _jsx("div", { className: "flex justify-center", children: _jsx(Icon, { icon: "chat-square-b", size: 80, className: "text-[var(--dc-color-primary-light)]" }) }), description: t("empty.no_conversations") }) })) : (_jsx(ConversationInboxList, { items: conversationList.items, isLoading: conversationList.isLoading, isFetchingNextPage: conversationList.isFetchingNextPage, hasNextPage: conversationList.hasNextPage, onLoadMore: conversationList.fetchNextPage, onSelectThread: onSelectThread })), _jsx(ContactSearchPanel, { open: isSearchOpen, onClose: closeSearch })] }));
81
+ };
82
+ // ChatProvider's useUrlState prop picks which target-resolution variant
83
+ // mounts — kept as two full components (not one with a conditional hook)
84
+ // so useSearchParams is never called conditionally. Not expected to flip at
85
+ // runtime: a host is either a URL-routed page or a bubble, never both.
86
+ const DChatConversationInbox = (props) => {
87
+ const { useUrlState = true } = useChatContext();
88
+ return useUrlState ? (_jsx(DChatConversationInboxWithUrlTarget, Object.assign({}, props))) : (_jsx(DChatConversationInboxWithStoreTarget, Object.assign({}, props)));
55
89
  };
56
90
  export default DChatConversationInbox;
@@ -1,4 +1,5 @@
1
1
  import { ConversationStore } from "./type";
2
+ export declare const setUrlStateEnabled: (enabled: boolean) => void;
2
3
  declare const useConversationStore: import("zustand").UseBoundStore<import("zustand").StoreApi<ConversationStore>>;
3
4
  export default useConversationStore;
4
5
  //# sourceMappingURL=conversation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../src/store/conversation.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAQ3C,QAAA,MAAM,oBAAoB,gFA+XvB,CAAC;AAEJ,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../src/store/conversation.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAY3C,eAAO,MAAM,kBAAkB,GAAI,SAAS,OAAO,SAElD,CAAC;AAEF,QAAA,MAAM,oBAAoB,gFAkYvB,CAAC;AAEJ,eAAe,oBAAoB,CAAC"}
@@ -6,6 +6,13 @@ import { PeerType } from "../types/conversation";
6
6
  import useUserStore from "./user";
7
7
  import useAuthStore from "./auth";
8
8
  const CONVERSATION_SPLIT_COUNT = 500;
9
+ // Module-level (not store state): ChatProvider syncs this from its useUrlState
10
+ // prop so clearSelectedConversation below can skip touching window.history in
11
+ // bubble mode — this store has no React context access of its own.
12
+ let urlStateEnabled = true;
13
+ export const setUrlStateEnabled = (enabled) => {
14
+ urlStateEnabled = enabled;
15
+ };
9
16
  const useConversationStore = create((set, get) => ({
10
17
  conversationData: null,
11
18
  setConversationData: (data, dataSearchClientMsgID, options) => {
@@ -31,6 +38,8 @@ const useConversationStore = create((set, get) => ({
31
38
  })));
32
39
  },
33
40
  selectedSourceId: "",
41
+ pendingResolveTarget: null,
42
+ setPendingResolveTarget: (target) => set({ pendingResolveTarget: target }),
34
43
  // conversation
35
44
  conversationList: [],
36
45
  currentConversation: undefined,
@@ -252,7 +261,7 @@ const useConversationStore = create((set, get) => ({
252
261
  // conversation on its next run otherwise (conversationList changes
253
262
  // trigger it) — clobbering this reset right back. No onNavigate/router
254
263
  // dependency by design: this store has no access to one.
255
- if (typeof window !== "undefined") {
264
+ if (urlStateEnabled && typeof window !== "undefined") {
256
265
  const params = new URLSearchParams(window.location.search);
257
266
  if (params.has("threadId")) {
258
267
  params.delete("threadId");
@@ -268,6 +277,7 @@ const useConversationStore = create((set, get) => ({
268
277
  conversationData: null,
269
278
  selectedConversationId: "",
270
279
  selectedSourceId: "",
280
+ pendingResolveTarget: null,
271
281
  currentConversation: undefined,
272
282
  quotedMessage: null,
273
283
  pinnedMessageList: [],
@@ -51,6 +51,16 @@ export interface ConversationStore {
51
51
  selectedConversationId: string;
52
52
  selectedSourceId: string;
53
53
  setSelectedConversationId: (threadId: string) => void;
54
+ pendingResolveTarget: {
55
+ userId?: string;
56
+ groupId?: string;
57
+ botId?: string;
58
+ } | null;
59
+ setPendingResolveTarget: (target: {
60
+ userId?: string;
61
+ groupId?: string;
62
+ botId?: string;
63
+ } | null) => void;
54
64
  conversationList: ConversationItem[];
55
65
  currentConversation?: ConversationItem;
56
66
  currentGroupInfo: Map<string, GroupItem>;
@@ -1 +1 @@
1
- {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../src/store/type.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../src/store/type.ts"],"names":[],"mappings":"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"}
@@ -51,6 +51,7 @@ export interface ChatContextType {
51
51
  updateSyncStatus: (status: SyncStatus) => void;
52
52
  renderCustomMessage?: RenderCustomMessage;
53
53
  onNavigate?: (url: string) => void;
54
+ useUrlState?: boolean;
54
55
  renderGroupAccessModal?: (props: GroupAccessModalRenderProps) => React.ReactNode;
55
56
  }
56
57
  export interface DChatTheme {
@@ -64,6 +65,7 @@ export interface ChatProviderProps {
64
65
  config: DChatInitAndLoginConfig | null;
65
66
  renderCustomMessage?: RenderCustomMessage;
66
67
  onNavigate?: (url: string) => void;
68
+ useUrlState?: boolean;
67
69
  renderGroupAccessModal?: (props: GroupAccessModalRenderProps) => React.ReactNode;
68
70
  theme?: DChatTheme;
69
71
  }
@@ -1 +1 @@
1
- {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/types/chat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/types/chat.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@droppii-org/chat-sdk",
3
- "version": "0.5.5",
3
+ "version": "0.6.0",
4
4
  "description": "Droppii React Chat SDK",
5
5
  "repository": {
6
6
  "type": "git",