Skip to content

Commit

Permalink
delete post when editing empty message
Browse files Browse the repository at this point in the history
  • Loading branch information
SupertigerDev committed Jan 8, 2024
1 parent aad7952 commit 7aed1cd
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 2 deletions.
23 changes: 21 additions & 2 deletions src/components/message-pane/MessagePane.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -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 }>();
Expand Down Expand Up @@ -192,7 +193,6 @@ function MessageArea(props: { mainPaneEl: HTMLDivElement, textAreaRef(element?:
if (shouldUploadToGoogleDrive && !account.user()?.connections.find(c => c.provider === 'GOOGLE')) {
createPortal(close => <GoogleDriveLinkModal close={close} />)
return;

}
}

Expand All @@ -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 => <DeleteMessageModal close={close} message={message!} />)
channelProperties.setEditMessage(params.channelId, undefined);
return;
}

if (!trimmedMessage) return;
messages.editAndStoreMessage(params.channelId, editMessageId()!, formattedMessage);
cancelEdit();
Expand Down Expand Up @@ -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}
/>
<Show when={pickedFile() || value().trim()}>
Expand All @@ -378,6 +386,17 @@ function CustomTextArea(props: CustomTextAreaProps) {
iconSize={18}
/>
</Show>
<Show when={!value().trim() && props.isEditing}>
<Button
class={styles.inputButtons}
onClick={props.onSendClick}
color='var(--alert-color)'
iconName={'delete'}
padding={[8, 15, 8, 15]}
margin={[3, 3, 3, 3]}
iconSize={18}
/>
</Show>

</div>
)
Expand Down
22 changes: 22 additions & 0 deletions src/components/message-pane/message-item/MessageItem.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -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 = (
<FlexRow style={{ "justify-content": "flex-end", flex: 1, margin: "5px" }}>
<Button onClick={props.close} iconName="close" label="Cancel" />
Expand Down

0 comments on commit 7aed1cd

Please sign in to comment.