From 9a5dd2b6a17a5599a6ecd870fbf1def1003529d0 Mon Sep 17 00:00:00 2001 From: Julien Tant <785518+JulienTant@users.noreply.github.com> Date: Thu, 30 Jan 2025 11:57:13 -0700 Subject: [PATCH] [MM-62776] Fix search not working anymore in responsive mode. (#30041) --- .../channels/src/components/search/search.tsx | 33 ++++++++++++------- 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/webapp/channels/src/components/search/search.tsx b/webapp/channels/src/components/search/search.tsx index df9bc18bde..896ecd0241 100644 --- a/webapp/channels/src/components/search/search.tsx +++ b/webapp/channels/src/components/search/search.tsx @@ -155,6 +155,12 @@ const Search: React.FC = (props: Props): JSX.Element => { }; }, [hideSearchBar, currentChannelName]); + useEffect((): void => { + if (isMobileView && props.isSideBarRight) { + handleFocus(); + } + }, [isMobileView, props.isSideBarRight]); + useEffect((): void => { if (!isMobileView) { setVisibleSearchHintOptions(determineVisibleSearchHintOptions(searchTerms, searchType)); @@ -280,24 +286,27 @@ const Search: React.FC = (props: Props): JSX.Element => { }; const handleEnterKey = (e: ChangeEvent): void => { - // only prevent default-behaviour, when one of the conditions is true - // when both are false just submit the form (default behaviour) with - // `handleSubmit` function called from the `form` - if (indexChangedViaKeyPress && !searchType && !searchTerms) { - e.preventDefault(); + e.preventDefault(); + + if (indexChangedViaKeyPress) { setKeepInputFocused(true); - actions.updateSearchType(highlightedSearchHintIndex === 0 ? 'messages' : 'files'); - setHighlightedSearchHintIndex(-1); - } else if (indexChangedViaKeyPress) { - e.preventDefault(); - setKeepInputFocused(true); - handleAddSearchTerm(visibleSearchHintOptions[highlightedSearchHintIndex].searchTerm); + if (!searchType && !searchTerms) { + actions.updateSearchType(highlightedSearchHintIndex === 0 ? 'messages' : 'files'); + setHighlightedSearchHintIndex(-1); + } else { + handleAddSearchTerm(visibleSearchHintOptions[highlightedSearchHintIndex].searchTerm); + } + return; } if (props.isMentionSearch) { - e.preventDefault(); actions.updateRhsState(RHSStates.SEARCH); } + + handleSearch().then(() => { + setKeepInputFocused(false); + setFocused(false); + }); }; const handleSubmit = (e: FormEvent): void => {