@copilotz/chat-ui 0.1.2 → 0.1.3
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.cjs +62 -53
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +63 -54
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -781,27 +781,7 @@ var ToolCallsDisplay = (0, import_react.memo)(function ToolCallsDisplay2({ toolC
|
|
|
781
781
|
] });
|
|
782
782
|
});
|
|
783
783
|
var arePropsEqual = (prevProps, nextProps) => {
|
|
784
|
-
if (prevProps.message
|
|
785
|
-
if (prevProps.message.content !== nextProps.message.content) return false;
|
|
786
|
-
if (prevProps.message.isStreaming !== nextProps.message.isStreaming) return false;
|
|
787
|
-
if (prevProps.message.isComplete !== nextProps.message.isComplete) return false;
|
|
788
|
-
if (prevProps.message.isEdited !== nextProps.message.isEdited) return false;
|
|
789
|
-
if (prevProps.message.timestamp !== nextProps.message.timestamp) return false;
|
|
790
|
-
if (prevProps.message.toolCalls !== nextProps.message.toolCalls) {
|
|
791
|
-
const prevCalls = prevProps.message.toolCalls;
|
|
792
|
-
const nextCalls = nextProps.message.toolCalls;
|
|
793
|
-
if (!prevCalls || !nextCalls || prevCalls.length !== nextCalls.length) return false;
|
|
794
|
-
for (let i = 0; i < prevCalls.length; i++) {
|
|
795
|
-
if (prevCalls[i].id !== nextCalls[i].id || prevCalls[i].status !== nextCalls[i].status || prevCalls[i].result !== nextCalls[i].result) {
|
|
796
|
-
return false;
|
|
797
|
-
}
|
|
798
|
-
}
|
|
799
|
-
}
|
|
800
|
-
if (prevProps.message.attachments !== nextProps.message.attachments) {
|
|
801
|
-
const prevAtt = prevProps.message.attachments;
|
|
802
|
-
const nextAtt = nextProps.message.attachments;
|
|
803
|
-
if (!prevAtt || !nextAtt || prevAtt.length !== nextAtt.length) return false;
|
|
804
|
-
}
|
|
784
|
+
if (prevProps.message !== nextProps.message) return false;
|
|
805
785
|
if (prevProps.isUser !== nextProps.isUser) return false;
|
|
806
786
|
if (prevProps.userAvatar !== nextProps.userAvatar) return false;
|
|
807
787
|
if (prevProps.userName !== nextProps.userName) return false;
|
|
@@ -3731,7 +3711,10 @@ var ChatUI = ({
|
|
|
3731
3711
|
initialInput,
|
|
3732
3712
|
onInitialInputConsumed
|
|
3733
3713
|
}) => {
|
|
3734
|
-
const config =
|
|
3714
|
+
const config = (0, import_react7.useMemo)(
|
|
3715
|
+
() => mergeConfig(defaultChatConfig, userConfig),
|
|
3716
|
+
[userConfig]
|
|
3717
|
+
);
|
|
3735
3718
|
const [isMobile, setIsMobile] = (0, import_react7.useState)(false);
|
|
3736
3719
|
const [isUserProfileOpen, setIsUserProfileOpen] = (0, import_react7.useState)(false);
|
|
3737
3720
|
let userContext;
|
|
@@ -3956,6 +3939,62 @@ var ChatUI = ({
|
|
|
3956
3939
|
`message-skeleton-${index}`
|
|
3957
3940
|
);
|
|
3958
3941
|
}) });
|
|
3942
|
+
const renderedMessageList = (0, import_react7.useMemo)(() => {
|
|
3943
|
+
if (isMessagesLoading) return renderMessageLoadingSkeleton();
|
|
3944
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(import_jsx_runtime24.Fragment, { children: [
|
|
3945
|
+
renderSuggestions(),
|
|
3946
|
+
messages.map((message, index) => {
|
|
3947
|
+
const prevMessage = index > 0 ? messages[index - 1] : null;
|
|
3948
|
+
const isGrouped = prevMessage !== null && prevMessage.role === message.role;
|
|
3949
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: isGrouped ? "space-y-1 -mt-2" : "space-y-2", children: [
|
|
3950
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
3951
|
+
Message,
|
|
3952
|
+
{
|
|
3953
|
+
message,
|
|
3954
|
+
userAvatar: user?.avatar,
|
|
3955
|
+
userName: user?.name,
|
|
3956
|
+
assistantAvatar: assistant?.avatar,
|
|
3957
|
+
assistantName: assistant?.name,
|
|
3958
|
+
showTimestamp: config.ui.showTimestamps,
|
|
3959
|
+
showAvatar: config.ui.showAvatars,
|
|
3960
|
+
enableCopy: config.features.enableMessageCopy,
|
|
3961
|
+
enableEdit: config.features.enableMessageEditing,
|
|
3962
|
+
enableRegenerate: config.features.enableRegeneration,
|
|
3963
|
+
enableToolCallsDisplay: config.features.enableToolCallsDisplay,
|
|
3964
|
+
compactMode: config.ui.compactMode,
|
|
3965
|
+
onAction: handleMessageAction,
|
|
3966
|
+
toolUsedLabel: config.labels.toolUsed,
|
|
3967
|
+
thinkingLabel: config.labels.thinking,
|
|
3968
|
+
isGrouped
|
|
3969
|
+
}
|
|
3970
|
+
),
|
|
3971
|
+
message.role === "assistant" && renderInlineSuggestions(message.id)
|
|
3972
|
+
] }, message.id);
|
|
3973
|
+
})
|
|
3974
|
+
] });
|
|
3975
|
+
}, [
|
|
3976
|
+
isMessagesLoading,
|
|
3977
|
+
messages,
|
|
3978
|
+
handleSendMessage,
|
|
3979
|
+
user?.avatar,
|
|
3980
|
+
user?.name,
|
|
3981
|
+
assistant?.avatar,
|
|
3982
|
+
assistant?.name,
|
|
3983
|
+
config.branding.title,
|
|
3984
|
+
config.branding.subtitle,
|
|
3985
|
+
config.ui.showTimestamps,
|
|
3986
|
+
config.ui.showAvatars,
|
|
3987
|
+
config.ui.compactMode,
|
|
3988
|
+
config.features.enableMessageCopy,
|
|
3989
|
+
config.features.enableMessageEditing,
|
|
3990
|
+
config.features.enableRegeneration,
|
|
3991
|
+
config.features.enableToolCallsDisplay,
|
|
3992
|
+
config.labels.toolUsed,
|
|
3993
|
+
config.labels.thinking,
|
|
3994
|
+
handleMessageAction,
|
|
3995
|
+
messageSuggestions,
|
|
3996
|
+
suggestions
|
|
3997
|
+
]);
|
|
3959
3998
|
const shouldShowAgentSelector = Boolean(
|
|
3960
3999
|
config.agentSelector?.enabled && onSelectAgent && agentOptions.length > 0 && (!config.agentSelector?.hideIfSingle || agentOptions.length > 1)
|
|
3961
4000
|
);
|
|
@@ -4016,37 +4055,7 @@ var ChatUI = ({
|
|
|
4016
4055
|
viewportClassName: "p-4 overscroll-contain",
|
|
4017
4056
|
onScrollCapture: handleScroll,
|
|
4018
4057
|
children: /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "max-w-4xl mx-auto space-y-4 pb-4", children: [
|
|
4019
|
-
|
|
4020
|
-
renderSuggestions(),
|
|
4021
|
-
messages.map((message, index) => {
|
|
4022
|
-
const prevMessage = index > 0 ? messages[index - 1] : null;
|
|
4023
|
-
const isGrouped = prevMessage !== null && prevMessage.role === message.role;
|
|
4024
|
-
return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: isGrouped ? "space-y-1 -mt-2" : "space-y-2", children: [
|
|
4025
|
-
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
4026
|
-
Message,
|
|
4027
|
-
{
|
|
4028
|
-
message,
|
|
4029
|
-
userAvatar: user?.avatar,
|
|
4030
|
-
userName: user?.name,
|
|
4031
|
-
assistantAvatar: assistant?.avatar,
|
|
4032
|
-
assistantName: assistant?.name,
|
|
4033
|
-
showTimestamp: config.ui.showTimestamps,
|
|
4034
|
-
showAvatar: config.ui.showAvatars,
|
|
4035
|
-
enableCopy: config.features.enableMessageCopy,
|
|
4036
|
-
enableEdit: config.features.enableMessageEditing,
|
|
4037
|
-
enableRegenerate: config.features.enableRegeneration,
|
|
4038
|
-
enableToolCallsDisplay: config.features.enableToolCallsDisplay,
|
|
4039
|
-
compactMode: config.ui.compactMode,
|
|
4040
|
-
onAction: handleMessageAction,
|
|
4041
|
-
toolUsedLabel: config.labels.toolUsed,
|
|
4042
|
-
thinkingLabel: config.labels.thinking,
|
|
4043
|
-
isGrouped
|
|
4044
|
-
}
|
|
4045
|
-
),
|
|
4046
|
-
message.role === "assistant" && renderInlineSuggestions(message.id)
|
|
4047
|
-
] }, message.id);
|
|
4048
|
-
})
|
|
4049
|
-
] }),
|
|
4058
|
+
renderedMessageList,
|
|
4050
4059
|
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { ref: messagesEndRef })
|
|
4051
4060
|
] })
|
|
4052
4061
|
}
|