@gooddata/sdk-ui-gen-ai 11.50.0-alpha.0 → 11.50.0-alpha.2

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 (44) hide show
  1. package/NOTICE +216 -203
  2. package/esm/components/ConfigContext.d.ts +5 -1
  3. package/esm/components/ConfigContext.d.ts.map +1 -1
  4. package/esm/components/GenAIChatDialogConnected.d.ts +4 -1
  5. package/esm/components/GenAIChatDialogConnected.d.ts.map +1 -1
  6. package/esm/components/GenAIChatDialogConnected.js +9 -2
  7. package/esm/components/messages/ConversationItemContents.d.ts.map +1 -1
  8. package/esm/components/messages/ConversationItemContents.js +1 -1
  9. package/esm/components/messages/contents/VisualizationContents.d.ts.map +1 -1
  10. package/esm/components/messages/contents/VisualizationContents.js +8 -4
  11. package/esm/components/messages/conversationContents/ConversationDashboardContent.d.ts +1 -0
  12. package/esm/components/messages/conversationContents/ConversationDashboardContent.d.ts.map +1 -1
  13. package/esm/components/messages/conversationContents/ConversationDashboardContent.js +34 -2
  14. package/esm/components/messages/conversationContents/ConversationVisualizationContent.d.ts.map +1 -1
  15. package/esm/components/messages/conversationContents/ConversationVisualizationContent.js +10 -4
  16. package/esm/index.d.ts +1 -1
  17. package/esm/index.d.ts.map +1 -1
  18. package/esm/index.js +1 -1
  19. package/esm/sdk-ui-gen-ai.d.ts +28 -1
  20. package/esm/store/chatWindow/chatWindowSlice.d.ts +9 -2
  21. package/esm/store/chatWindow/chatWindowSlice.d.ts.map +1 -1
  22. package/esm/store/chatWindow/chatWindowSlice.js +2 -1
  23. package/esm/store/events.d.ts +21 -2
  24. package/esm/store/events.d.ts.map +1 -1
  25. package/esm/store/events.js +7 -0
  26. package/esm/store/sideEffects/onChatOpenSync.d.ts +1 -9
  27. package/esm/store/sideEffects/onChatOpenSync.d.ts.map +1 -1
  28. package/esm/store/sideEffects/onChatOpenSync.js +7 -3
  29. package/esm/store/sideEffects/onDefinitionReceivedTrigger.d.ts +7 -0
  30. package/esm/store/sideEffects/onDefinitionReceivedTrigger.d.ts.map +1 -0
  31. package/esm/store/sideEffects/onDefinitionReceivedTrigger.js +49 -0
  32. package/esm/store/sideEffects/onEvent.d.ts.map +1 -1
  33. package/esm/store/sideEffects/onEvent.js +11 -1
  34. package/esm/store/sideEffects/onThreadLoad.d.ts.map +1 -1
  35. package/esm/store/sideEffects/onThreadLoad.js +9 -6
  36. package/esm/store/sideEffects/onUserMessage.d.ts.map +1 -1
  37. package/esm/store/sideEffects/onUserMessage.js +15 -2
  38. package/esm/store/sideEffects/onVisualizationSuccessSave.d.ts.map +1 -1
  39. package/esm/store/sideEffects/onVisualizationSuccessSave.js +7 -4
  40. package/esm/tsdoc-metadata.json +1 -1
  41. package/esm/utils.d.ts +3 -2
  42. package/esm/utils.d.ts.map +1 -1
  43. package/esm/utils.js +18 -3
  44. package/package.json +20 -20
@@ -1,5 +1,5 @@
1
1
  import { type PropsWithChildren } from "react";
2
- import { type CatalogItem, type GenAIObjectType } from "@gooddata/sdk-model";
2
+ import { type CatalogItem, type GenAIObjectType, type IDashboard, type IInsight } from "@gooddata/sdk-model";
3
3
  export type ConfigContext = {
4
4
  allowNativeLinks?: boolean;
5
5
  canManage?: boolean;
@@ -19,6 +19,10 @@ export type LinkHandlerEvent = {
19
19
  itemUrl: string;
20
20
  preventDefault: () => void;
21
21
  section?: "ai";
22
+ dashboard?: IDashboard;
23
+ dashboardStatus?: "saved" | "draft";
24
+ visualization?: IInsight;
25
+ visualizationStatus?: "saved" | "draft";
22
26
  };
23
27
  export declare function ConfigProvider({ children, allowNativeLinks, linkHandler, catalogItems, canManage, canAnalyze, canFullControl }: PropsWithChildren<ConfigContext>): import("react/jsx-runtime").JSX.Element;
24
28
  export declare const useConfig: () => ConfigContext;
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigContext.d.ts","sourceRoot":"","sources":["../../src/components/ConfigContext.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,iBAAiB,EAAsC,MAAM,OAAO,CAAC;AAEnF,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE7E,MAAM,MAAM,aAAa,GAAG;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,CAAC,cAAc,EAAE,gBAAgB,KAAK,MAAM,GAAG,SAAS,CAAC;IACvE,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;CAChC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC3B,IAAI,EAAE,SAAS,GAAG,eAAe,CAAC;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,OAAO,CAAC,EAAE,IAAI,CAAC;CAClB,CAAC;AAIF,wBAAgB,cAAc,CAAC,EAC3B,QAAQ,EACR,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,SAAS,EACT,UAAU,EACV,cAAc,EACjB,EAAE,iBAAiB,CAAC,aAAa,CAAC,2CA6BlC;AAED,eAAO,MAAM,SAAS,qBAErB,CAAC"}
1
+ {"version":3,"file":"ConfigContext.d.ts","sourceRoot":"","sources":["../../src/components/ConfigContext.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,iBAAiB,EAAsC,MAAM,OAAO,CAAC;AAEnF,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,eAAe,EAAE,KAAK,UAAU,EAAE,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE7G,MAAM,MAAM,aAAa,GAAG;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,CAAC,cAAc,EAAE,gBAAgB,KAAK,MAAM,GAAG,SAAS,CAAC;IACvE,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;CAChC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC3B,IAAI,EAAE,SAAS,GAAG,eAAe,CAAC;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,SAAS,CAAC,EAAE,UAAU,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IACpC,aAAa,CAAC,EAAE,QAAQ,CAAC;IACzB,mBAAmB,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;CAC3C,CAAC;AAIF,wBAAgB,cAAc,CAAC,EAC3B,QAAQ,EACR,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,SAAS,EACT,UAAU,EACV,cAAc,EACjB,EAAE,iBAAiB,CAAC,aAAa,CAAC,2CA6BlC;AAED,eAAO,MAAM,SAAS,qBAErB,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { type RefObject } from "react";
2
2
  import { type IAnalyticalBackend, type IUserWorkspaceSettings } from "@gooddata/sdk-backend-spi";
3
3
  import type { GenAIObjectType, IColorPalette, IGenAIUserContext } from "@gooddata/sdk-model";
4
- import { type ChatAssistantMessageEvent, type ChatClosedEvent, type ChatCopyToClipboardEvent, type ChatEvent, type ChatFeedbackErrorEvent, type ChatFeedbackEvent, type ChatOpenedEvent, type ChatResetEvent, type ChatSaveVisualizationErrorEvent, type ChatSaveVisualizationSuccessEvent, type ChatUserMessageEvent } from "../store/events.js";
4
+ import { type ChatAssistantMessageEvent, type ChatClosedEvent, type ChatCopyToClipboardEvent, type ChatDefinitionReceivedEvent, type ChatEvent, type ChatFeedbackErrorEvent, type ChatFeedbackEvent, type ChatOpenedEvent, type ChatResetEvent, type ChatSaveVisualizationErrorEvent, type ChatSaveVisualizationSuccessEvent, type ChatUserMessageEvent } from "../store/events.js";
5
5
  import { type LinkHandlerEvent } from "./ConfigContext.js";
6
6
  /**
7
7
  * Discriminated union of GenAI chat events surfaced to a caller via {@link IGenAIChatDialogConnectedProps.onEvent}.
@@ -43,6 +43,9 @@ export type GenAIChatConnectedEvent = {
43
43
  } | {
44
44
  name: "copy-to-clipboard";
45
45
  payload: ChatCopyToClipboardEvent;
46
+ } | {
47
+ name: "definition-received";
48
+ payload: ChatDefinitionReceivedEvent;
46
49
  };
47
50
  /**
48
51
  * Props for {@link GenAIChatDialogConnected}.
@@ -1 +1 @@
1
- {"version":3,"file":"GenAIChatDialogConnected.d.ts","sourceRoot":"","sources":["../../src/components/GenAIChatDialogConnected.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GenAIChatDialogConnected.d.ts","sourceRoot":"","sources":["../../src/components/GenAIChatDialogConnected.tsx"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
4
4
  import { makeTextContents, makeUserItem, makeUserMessage } from "../model.js";
5
5
  import { setAmbientUserContextAction, setUserContextAction } from "../store/chatWindow/chatWindowSlice.js";
6
- import { isChatAssistantMessageEvent, isChatClosedEvent, isChatCopyToClipboardEvent, isChatFeedbackErrorEvent, isChatFeedbackEvent, isChatOpenedEvent, isChatResetEvent, isChatSaveVisualizationErrorEvent, isChatSaveVisualizationSuccessEvent, isChatUserMessageEvent, } from "../store/events.js";
6
+ import { isChatAssistantMessageEvent, isChatClosedEvent, isChatCopyToClipboardEvent, isChatDefinitionReceivedEvent, isChatFeedbackErrorEvent, isChatFeedbackEvent, isChatOpenedEvent, isChatResetEvent, isChatSaveVisualizationErrorEvent, isChatSaveVisualizationSuccessEvent, isChatUserMessageEvent, } from "../store/events.js";
7
7
  import { clearThreadAction, newMessageAction, setSelectedAgentAction, } from "../store/messages/messagesSlice.js";
8
8
  import { GenAIChatDialog } from "./GenAIChatDialog.js";
9
9
  /**
@@ -18,7 +18,11 @@ import { GenAIChatDialog } from "./GenAIChatDialog.js";
18
18
  * @internal
19
19
  */
20
20
  export function GenAIChatDialogConnected({ backend, workspace, locale, canManage, canAnalyze, canFullControl, settings, agentId, isOpen, onOpen, onClose, askedQuestion, askSeq, userContext, ambientUserContext, appendToChat, replaceUserContext, includeTags, excludeTags, objectTypes: objectTypesOverride, onEvent, onAnyEvent, dialogPosition, className, colorPalette, allowNativeLinks = true, onLinkClick, returnFocusTo, }) {
21
- const defaultLinkClick = useCallback(({ itemUrl, newTab, preventDefault }) => {
21
+ const defaultLinkClick = useCallback(({ itemUrl, newTab, preventDefault, type, dashboardStatus, }) => {
22
+ // NOTE: If dashboard is draft, do nothing for now
23
+ if (type === "dashboard" && dashboardStatus === "draft") {
24
+ return;
25
+ }
22
26
  if (itemUrl) {
23
27
  preventDefault();
24
28
  if (newTab) {
@@ -69,6 +73,9 @@ export function GenAIChatDialogConnected({ backend, workspace, locale, canManage
69
73
  else if (isChatCopyToClipboardEvent(event)) {
70
74
  onEvent({ name: "copy-to-clipboard", payload: event });
71
75
  }
76
+ else if (isChatDefinitionReceivedEvent(event)) {
77
+ onEvent({ name: "definition-received", payload: event });
78
+ }
72
79
  },
73
80
  },
74
81
  ], [onEvent, onAnyEvent]);
@@ -1 +1 @@
1
- {"version":3,"file":"ConversationItemContents.d.ts","sourceRoot":"","sources":["../../../src/components/messages/ConversationItemContents.tsx"],"names":[],"mappings":"AAIA,OAAO,EAGH,KAAK,0BAA0B,EAE/B,KAAK,iBAAiB,EACzB,MAAM,gBAAgB,CAAC;AAexB,KAAK,6BAA6B,GAAG;IACjC,OAAO,EAAE,0BAA0B,CAAC;IACpC,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAChC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;IACpC,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,wBAAgB,wBAAwB,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,6BAA6B,kDAuIzG"}
1
+ {"version":3,"file":"ConversationItemContents.d.ts","sourceRoot":"","sources":["../../../src/components/messages/ConversationItemContents.tsx"],"names":[],"mappings":"AAIA,OAAO,EAGH,KAAK,0BAA0B,EAE/B,KAAK,iBAAiB,EACzB,MAAM,gBAAgB,CAAC;AAexB,KAAK,6BAA6B,GAAG;IACjC,OAAO,EAAE,0BAA0B,CAAC;IACpC,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAChC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;IACpC,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,wBAAgB,wBAAwB,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,6BAA6B,kDAwIzG"}
@@ -47,7 +47,7 @@ export function ConversationItemContents({ message, references, isLoading }) {
47
47
  return (_jsx(ConversationWhatIfContent, { message: message, part: part, whatIf: whatIf }, index));
48
48
  }
49
49
  if (part.type === "dashboard") {
50
- return (_jsx(ConversationDashboardContent, { message: message, part: part, dashboard: part.dashboard }, index));
50
+ return (_jsx(ConversationDashboardContent, { message: message, part: part, dashboard: part.dashboard, saved: part.saved }, index));
51
51
  }
52
52
  // Add more multipart types if needed
53
53
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"VisualizationContents.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/contents/VisualizationContents.tsx"],"names":[],"mappings":"AAkBA,OAAO,EAEH,KAAK,aAAa,EAYrB,MAAM,qBAAqB,CAAC;AAgD7B,OAAO,EAAE,KAAK,qBAAqB,EAAqC,MAAM,mBAAmB,CAAC;AAMlG,OAAO,EAEH,0BAA0B,EAC7B,MAAM,8CAA8C,CAAC;AAgCtD,MAAM,MAAM,0BAA0B,GAAG;IACrC,OAAO,EAAE,qBAAqB,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACxD,oBAAoB,CAAC,EAAE,OAAO,0BAA0B,CAAC;CAC5D,CAAC;AAEF,iBAAS,kCAAkC,CAAC,EACxC,OAAO,EACP,SAAS,EACT,WAAW,EACX,YAAY,EACZ,mBAA0B,EAC1B,4BAAoC,EACpC,oBAA4B,EAC5B,oBAA4B,EAC5B,WAAW,EACX,eAAe,EACf,eAAuB,EACvB,iBAAiB,EACjB,oBAAoB,EACvB,EAAE,0BAA0B,2CAmsB5B;AA2XD,eAAO,MAAM,8BAA8B;;;;;;;EAGN,CAAC"}
1
+ {"version":3,"file":"VisualizationContents.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/contents/VisualizationContents.tsx"],"names":[],"mappings":"AAkBA,OAAO,EAEH,KAAK,aAAa,EAYrB,MAAM,qBAAqB,CAAC;AAgD7B,OAAO,EAAE,KAAK,qBAAqB,EAAqC,MAAM,mBAAmB,CAAC;AAMlG,OAAO,EAEH,0BAA0B,EAC7B,MAAM,8CAA8C,CAAC;AAgCtD,MAAM,MAAM,0BAA0B,GAAG;IACrC,OAAO,EAAE,qBAAqB,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACxD,oBAAoB,CAAC,EAAE,OAAO,0BAA0B,CAAC;CAC5D,CAAC;AAEF,iBAAS,kCAAkC,CAAC,EACxC,OAAO,EACP,SAAS,EACT,WAAW,EACX,YAAY,EACZ,mBAA0B,EAC1B,4BAAoC,EACpC,oBAA4B,EAC5B,oBAA4B,EAC5B,WAAW,EACX,eAAe,EACf,eAAuB,EACvB,iBAAiB,EACjB,oBAAoB,EACvB,EAAE,0BAA0B,2CA+sB5B;AA2XD,eAAO,MAAM,8BAA8B;;;;;;;EAGN,CAAC"}
@@ -130,13 +130,15 @@ function VisualizationContentsComponentCore({ content, messageId, useMarkdown, c
130
130
  if (!vis?.savedVisualizationId) {
131
131
  return;
132
132
  }
133
+ const visualizationStatus = "saved";
133
134
  config.linkHandler?.({
134
135
  id: vis.id,
135
136
  type: "visualization",
136
137
  workspaceId,
137
138
  newTab: e.metaKey,
138
139
  preventDefault: e.preventDefault.bind(e),
139
- itemUrl: getVisualizationHref(workspaceId, vis.savedVisualizationId, useHostedAnalyticalDesigner),
140
+ itemUrl: getVisualizationHref(workspaceId, vis.savedVisualizationId, visualizationStatus, useHostedAnalyticalDesigner),
141
+ visualizationStatus,
140
142
  });
141
143
  e.stopPropagation();
142
144
  };
@@ -149,7 +151,7 @@ function VisualizationContentsComponentCore({ content, messageId, useMarkdown, c
149
151
  case "button-open":
150
152
  if (visualization?.savedVisualizationId) {
151
153
  if (config.allowNativeLinks) {
152
- window.location.href = getVisualizationHref(workspaceId, visualization.savedVisualizationId, useHostedAnalyticalDesigner);
154
+ window.location.href = getVisualizationHref(workspaceId, visualization.savedVisualizationId, "saved", useHostedAnalyticalDesigner);
153
155
  }
154
156
  else {
155
157
  handleOpen(e, visualization);
@@ -162,9 +164,10 @@ function VisualizationContentsComponentCore({ content, messageId, useMarkdown, c
162
164
  break;
163
165
  case "button-copy":
164
166
  if (visualization?.savedVisualizationId) {
167
+ const visualizationStatus = "saved";
165
168
  let link = undefined;
166
169
  if (config.allowNativeLinks) {
167
- link = getAbsoluteVisualizationHref(workspaceId, visualization.savedVisualizationId, useHostedAnalyticalDesigner);
170
+ link = getAbsoluteVisualizationHref(workspaceId, visualization.savedVisualizationId, visualizationStatus, useHostedAnalyticalDesigner);
168
171
  }
169
172
  else {
170
173
  link = config.linkHandler?.({
@@ -173,7 +176,8 @@ function VisualizationContentsComponentCore({ content, messageId, useMarkdown, c
173
176
  workspaceId,
174
177
  newTab: e.metaKey,
175
178
  preventDefault: e.preventDefault.bind(e),
176
- itemUrl: getAbsoluteVisualizationHref(workspaceId, visualization.savedVisualizationId, useHostedAnalyticalDesigner),
179
+ itemUrl: getAbsoluteVisualizationHref(workspaceId, visualization.savedVisualizationId, visualizationStatus, useHostedAnalyticalDesigner),
180
+ visualizationStatus,
177
181
  });
178
182
  }
179
183
  if (link) {
@@ -4,6 +4,7 @@ export type ConversationDashboardContentProps = {
4
4
  message: IChatConversationLocalItem;
5
5
  part: IChatConversationMultipartLocalPart;
6
6
  dashboard?: IDashboard | null;
7
+ saved?: boolean;
7
8
  className?: string;
8
9
  };
9
10
  export declare function ConversationDashboardContent(props: ConversationDashboardContentProps): import("react/jsx-runtime").JSX.Element | null;
@@ -1 +1 @@
1
- {"version":3,"file":"ConversationDashboardContent.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/conversationContents/ConversationDashboardContent.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGtD,OAAO,KAAK,EAAE,0BAA0B,EAAE,mCAAmC,EAAE,MAAM,mBAAmB,CAAC;AAEzG,MAAM,MAAM,iCAAiC,GAAG;IAC5C,OAAO,EAAE,0BAA0B,CAAC;IACpC,IAAI,EAAE,mCAAmC,CAAC;IAC1C,SAAS,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,iCAAiC,kDA8DpF"}
1
+ {"version":3,"file":"ConversationDashboardContent.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/conversationContents/ConversationDashboardContent.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAItD,OAAO,KAAK,EAAE,0BAA0B,EAAE,mCAAmC,EAAE,MAAM,mBAAmB,CAAC;AAKzG,MAAM,MAAM,iCAAiC,GAAG;IAC5C,OAAO,EAAE,0BAA0B,CAAC;IACpC,IAAI,EAAE,mCAAmC,CAAC;IAC1C,SAAS,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,iCAAiC,kDAsGpF"}
@@ -1,11 +1,43 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  // (C) 2024-2026 GoodData Corporation
3
+ import { useMemo } from "react";
3
4
  import cx from "classnames";
4
5
  import { FormattedMessage, useIntl } from "react-intl";
6
+ import { useSelector } from "react-redux";
7
+ import { useWorkspaceStrict } from "@gooddata/sdk-ui";
5
8
  import { UiButton, UiIcon } from "@gooddata/sdk-ui-kit";
9
+ import { settingsSelector } from "../../../store/chatWindow/chatWindowSelectors.js";
10
+ import { getDashboardHref } from "../../../utils.js";
11
+ import { useConfig } from "../../ConfigContext.js";
6
12
  export function ConversationDashboardContent(props) {
7
- const { className, dashboard } = props;
13
+ const { className, dashboard, saved } = props;
8
14
  const intl = useIntl();
15
+ const config = useConfig();
16
+ const workspaceId = useWorkspaceStrict();
17
+ const useHostedDashboards = Boolean(useSelector(settingsSelector)?.enableShellApplication_dashboards);
18
+ const handleOpenDashboard = useMemo(() => {
19
+ if (!dashboard) {
20
+ return undefined;
21
+ }
22
+ return (e) => {
23
+ const dashboardStatus = saved ? "saved" : "draft";
24
+ if (config.allowNativeLinks) {
25
+ window.location.href = getDashboardHref(workspaceId, dashboard.identifier, dashboardStatus, useHostedDashboards);
26
+ }
27
+ else {
28
+ config.linkHandler?.({
29
+ type: "dashboard",
30
+ id: dashboard.identifier,
31
+ workspaceId,
32
+ newTab: e.metaKey,
33
+ preventDefault: e.preventDefault.bind(e),
34
+ itemUrl: getDashboardHref(workspaceId, dashboard.identifier, dashboardStatus, useHostedDashboards),
35
+ dashboard,
36
+ dashboardStatus,
37
+ });
38
+ }
39
+ };
40
+ }, [dashboard, config, workspaceId, useHostedDashboards, saved]);
9
41
  const classNames = cx("gd-gen-ai-chat__conversation__item__content", "gd-gen-ai-chat__conversation__item__content--dashboard", className);
10
42
  if (!dashboard) {
11
43
  return null;
@@ -20,7 +52,7 @@ export function ConversationDashboardContent(props) {
20
52
  ] }), _jsxs("li", { className: "gd-gen-ai-chat__conversation__item__content-dashboard-item", children: [
21
53
  _jsxs("div", { className: "gd-gen-ai-chat__conversation__item__content-dashboard-item-title", children: [intl.formatMessage({ id: "gd.gen-ai.dashboard.description" }), ":"] }), _jsx("div", { className: "gd-gen-ai-chat__conversation__item__content-dashboard-item-description", children: _jsx("p", { children: dashboard.description }) })
22
54
  ] })
23
- ] }), _jsx("div", { className: "gd-gen-ai-chat__conversation__item__content-dashboard-item-buttons", children: _jsx(UiButton, { label: intl.formatMessage({ id: "gd.gen-ai.dashboard.open-dashboard" }), variant: "tertiary" }) })
55
+ ] }), _jsx("div", { className: "gd-gen-ai-chat__conversation__item__content-dashboard-item-buttons", children: _jsx(UiButton, { label: intl.formatMessage({ id: "gd.gen-ai.dashboard.open-dashboard" }), variant: "tertiary", onClick: handleOpenDashboard }) })
24
56
  ] })
25
57
  ] }));
26
58
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ConversationVisualizationContent.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/conversationContents/ConversationVisualizationContent.tsx"],"names":[],"mappings":"AAoBA,OAAO,EAAE,KAAK,qCAAqC,EAAE,MAAM,2BAA2B,CAAC;AACvF,OAAO,EAAE,KAAK,aAAa,EAAgD,MAAM,qBAAqB,CAAC;AAwBvG,OAAO,EAAE,KAAK,0BAA0B,EAAE,KAAK,mCAAmC,EAAE,MAAM,mBAAmB,CAAC;AAM9G,OAAO,EAEH,0BAA0B,EAC7B,MAAM,8CAA8C,CAAC;AAGtD,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAwBlF,MAAM,MAAM,qCAAqC,GAAG;IAChD,OAAO,EAAE,0BAA0B,CAAC;IACpC,IAAI,EAAE,mCAAmC,CAAC;IAC1C,QAAQ,CAAC,EAAE,yBAAyB,CAAC;IACrC,aAAa,EAAE,WAAW,CAAC,qCAAqC,CAAC,eAAe,CAAC,CAAC,CAAC;IACnF,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACxD,oBAAoB,CAAC,EAAE,OAAO,0BAA0B,CAAC;IACzD,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,4BAA4B,CAAC,EAAE,OAAO,CAAC;CAC1C,CAAC;AAEF,iBAAS,oCAAoC,CAAC,EAC1C,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,aAAa,EACb,SAAS,EACT,iBAAiB,EACjB,oBAAoB,EACpB,YAAY,EACZ,WAAW,EACX,oBAAoB,EACpB,mBAAmB,EACnB,4BAA4B,EAC/B,EAAE,qCAAqC,2CAmGvC;AAymBD,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;EAGN,CAAC"}
1
+ {"version":3,"file":"ConversationVisualizationContent.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/conversationContents/ConversationVisualizationContent.tsx"],"names":[],"mappings":"AAoBA,OAAO,EAAE,KAAK,qCAAqC,EAAE,MAAM,2BAA2B,CAAC;AACvF,OAAO,EAAE,KAAK,aAAa,EAAgD,MAAM,qBAAqB,CAAC;AAwBvG,OAAO,EAAE,KAAK,0BAA0B,EAAE,KAAK,mCAAmC,EAAE,MAAM,mBAAmB,CAAC;AAM9G,OAAO,EAEH,0BAA0B,EAC7B,MAAM,8CAA8C,CAAC;AAGtD,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAwBlF,MAAM,MAAM,qCAAqC,GAAG;IAChD,OAAO,EAAE,0BAA0B,CAAC;IACpC,IAAI,EAAE,mCAAmC,CAAC;IAC1C,QAAQ,CAAC,EAAE,yBAAyB,CAAC;IACrC,aAAa,EAAE,WAAW,CAAC,qCAAqC,CAAC,eAAe,CAAC,CAAC,CAAC;IACnF,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACxD,oBAAoB,CAAC,EAAE,OAAO,0BAA0B,CAAC;IACzD,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,4BAA4B,CAAC,EAAE,OAAO,CAAC;CAC1C,CAAC;AAEF,iBAAS,oCAAoC,CAAC,EAC1C,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,aAAa,EACb,SAAS,EACT,iBAAiB,EACjB,oBAAoB,EACpB,YAAY,EACZ,WAAW,EACX,oBAAoB,EACpB,mBAAmB,EACnB,4BAA4B,EAC/B,EAAE,qCAAqC,2CAmGvC;AAmnBD,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;EAGN,CAAC"}
@@ -283,8 +283,9 @@ function useHandlers({ visualization, setSaveDialogOpen, onCopyToClipboard }) {
283
283
  return;
284
284
  }
285
285
  if (isSaved) {
286
+ const visualizationStatus = "saved";
286
287
  if (config.allowNativeLinks) {
287
- window.location.href = getVisualizationHref(workspaceId, visualization.insight.identifier, useHostedAnalyticalDesigner);
288
+ window.location.href = getVisualizationHref(workspaceId, visualization.insight.identifier, visualizationStatus, useHostedAnalyticalDesigner);
288
289
  }
289
290
  else {
290
291
  config.linkHandler?.({
@@ -293,7 +294,9 @@ function useHandlers({ visualization, setSaveDialogOpen, onCopyToClipboard }) {
293
294
  workspaceId,
294
295
  newTab: e.metaKey,
295
296
  preventDefault: e.preventDefault.bind(e),
296
- itemUrl: getVisualizationHref(workspaceId, visualization.insight.identifier, useHostedAnalyticalDesigner),
297
+ itemUrl: getVisualizationHref(workspaceId, visualization.insight.identifier, visualizationStatus, useHostedAnalyticalDesigner),
298
+ visualization,
299
+ visualizationStatus,
297
300
  });
298
301
  e.stopPropagation();
299
302
  }
@@ -306,9 +309,10 @@ function useHandlers({ visualization, setSaveDialogOpen, onCopyToClipboard }) {
306
309
  if (!visualization) {
307
310
  return;
308
311
  }
312
+ const visualizationStatus = "saved";
309
313
  let link = undefined;
310
314
  if (config.allowNativeLinks) {
311
- link = getAbsoluteVisualizationHref(workspaceId, visualization.insight.identifier, useHostedAnalyticalDesigner);
315
+ link = getAbsoluteVisualizationHref(workspaceId, visualization.insight.identifier, visualizationStatus, useHostedAnalyticalDesigner);
312
316
  }
313
317
  else {
314
318
  link = config.linkHandler?.({
@@ -317,7 +321,9 @@ function useHandlers({ visualization, setSaveDialogOpen, onCopyToClipboard }) {
317
321
  workspaceId,
318
322
  newTab: e.metaKey,
319
323
  preventDefault: e.preventDefault.bind(e),
320
- itemUrl: getAbsoluteVisualizationHref(workspaceId, visualization.insight.identifier, useHostedAnalyticalDesigner),
324
+ itemUrl: getAbsoluteVisualizationHref(workspaceId, visualization.insight.identifier, visualizationStatus, useHostedAnalyticalDesigner),
325
+ visualization,
326
+ visualizationStatus,
321
327
  });
322
328
  }
323
329
  if (link) {
package/esm/index.d.ts CHANGED
@@ -7,7 +7,7 @@ export { GenAIChat, GenAIAssistant, type GenAIChatProps, type GenAIAssistantProp
7
7
  export { GenAIConversations, type GenAIConversationsProps } from "./components/GenAiConversations.js";
8
8
  export { GenAiStore, type GenAiStoreProps } from "./components/GenAiStore.js";
9
9
  export { makeUserMessage, makeTextContents, makeUserItem, makeAssistantItem, type Message, type BaseMessage, type UserMessage, type AssistantMessage, type Contents, type TextContents, type SearchContents, type SemanticSearchContents, type RoutingContents, type ReasoningContents, type ReasoningStep, type ReasoningThought, type VisualizationContents, type ChangeAnalysisContents, type ErrorContents, type TextContentObject, type IChatConversationLocalContent, type IChatConversationLocalItem, type IChatConversationErrorContent, type IChatConversationMultipartLocalPart, type IChatConversationLocal, type IChatConversationSystemContent, } from "./model.js";
10
- export { type ChatEventHandler, type BaseEvent, type ChatAssistantMessageEvent, type ChatUserMessageEvent, type ChatClosedEvent, type ChatOpenedEvent, type ChatResetEvent, type ChatFeedbackEvent, type ChatFeedbackErrorEvent, type ChatEvent, type ChatVisualizationErrorEvent, type ChatSaveVisualizationErrorEvent, type ChatSaveVisualizationSuccessEvent, type ChatCopyToClipboardEvent, type ChatConversationPinnedEvent, type ChatConversationPinErrorEvent, type ChatConversationDeleteEvent, type ChatConversationDeletedSuccessEvent, type ChatConversationDeletedErrorEvent, type ChatConversationRenameEvent, type ChatConversationRenamedSuccessEvent, type ChatConversationRenamedErrorEvent, type ChatConversationChangedEvent, isChatAssistantMessageEvent, isChatUserMessageEvent, isChatClosedEvent, isChatOpenedEvent, isChatResetEvent, isChatFeedbackEvent, isChatFeedbackErrorEvent, isChatVisualizationErrorEvent, isChatSaveVisualizationErrorEvent, isChatSaveVisualizationSuccessEvent, isChatCopyToClipboardEvent, isChatConversationPinnedEvent, isChatConversationPinErrorEvent, isChatConversationDeleteEvent, isChatConversationDeletedErrorEvent, isChatConversationDeletedSuccessEvent, isChatConversationRenameEvent, isChatConversationRenamedSuccessEvent, isChatConversationRenamedErrorEvent, isChatConversationChangedEvent, } from "./store/events.js";
10
+ export { type ChatEventHandler, type BaseEvent, type ChatAssistantMessageEvent, type ChatUserMessageEvent, type ChatClosedEvent, type ChatOpenedEvent, type ChatResetEvent, type ChatFeedbackEvent, type ChatFeedbackErrorEvent, type ChatEvent, type ChatVisualizationErrorEvent, type ChatSaveVisualizationErrorEvent, type ChatSaveVisualizationSuccessEvent, type ChatCopyToClipboardEvent, type ChatConversationPinnedEvent, type ChatConversationPinErrorEvent, type ChatConversationDeleteEvent, type ChatConversationDeletedSuccessEvent, type ChatConversationDeletedErrorEvent, type ChatConversationRenameEvent, type ChatConversationRenamedSuccessEvent, type ChatConversationRenamedErrorEvent, type ChatConversationChangedEvent, type ChatDefinitionReceivedEvent, isChatAssistantMessageEvent, isChatUserMessageEvent, isChatClosedEvent, isChatOpenedEvent, isChatResetEvent, isChatFeedbackEvent, isChatFeedbackErrorEvent, isChatVisualizationErrorEvent, isChatSaveVisualizationErrorEvent, isChatSaveVisualizationSuccessEvent, isChatCopyToClipboardEvent, isChatConversationPinnedEvent, isChatConversationPinErrorEvent, isChatConversationDeleteEvent, isChatConversationDeletedErrorEvent, isChatConversationDeletedSuccessEvent, isChatConversationRenameEvent, isChatConversationRenamedSuccessEvent, isChatConversationRenamedErrorEvent, isChatConversationChangedEvent, isChatDefinitionReceivedEvent, } from "./store/events.js";
11
11
  export { clearThreadAction, newMessageAction, startNewConversationAction, setCurrentConversationAction, } from "./store/messages/messagesSlice.js";
12
12
  export { type LinkHandlerEvent } from "./components/ConfigContext.js";
13
13
  export { useGenAiChatAvailability } from "./hooks/useGenAiChatAvailability.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AAEH,OAAO,EACH,SAAS,EACT,cAAc,EACd,KAAK,cAAc,EACnB,KAAK,mBAAmB,GAC3B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,kBAAkB,EAAE,KAAK,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AACtG,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EACH,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,KAAK,OAAO,EACZ,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,6BAA6B,EAClC,KAAK,0BAA0B,EAC/B,KAAK,6BAA6B,EAClC,KAAK,mCAAmC,EACxC,KAAK,sBAAsB,EAC3B,KAAK,8BAA8B,GACtC,MAAM,YAAY,CAAC;AACpB,OAAO,EACH,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACd,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,SAAS,EACd,KAAK,2BAA2B,EAChC,KAAK,+BAA+B,EACpC,KAAK,iCAAiC,EACtC,KAAK,wBAAwB,EAC7B,KAAK,2BAA2B,EAChC,KAAK,6BAA6B,EAClC,KAAK,2BAA2B,EAChC,KAAK,mCAAmC,EACxC,KAAK,iCAAiC,EACtC,KAAK,2BAA2B,EAChC,KAAK,mCAAmC,EACxC,KAAK,iCAAiC,EACtC,KAAK,4BAA4B,EACjC,2BAA2B,EAC3B,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,wBAAwB,EACxB,6BAA6B,EAC7B,iCAAiC,EACjC,mCAAmC,EACnC,0BAA0B,EAC1B,6BAA6B,EAC7B,+BAA+B,EAC/B,6BAA6B,EAC7B,mCAAmC,EACnC,qCAAqC,EACrC,6BAA6B,EAC7B,qCAAqC,EACrC,mCAAmC,EACnC,8BAA8B,GACjC,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACH,iBAAiB,EACjB,gBAAgB,EAChB,0BAA0B,EAC1B,4BAA4B,GAC/B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAI/E,OAAO,EAAE,oBAAoB,EAAE,KAAK,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AACzG,OAAO,EACH,mBAAmB,EACnB,yBAAyB,EACzB,KAAK,kBAAkB,GAC1B,MAAM,yCAAyC,CAAC;AACjD,OAAO,EACH,sBAAsB,EACtB,KAAK,qBAAqB,GAC7B,MAAM,4CAA4C,CAAC;AACpD,OAAO,EACH,uBAAuB,EACvB,uBAAuB,EACvB,KAAK,oBAAoB,GAC5B,MAAM,6CAA6C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AAEH,OAAO,EACH,SAAS,EACT,cAAc,EACd,KAAK,cAAc,EACnB,KAAK,mBAAmB,GAC3B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,kBAAkB,EAAE,KAAK,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AACtG,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EACH,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,KAAK,OAAO,EACZ,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,6BAA6B,EAClC,KAAK,0BAA0B,EAC/B,KAAK,6BAA6B,EAClC,KAAK,mCAAmC,EACxC,KAAK,sBAAsB,EAC3B,KAAK,8BAA8B,GACtC,MAAM,YAAY,CAAC;AACpB,OAAO,EACH,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACd,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,SAAS,EACd,KAAK,2BAA2B,EAChC,KAAK,+BAA+B,EACpC,KAAK,iCAAiC,EACtC,KAAK,wBAAwB,EAC7B,KAAK,2BAA2B,EAChC,KAAK,6BAA6B,EAClC,KAAK,2BAA2B,EAChC,KAAK,mCAAmC,EACxC,KAAK,iCAAiC,EACtC,KAAK,2BAA2B,EAChC,KAAK,mCAAmC,EACxC,KAAK,iCAAiC,EACtC,KAAK,4BAA4B,EACjC,KAAK,2BAA2B,EAChC,2BAA2B,EAC3B,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,wBAAwB,EACxB,6BAA6B,EAC7B,iCAAiC,EACjC,mCAAmC,EACnC,0BAA0B,EAC1B,6BAA6B,EAC7B,+BAA+B,EAC/B,6BAA6B,EAC7B,mCAAmC,EACnC,qCAAqC,EACrC,6BAA6B,EAC7B,qCAAqC,EACrC,mCAAmC,EACnC,8BAA8B,EAC9B,6BAA6B,GAChC,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACH,iBAAiB,EACjB,gBAAgB,EAChB,0BAA0B,EAC1B,4BAA4B,GAC/B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAI/E,OAAO,EAAE,oBAAoB,EAAE,KAAK,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AACzG,OAAO,EACH,mBAAmB,EACnB,yBAAyB,EACzB,KAAK,kBAAkB,GAC1B,MAAM,yCAAyC,CAAC;AACjD,OAAO,EACH,sBAAsB,EACtB,KAAK,qBAAqB,GAC7B,MAAM,4CAA4C,CAAC;AACpD,OAAO,EACH,uBAAuB,EACvB,uBAAuB,EACvB,KAAK,oBAAoB,GAC5B,MAAM,6CAA6C,CAAC"}
package/esm/index.js CHANGED
@@ -9,7 +9,7 @@ export { GenAIChat, GenAIAssistant, } from "./components/GenAIChat.js";
9
9
  export { GenAIConversations } from "./components/GenAiConversations.js";
10
10
  export { GenAiStore } from "./components/GenAiStore.js";
11
11
  export { makeUserMessage, makeTextContents, makeUserItem, makeAssistantItem, } from "./model.js";
12
- export { isChatAssistantMessageEvent, isChatUserMessageEvent, isChatClosedEvent, isChatOpenedEvent, isChatResetEvent, isChatFeedbackEvent, isChatFeedbackErrorEvent, isChatVisualizationErrorEvent, isChatSaveVisualizationErrorEvent, isChatSaveVisualizationSuccessEvent, isChatCopyToClipboardEvent, isChatConversationPinnedEvent, isChatConversationPinErrorEvent, isChatConversationDeleteEvent, isChatConversationDeletedErrorEvent, isChatConversationDeletedSuccessEvent, isChatConversationRenameEvent, isChatConversationRenamedSuccessEvent, isChatConversationRenamedErrorEvent, isChatConversationChangedEvent, } from "./store/events.js";
12
+ export { isChatAssistantMessageEvent, isChatUserMessageEvent, isChatClosedEvent, isChatOpenedEvent, isChatResetEvent, isChatFeedbackEvent, isChatFeedbackErrorEvent, isChatVisualizationErrorEvent, isChatSaveVisualizationErrorEvent, isChatSaveVisualizationSuccessEvent, isChatCopyToClipboardEvent, isChatConversationPinnedEvent, isChatConversationPinErrorEvent, isChatConversationDeleteEvent, isChatConversationDeletedErrorEvent, isChatConversationDeletedSuccessEvent, isChatConversationRenameEvent, isChatConversationRenamedSuccessEvent, isChatConversationRenamedErrorEvent, isChatConversationChangedEvent, isChatDefinitionReceivedEvent, } from "./store/events.js";
13
13
  export { clearThreadAction, newMessageAction, startNewConversationAction, setCurrentConversationAction, } from "./store/messages/messagesSlice.js";
14
14
  export { useGenAiChatAvailability } from "./hooks/useGenAiChatAvailability.js";
15
15
  //customization
@@ -19,10 +19,13 @@ import { IChatConversationContent } from '@gooddata/sdk-backend-spi';
19
19
  import { IChatConversationError } from '@gooddata/sdk-backend-spi';
20
20
  import { IChatConversationItem } from '@gooddata/sdk-backend-spi';
21
21
  import { IChatConversationMultipartPart } from '@gooddata/sdk-backend-spi';
22
+ import { IChatConversationVisualisationContent } from '@gooddata/sdk-backend-spi';
22
23
  import { IChatSuggestions } from '@gooddata/sdk-backend-spi';
23
24
  import { IColorPalette } from '@gooddata/sdk-model';
25
+ import { IDashboard } from '@gooddata/sdk-model';
24
26
  import type { IGenAIChangeAnalysisParams } from '@gooddata/sdk-model';
25
27
  import type { IGenAIVisualization } from '@gooddata/sdk-model';
28
+ import { IInsight } from '@gooddata/sdk-model';
26
29
  import type { ISemanticSearchRelationship } from '@gooddata/sdk-model';
27
30
  import type { ISemanticSearchResultItem } from '@gooddata/sdk-model';
28
31
  import { IUiButtonProps } from '@gooddata/sdk-ui-kit';
@@ -202,11 +205,25 @@ export declare type ChatCopyToClipboardEvent = BaseEvent & {
202
205
  content: string;
203
206
  };
204
207
 
208
+ /**
209
+ * A chat definition received event.
210
+ * @public
211
+ */
212
+ export declare type ChatDefinitionReceivedEvent = BaseEvent & {
213
+ type: "onDefinitionReceived";
214
+ definitionType: "dashboard" | "visualization";
215
+ itemId: string;
216
+ conversationId: string;
217
+ interactionId?: string;
218
+ dashboard?: IDashboard;
219
+ visualization?: NonNullable<IChatConversationVisualisationContent["visualization"]>;
220
+ };
221
+
205
222
  /**
206
223
  * A union type for all chat events.
207
224
  * @public
208
225
  */
209
- export declare type ChatEvent = ChatOpenedEvent | ChatClosedEvent | ChatResetEvent | ChatConversationPinnedEvent | ChatConversationPinErrorEvent | ChatConversationDeleteEvent | ChatConversationDeletedSuccessEvent | ChatConversationDeletedErrorEvent | ChatConversationRenameEvent | ChatConversationRenamedSuccessEvent | ChatConversationRenamedErrorEvent | ChatUserMessageEvent | ChatAssistantMessageEvent | ChatFeedbackEvent | ChatFeedbackErrorEvent | ChatCopyToClipboardEvent | ChatVisualizationErrorEvent | ChatSaveVisualizationErrorEvent | ChatSaveVisualizationSuccessEvent | ChatConversationChangedEvent;
226
+ export declare type ChatEvent = ChatOpenedEvent | ChatClosedEvent | ChatResetEvent | ChatConversationPinnedEvent | ChatConversationPinErrorEvent | ChatConversationDeleteEvent | ChatConversationDeletedSuccessEvent | ChatConversationDeletedErrorEvent | ChatConversationRenameEvent | ChatConversationRenamedSuccessEvent | ChatConversationRenamedErrorEvent | ChatUserMessageEvent | ChatAssistantMessageEvent | ChatFeedbackEvent | ChatFeedbackErrorEvent | ChatCopyToClipboardEvent | ChatVisualizationErrorEvent | ChatSaveVisualizationErrorEvent | ChatSaveVisualizationSuccessEvent | ChatConversationChangedEvent | ChatDefinitionReceivedEvent;
210
227
 
211
228
  /**
212
229
  * An event handler for the Chat component.
@@ -696,6 +713,12 @@ export declare const isChatConversationRenameEvent: (event: ChatEvent) => event
696
713
  */
697
714
  export declare const isChatCopyToClipboardEvent: (event: ChatEvent) => event is ChatCopyToClipboardEvent;
698
715
 
716
+ /**
717
+ * Type guard for the ChatDefinitionReceivedEvent.
718
+ * @public
719
+ */
720
+ export declare const isChatDefinitionReceivedEvent: (event: ChatEvent) => event is ChatDefinitionReceivedEvent;
721
+
699
722
  /**
700
723
  * Type guard for the ChatFeedbackErrorEvent.
701
724
  * @public
@@ -765,6 +788,10 @@ export declare type LinkHandlerEvent = {
765
788
  itemUrl: string;
766
789
  preventDefault: () => void;
767
790
  section?: "ai";
791
+ dashboard?: IDashboard;
792
+ dashboardStatus?: "saved" | "draft";
793
+ visualization?: IInsight;
794
+ visualizationStatus?: "saved" | "draft";
768
795
  };
769
796
 
770
797
  /**
@@ -1,6 +1,6 @@
1
1
  import { type Reducer } from "@reduxjs/toolkit";
2
2
  import { type IUserWorkspaceSettings } from "@gooddata/sdk-backend-spi";
3
- import { type CatalogItem, type GenAIObjectType, type IAllowedRelationshipType, type IColorPalette, type IGenAIUserContext } from "@gooddata/sdk-model";
3
+ import { type CatalogItem, type GenAIObjectType, type IAllowedRelationshipType, type IColorPalette, type IDashboard, type IGenAIUserContext, type IInsight } from "@gooddata/sdk-model";
4
4
  import type { IKdaDefinition } from "@gooddata/sdk-ui-dashboard";
5
5
  import { type IGenAIContextObject, type StoreContext } from "../../types.js";
6
6
  type ChatWindowSliceState = {
@@ -90,7 +90,14 @@ export declare const setOpenAction: import("@reduxjs/toolkit").ActionCreatorWith
90
90
  excludeTags?: string[] | undefined;
91
91
  }, "chatWindow/setTagsAction">, setCatalogItemsActions: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<CatalogItem[] | undefined, "chatWindow/setCatalogItemsActions">, setAllowedRelationshipTypesAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
92
92
  allowedRelationshipTypes?: IAllowedRelationshipType[] | undefined;
93
- }, "chatWindow/setAllowedRelationshipTypesAction">, addContextReferenceAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
93
+ }, "chatWindow/setAllowedRelationshipTypesAction">, onDefinitionReceivedAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
94
+ definitionType: "dashboard" | "visualization";
95
+ conversationId: string;
96
+ itemId: string;
97
+ interactionId?: string | undefined;
98
+ dashboard?: IDashboard<import("@gooddata/sdk-model").IDashboardWidget> | undefined;
99
+ visualization?: IInsight | undefined;
100
+ }, "chatWindow/onDefinitionReceivedAction">, addContextReferenceAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
94
101
  object: IGenAIContextObject;
95
102
  }, "chatWindow/addContextReferenceAction">, removeContextReferenceAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
96
103
  object: IGenAIContextObject;
@@ -1 +1 @@
1
- {"version":3,"file":"chatWindowSlice.d.ts","sourceRoot":"","sources":["../../../src/store/chatWindow/chatWindowSlice.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,KAAK,OAAO,EAAe,MAAM,kBAAkB,CAAC;AAEjF,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EACH,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,wBAAwB,EAC7B,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAKjE,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE7E,KAAK,oBAAoB,GAAG;IACxB;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,YAAY,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B;;OAEG;IACH,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC;;OAEG;IACH,iBAAiB,CAAC,EAAE,cAAc,CAAC;IACnC;;OAEG;IACH,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC;;OAEG;IACH,WAAW,CAAC,EAAE,eAAe,EAAE,CAAC;IAChC;;OAEG;IACH,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB;;OAEG;IACH,wBAAwB,CAAC,EAAE,wBAAwB,EAAE,CAAC;IACtD;;OAEG;IACH,OAAO,EAAE,YAAY,CAAC;IACtB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,mBAAmB,eAAe,CAAC;AAmBhD,eAAO,MAAM,yBAAyB;;0BAOpC,CAAC;AAkHH,eAAO,MAAM,sBAAsB,EAAE,OAAO,CAAC,oBAAoB,CAA2B,CAAC;AAC7F,eAAO,MACH,aAAa;;gCACb,mBAAmB;;sCACnB,gBAAgB;;mCAChB,qBAAqB;;wCACrB,iBAAiB;;oCACjB,qBAAqB;;wCACrB,0BAA0B;;6CAC1B,mCAAmC;;sDACnC,oBAAoB;;uCACpB,aAAa;;;gCACb,sBAAsB,+HACtB,iCAAiC;;oDACjC,yBAAyB;;4CACzB,4BAA4B;;+CAC5B,kBAAkB;;;AAClB;;GAEG;AACH,2BAA2B;;;AAC3B;;GAEG;AACH,oBAAoB;;;qCACG,CAAC"}
1
+ {"version":3,"file":"chatWindowSlice.d.ts","sourceRoot":"","sources":["../../../src/store/chatWindow/chatWindowSlice.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,KAAK,OAAO,EAAe,MAAM,kBAAkB,CAAC;AAEjF,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EACH,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,wBAAwB,EAC7B,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,QAAQ,EAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAKjE,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE7E,KAAK,oBAAoB,GAAG;IACxB;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,YAAY,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B;;OAEG;IACH,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC;;OAEG;IACH,iBAAiB,CAAC,EAAE,cAAc,CAAC;IACnC;;OAEG;IACH,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC;;OAEG;IACH,WAAW,CAAC,EAAE,eAAe,EAAE,CAAC;IAChC;;OAEG;IACH,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB;;OAEG;IACH,wBAAwB,CAAC,EAAE,wBAAwB,EAAE,CAAC;IACtD;;OAEG;IACH,OAAO,EAAE,YAAY,CAAC;IACtB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,mBAAmB,eAAe,CAAC;AAmBhD,eAAO,MAAM,yBAAyB;;0BAOpC,CAAC;AA6HH,eAAO,MAAM,sBAAsB,EAAE,OAAO,CAAC,oBAAoB,CAA2B,CAAC;AAC7F,eAAO,MACH,aAAa;;gCACb,mBAAmB;;sCACnB,gBAAgB;;mCAChB,qBAAqB;;wCACrB,iBAAiB;;oCACjB,qBAAqB;;wCACrB,0BAA0B;;6CAC1B,mCAAmC;;sDACnC,oBAAoB;;uCACpB,aAAa;;;gCACb,sBAAsB,+HACtB,iCAAiC;;oDACjC,0BAA0B;;;;;;;6CAC1B,yBAAyB;;4CACzB,4BAA4B;;+CAC5B,kBAAkB;;;AAClB;;GAEG;AACH,2BAA2B;;;AAC3B;;GAEG;AACH,oBAAoB;;;qCACG,CAAC"}
@@ -88,11 +88,12 @@ const chatWindowSlice = createSlice({
88
88
  setIsPreviewAction: (state, { payload: { isPreview } }) => {
89
89
  state.isPreview = isPreview;
90
90
  },
91
+ onDefinitionReceivedAction: (state, _action) => state,
91
92
  copyToClipboardAction: (state, _action) => state,
92
93
  },
93
94
  });
94
95
  export const chatWindowSliceReducer = chatWindowSlice.reducer;
95
- export const { setOpenAction, setFullscreenAction, setHistoryAction, setColorPaletteAction, setSettingsAction, copyToClipboardAction, setKeyDriverAnalysisAction, setKeyDriverAnalysisMinimizedAction, setObjectTypesAction, setTagsAction, setCatalogItemsActions, setAllowedRelationshipTypesAction, addContextReferenceAction, removeContextReferenceAction, setIsPreviewAction,
96
+ export const { setOpenAction, setFullscreenAction, setHistoryAction, setColorPaletteAction, setSettingsAction, copyToClipboardAction, setKeyDriverAnalysisAction, setKeyDriverAnalysisMinimizedAction, setObjectTypesAction, setTagsAction, setCatalogItemsActions, setAllowedRelationshipTypesAction, onDefinitionReceivedAction, addContextReferenceAction, removeContextReferenceAction, setIsPreviewAction,
96
97
  /**
97
98
  * @public
98
99
  */
@@ -1,4 +1,5 @@
1
- import { type IChatConversation } from "@gooddata/sdk-backend-spi";
1
+ import { type IChatConversation, type IChatConversationVisualisationContent } from "@gooddata/sdk-backend-spi";
2
+ import { type IDashboard } from "@gooddata/sdk-model";
2
3
  import { type SdkErrorType } from "@gooddata/sdk-ui";
3
4
  import { type IChatConversationLocal, type TextContentObject } from "../model.js";
4
5
  /**
@@ -279,11 +280,29 @@ export type ChatConversationChangedEvent = BaseEvent & {
279
280
  * @public
280
281
  */
281
282
  export declare const isChatConversationChangedEvent: (event: ChatEvent) => event is ChatConversationChangedEvent;
283
+ /**
284
+ * A chat definition received event.
285
+ * @public
286
+ */
287
+ export type ChatDefinitionReceivedEvent = BaseEvent & {
288
+ type: "onDefinitionReceived";
289
+ definitionType: "dashboard" | "visualization";
290
+ itemId: string;
291
+ conversationId: string;
292
+ interactionId?: string;
293
+ dashboard?: IDashboard;
294
+ visualization?: NonNullable<IChatConversationVisualisationContent["visualization"]>;
295
+ };
296
+ /**
297
+ * Type guard for the ChatDefinitionReceivedEvent.
298
+ * @public
299
+ */
300
+ export declare const isChatDefinitionReceivedEvent: (event: ChatEvent) => event is ChatDefinitionReceivedEvent;
282
301
  /**
283
302
  * A union type for all chat events.
284
303
  * @public
285
304
  */
286
- export type ChatEvent = ChatOpenedEvent | ChatClosedEvent | ChatResetEvent | ChatConversationPinnedEvent | ChatConversationPinErrorEvent | ChatConversationDeleteEvent | ChatConversationDeletedSuccessEvent | ChatConversationDeletedErrorEvent | ChatConversationRenameEvent | ChatConversationRenamedSuccessEvent | ChatConversationRenamedErrorEvent | ChatUserMessageEvent | ChatAssistantMessageEvent | ChatFeedbackEvent | ChatFeedbackErrorEvent | ChatCopyToClipboardEvent | ChatVisualizationErrorEvent | ChatSaveVisualizationErrorEvent | ChatSaveVisualizationSuccessEvent | ChatConversationChangedEvent;
305
+ export type ChatEvent = ChatOpenedEvent | ChatClosedEvent | ChatResetEvent | ChatConversationPinnedEvent | ChatConversationPinErrorEvent | ChatConversationDeleteEvent | ChatConversationDeletedSuccessEvent | ChatConversationDeletedErrorEvent | ChatConversationRenameEvent | ChatConversationRenamedSuccessEvent | ChatConversationRenamedErrorEvent | ChatUserMessageEvent | ChatAssistantMessageEvent | ChatFeedbackEvent | ChatFeedbackErrorEvent | ChatCopyToClipboardEvent | ChatVisualizationErrorEvent | ChatSaveVisualizationErrorEvent | ChatSaveVisualizationSuccessEvent | ChatConversationChangedEvent | ChatDefinitionReceivedEvent;
287
306
  /**
288
307
  * An event handler for the Chat component.
289
308
  * @public
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/store/events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/store/events.ts"],"names":[],"mappings":"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"}
@@ -139,6 +139,13 @@ export const isChatCopyToClipboardEvent = (event) => {
139
139
  export const isChatConversationChangedEvent = (event) => {
140
140
  return event.type === "chatConversationChanged";
141
141
  };
142
+ /**
143
+ * Type guard for the ChatDefinitionReceivedEvent.
144
+ * @public
145
+ */
146
+ export const isChatDefinitionReceivedEvent = (event) => {
147
+ return event.type === "onDefinitionReceived";
148
+ };
142
149
  /**
143
150
  * A dispatcher for chat events.
144
151
  * @internal
@@ -21,15 +21,7 @@ import { type IChatConversationLocal, type IChatConversationLocalItem } from "..
21
21
  */
22
22
  export declare function onChatOpenSync({ payload: { isOpen } }: PayloadAction<{
23
23
  isOpen: boolean;
24
- }>): Generator<import("redux-saga/effects").CallEffect<IChatConversationLocalItem[]> | import("redux-saga/effects").CallEffect<{
25
- id: string;
26
- createdAt: string;
27
- updatedAt: string;
28
- title?: string | undefined;
29
- pinned?: boolean | undefined;
30
- agentId?: string | undefined;
31
- localId: string;
32
- } | undefined> | import("redux-saga/effects").PutEffect<{
24
+ }>): Generator<import("redux-saga/effects").CallEffect<any> | import("redux-saga/effects").PutEffect<{
33
25
  payload: {
34
26
  messages?: import("../../model.js").Message[] | undefined;
35
27
  items?: IChatConversationLocalItem[] | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"onChatOpenSync.d.ts","sourceRoot":"","sources":["../../../src/store/sideEffects/onChatOpenSync.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAUtD,OAAO,EACH,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,EAElC,MAAM,gBAAgB,CAAC;AAexB;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAiB,cAAc,CAAC,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,aAAa,CAAC;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC;;;;;;;;;;;;;;;;;;;6DA2F1F"}
1
+ {"version":3,"file":"onChatOpenSync.d.ts","sourceRoot":"","sources":["../../../src/store/sideEffects/onChatOpenSync.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAUtD,OAAO,EACH,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,EAElC,MAAM,gBAAgB,CAAC;AAgBxB;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAiB,cAAc,CAAC,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,aAAa,CAAC;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC;;;;;;;;;;;6DA4F1F"}
@@ -5,6 +5,7 @@ import { settingsSelector } from "../chatWindow/chatWindowSelectors.js";
5
5
  import { asyncProcessSelector, conversationSelector, conversationsLoadedSelector, } from "../messages/messagesSelectors.js";
6
6
  import { loadConversationsSuccessAction, setCurrentConversationAction, setMessagesAction, } from "../messages/messagesSlice.js";
7
7
  import { convertToLocalContent } from "./converters/toLocalContent.js";
8
+ import { notifyDefinitionReceived } from "./onDefinitionReceivedTrigger.js";
8
9
  /**
9
10
  * Re-sync the active conversation with the backend whenever the chat window is opened.
10
11
  *
@@ -56,7 +57,7 @@ export function* onChatOpenSync({ payload: { isOpen } }) {
56
57
  return;
57
58
  }
58
59
  try {
59
- const latest = yield call(fetchLatestConversation);
60
+ const latest = yield call(fetchLatestConversation, current);
60
61
  // Empty (or transient) backend result - most likely a flaky list fetch. Keep the current UI
61
62
  // (list + thread) untouched rather than half-clearing it. fetchLatestConversation already
62
63
  // refrains from clobbering the stored list in this case, so there is nothing to reconcile.
@@ -101,6 +102,7 @@ export function* onChatOpenSync({ payload: { isOpen } }) {
101
102
  yield put(setCurrentConversationAction({ conversation: latest }));
102
103
  }
103
104
  yield put(setMessagesAction({ items }));
105
+ yield call(notifyDefinitionReceived, items, latest.localId);
104
106
  }
105
107
  catch {
106
108
  // Fail silently - keep showing whatever is currently loaded.
@@ -114,7 +116,7 @@ export function* onChatOpenSync({ payload: { isOpen } }) {
114
116
  * chat still shows a thread (which would be an inconsistent half-cleared state).
115
117
  * @internal
116
118
  */
117
- function* fetchLatestConversation() {
119
+ function* fetchLatestConversation(current) {
118
120
  const backend = yield getContext("backend");
119
121
  const workspace = yield getContext("workspace");
120
122
  const isPreview = yield getContext("isPreview");
@@ -129,9 +131,11 @@ function* fetchLatestConversation() {
129
131
  }
130
132
  // Refresh the stored list so the history panel reflects the latest state too.
131
133
  yield put(loadConversationsSuccessAction({ conversations }));
132
- return conversations
134
+ const active = conversations.find((c) => c.localId === current?.localId);
135
+ const latest = conversations
133
136
  .slice()
134
137
  .sort((a, b) => new Date(b.updatedAt).getTime() - new Date(a.updatedAt).getTime())[0];
138
+ return active ?? latest;
135
139
  }
136
140
  /**
137
141
  * Fetch the thread history for the given conversation and convert it to local items.
@@ -0,0 +1,7 @@
1
+ import { type IChatConversationLocalItem, type Message } from "../../model.js";
2
+ /**
3
+ * Notify the store that a definition was received.
4
+ * @internal
5
+ */
6
+ export declare function notifyDefinitionReceived(items: IChatConversationLocalItem | Message | (IChatConversationLocalItem | Message)[], conversationId: string): Generator<unknown, void, any>;
7
+ //# sourceMappingURL=onDefinitionReceivedTrigger.d.ts.map