diff --git a/src/components/message-pane/MessagePane.tsx b/src/components/message-pane/MessagePane.tsx
index 132a4156..b893d467 100644
--- a/src/components/message-pane/MessagePane.tsx
+++ b/src/components/message-pane/MessagePane.tsx
@@ -45,6 +45,7 @@ import { randomKaomoji } from '@/common/kaomoji';
import { MessageLogArea } from './message-log-area/MessageLogArea';
import { TenorImage } from '@/chat-api/services/TenorService';
import { useMicRecorder } from '@nerimity/solid-opus-media-recorder';
+import { DeleteMessageModal } from './message-item/MessageItem';
export default function MessagePane(props: { mainPaneEl: HTMLDivElement }) {
const params = useParams<{ channelId: string, serverId?: string }>();
@@ -192,7 +193,6 @@ function MessageArea(props: { mainPaneEl: HTMLDivElement, textAreaRef(element?:
if (shouldUploadToGoogleDrive && !account.user()?.connections.find(c => c.provider === 'GOOGLE')) {
createPortal(close => )
return;
-
}
}
@@ -204,6 +204,14 @@ function MessageArea(props: { mainPaneEl: HTMLDivElement, textAreaRef(element?:
const formattedMessage = formatMessage(trimmedMessage, params.serverId, params.channelId, !!editMessageId());
if (editMessageId()) {
+
+ if (!formattedMessage.trim()) {
+ const message = messages.get(params.channelId)?.find(m => m.id === editMessageId())
+ createPortal(close => )
+ channelProperties.setEditMessage(params.channelId, undefined);
+ return;
+ }
+
if (!trimmedMessage) return;
messages.editAndStoreMessage(params.channelId, editMessageId()!, formattedMessage);
cancelEdit();
@@ -365,7 +373,7 @@ function CustomTextArea(props: CustomTextAreaProps) {
onClick={props.onEmojiPickerClick}
iconName="face"
padding={[8, 8, 8, 8]}
- margin={[3, (pickedFile() || value().trim()) ? 0 : 3, 3, 3]}
+ margin={[3, props.isEditing ? 0 : ((pickedFile() || value().trim()) ? 0 : 3), 3, 3]}
iconSize={18}
/>
@@ -378,6 +386,17 @@ function CustomTextArea(props: CustomTextAreaProps) {
iconSize={18}
/>
+
+
+
)
diff --git a/src/components/message-pane/message-item/MessageItem.tsx b/src/components/message-pane/message-item/MessageItem.tsx
index 0db1e24c..f2bcae54 100644
--- a/src/components/message-pane/message-item/MessageItem.tsx
+++ b/src/components/message-pane/message-item/MessageItem.tsx
@@ -861,6 +861,28 @@ export function DeleteMessageModal(props: { message: Message, close: () => void
deleteMessage({ channelId: props.message.channelId, messageId: props.message.id });
}
+
+ const onKeyDown = (event: KeyboardEvent) => {
+ if (event.key === "Enter") {
+ event.preventDefault();
+ onDeleteClick();
+ }
+ if (event.key === "Escape") {
+ event.preventDefault();
+ props. close();
+ }
+ }
+
+
+ onMount(() => {
+ document.addEventListener("keydown", onKeyDown);
+ onCleanup(() => {
+ document.removeEventListener("keydown", onKeyDown);
+ })
+ })
+
+
+
const ActionButtons = (