@landtrustinc/design-system 1.2.27-beta.6 → 1.2.27-beta.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -5937,7 +5937,6 @@ var ChatWidget = ({
5937
5937
  const scrollRef = (0, import_react30.useRef)(null);
5938
5938
  const savedScrollPosition = (0, import_react30.useRef)(0);
5939
5939
  const previousMessagesLength = (0, import_react30.useRef)(messages.length);
5940
- const lastUserMessageRef = (0, import_react30.useRef)(null);
5941
5940
  const isControlled = typeof expanded === "boolean";
5942
5941
  const [internalExpanded, setInternalExpanded] = (0, import_react30.useState)(defaultExpanded);
5943
5942
  const isExpanded = isControlled ? expanded : internalExpanded;
@@ -5963,61 +5962,32 @@ var ChatWidget = ({
5963
5962
  });
5964
5963
  }, [isExpanded]);
5965
5964
  (0, import_react30.useEffect)(() => {
5966
- if (!isExpanded)
5965
+ const el = scrollRef.current;
5966
+ if (!el || !isExpanded)
5967
5967
  return;
5968
5968
  const messagesChanged = messages.length !== previousMessagesLength.current;
5969
5969
  previousMessagesLength.current = messages.length;
5970
- if (messagesChanged && messages.length > 0) {
5971
- const lastMessage = messages[messages.length - 1];
5972
- const lastMessageElement = lastMessage;
5973
- const isUserMessage = lastMessageElement.type === MessageBubble_default;
5974
- if (isUserMessage && lastUserMessageRef.current) {
5975
- requestAnimationFrame(() => {
5976
- var _a;
5977
- (_a = lastUserMessageRef.current) == null ? void 0 : _a.scrollIntoView({
5978
- behavior: "smooth",
5979
- block: "start"
5980
- });
5981
- });
5982
- }
5970
+ if (messagesChanged || isThinking) {
5971
+ requestAnimationFrame(() => {
5972
+ el.scrollTo({ top: el.scrollHeight, behavior: "smooth" });
5973
+ savedScrollPosition.current = el.scrollHeight;
5974
+ });
5983
5975
  }
5984
- }, [messages, isExpanded]);
5976
+ }, [messages, isThinking, isExpanded]);
5985
5977
  const messagesToRender = messages.length === 0 ? emptyState : messages;
5986
- const lastUserMessageIndex = (0, import_react30.useMemo)(() => {
5987
- for (let i = messagesToRender.length - 1; i >= 0; i--) {
5988
- const message = messagesToRender[i];
5989
- if (message && message.type === MessageBubble_default) {
5990
- return i;
5991
- }
5992
- }
5993
- return -1;
5994
- }, [messagesToRender]);
5995
5978
  const renderedMessages = (0, import_react30.useMemo)(
5996
5979
  () => messagesToRender.map((element, index) => {
5997
5980
  var _a;
5998
5981
  const key = (_a = element.key) != null ? _a : index;
5999
- const isLastUserMessage = index === lastUserMessageIndex;
6000
5982
  if (element.type === AIResponse_default) {
6001
5983
  return /* @__PURE__ */ (0, import_jsx_runtime226.jsx)(Box_default, { css: receivedWrapperStyles, children: element }, key);
6002
5984
  }
6003
5985
  if (element.type === MessageBubble_default) {
6004
- return /* @__PURE__ */ (0, import_jsx_runtime226.jsx)(
6005
- Box_default,
6006
- {
6007
- css: sentWrapperStyles,
6008
- ref: isLastUserMessage ? lastUserMessageRef : null,
6009
- style: {
6010
- scrollMarginTop: "16px"
6011
- // Add padding above when scrolled to
6012
- },
6013
- children: element
6014
- },
6015
- key
6016
- );
5986
+ return /* @__PURE__ */ (0, import_jsx_runtime226.jsx)(Box_default, { css: sentWrapperStyles, children: element }, key);
6017
5987
  }
6018
5988
  return /* @__PURE__ */ (0, import_jsx_runtime226.jsx)(import_react30.default.Fragment, { children: element }, key);
6019
5989
  }),
6020
- [messagesToRender, lastUserMessageIndex]
5990
+ [messagesToRender]
6021
5991
  );
6022
5992
  const handleSubmit = () => {
6023
5993
  const trimmed = value.trim();