diff --git a/src/components/Message/AiMessage.tsx b/src/components/Message/AiMessage.tsx
index fa883f7d..4b6ba045 100644
--- a/src/components/Message/AiMessage.tsx
+++ b/src/components/Message/AiMessage.tsx
@@ -159,7 +159,7 @@ function AiMessage(props: AiMessageProps) {
onRetryClick={retrying ? undefined : handleRetryClick}
onDeleteClick={retrying ? undefined : props.onDeleteClick}
disableFork={retrying}
- disableEdit={retrying}
+ disableEdit={message.readonly ?? retrying}
/>
);
}
diff --git a/src/components/Message/MessageBase.tsx b/src/components/Message/MessageBase.tsx
index deb5356a..286ac5e5 100644
--- a/src/components/Message/MessageBase.tsx
+++ b/src/components/Message/MessageBase.tsx
@@ -132,7 +132,8 @@ function MessageBase({
const { isOpen, onToggle: originalOnToggle } = useDisclosure();
const isLongMessage = text.length > 5000;
const displaySummaryText = !isOpen && (summaryText || isLongMessage);
- const shouldShowDeleteMenu = Boolean(onDeleteBeforeClick || onDeleteClick || onDeleteAfterClick);
+ const shouldShowDeleteMenu =
+ Boolean(onDeleteBeforeClick || onDeleteClick || onDeleteAfterClick) && !disableEdit;
const chat = useLiveQuery(() => ChatCraftChat.find(chatId), [chatId]);
const { user } = useUser();
const handleShareMessage = useCallback(async () => {
@@ -430,7 +431,7 @@ function MessageBase({
onClick={() => onEditingChange(!editing)}
/>
)}
- {onDeleteClick && (
+ {!disableEdit && onDeleteClick && (
}
@@ -496,7 +497,6 @@ function MessageBase({
{editing ? "Cancel Editing" : "Edit"}
)}
-
{shouldShowDeleteMenu && (
<>
{onDeleteClick && !onDeleteBeforeClick && !onDeleteAfterClick ? (
diff --git a/src/components/Message/SystemMessage.tsx b/src/components/Message/SystemMessage.tsx
index e5461e87..e72d8a59 100644
--- a/src/components/Message/SystemMessage.tsx
+++ b/src/components/Message/SystemMessage.tsx
@@ -137,7 +137,7 @@ type SystemMessageProps = Omit & {
};
function SystemMessage(props: SystemMessageProps) {
- const { chatId, message, editing, onEditingChange } = props;
+ const { chatId, message, disableEdit, editing, onEditingChange } = props;
const { isOpen, onToggle } = useDisclosure();
const summaryText = createSystemPromptSummary(message);
const { error } = useAlert();
@@ -161,7 +161,12 @@ function SystemMessage(props: SystemMessageProps) {
-