From 37c315649330d870645f61cf7b91cdd6c580eb92 Mon Sep 17 00:00:00 2001 From: Alexander Zinchuk Date: Mon, 1 Jun 2026 01:15:55 +0200 Subject: [PATCH] Forward Modal: Send from forward modal on Enter key (#6964) --- src/components/common/pickers/PickerItem.tsx | 9 +++++++ .../main/ForwardRecipientPicker.tsx | 27 +++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/src/components/common/pickers/PickerItem.tsx b/src/components/common/pickers/PickerItem.tsx index 994665ef0..c3b7d9f59 100644 --- a/src/components/common/pickers/PickerItem.tsx +++ b/src/components/common/pickers/PickerItem.tsx @@ -57,6 +57,14 @@ const PickerItem = ({ onClick?.(); }); + const handleKeyDown = useLastCallback((e: React.KeyboardEvent) => { + if (e.key !== ' ') return; + + e.preventDefault(); + e.stopPropagation(); + handleClick(); + }); + return (
= ({ executeForward(); }); + const handleEnterShortcut = useLastCallback((e: KeyboardEvent) => { + if (e.isComposing || e.metaKey || e.ctrlKey || e.altKey || e.shiftKey) { + return false; + } + + if (!selectedIds.length) { + if (!canCopyLink) return false; + + e.preventDefault(); + handleCopyLink(); + return undefined; + } + + e.preventDefault(); + handleForwardToMultiple(); + return undefined; + }); + + useEffect(() => { + if (!isOpen || !isMultiSelect || isPaymentConfirmOpen) { + return undefined; + } + + return captureKeyboardListeners({ onEnter: handleEnterShortcut }); + }, [isOpen, isMultiSelect, isPaymentConfirmOpen, handleEnterShortcut]); + const executeForward = useLastCallback(() => { const targets: ForwardTarget[] = selectedIds.map(({ peerId, topicId }) => ({ chatId: peerId,