diff --git a/src/app/components/RoomCompose.svelte b/src/app/components/RoomCompose.svelte index 1ba48a9..35bd954 100644 --- a/src/app/components/RoomCompose.svelte +++ b/src/app/components/RoomCompose.svelte @@ -18,11 +18,12 @@ url?: string h?: string content?: string + onEscape?: () => void onEditPrevious?: () => void onSubmit: (event: EventContent) => void } - const {url, h, content, onEditPrevious, onSubmit}: Props = $props() + const {url, h, content, onEscape, onEditPrevious, onSubmit}: Props = $props() const autofocus = !isMobile @@ -34,6 +35,10 @@ editor.then(ed => ed.getText({blockSeparator: "\n"}) === "") const handleKeyDown = async (event: KeyboardEvent) => { + if (event.key === "Escape") { + onEscape?.() + } + if (event.key === "ArrowUp" && (await canEnterEditPrevious())) { onEditPrevious?.() } diff --git a/src/routes/spaces/[relay]/[h]/+page.svelte b/src/routes/spaces/[relay]/[h]/+page.svelte index d3deff6..13e2de9 100644 --- a/src/routes/spaces/[relay]/[h]/+page.svelte +++ b/src/routes/spaces/[relay]/[h]/+page.svelte @@ -280,6 +280,12 @@ cleanup = feed.cleanup } + const onEscape = () => { + clearParent() + clearShare() + eventToEdit = undefined + } + const canEditEvent = (event: TrustedEvent) => event.pubkey === $pubkey && event.created_at >= ago(5, MINUTE) @@ -492,6 +498,7 @@ {url} {h} {onSubmit} + {onEscape} {onEditPrevious} content={eventToEdit?.content} bind:this={compose} /> diff --git a/src/routes/spaces/[relay]/chat/+page.svelte b/src/routes/spaces/[relay]/chat/+page.svelte index 444e85d..464aa3a 100644 --- a/src/routes/spaces/[relay]/chat/+page.svelte +++ b/src/routes/spaces/[relay]/chat/+page.svelte @@ -188,6 +188,12 @@ return elements }) + const onEscape = () => { + clearParent() + clearShare() + eventToEdit = undefined + } + const canEditEvent = (event: TrustedEvent) => event.pubkey === $pubkey && event.created_at >= ago(5, MINUTE) @@ -315,6 +321,7 @@