diff --git a/packages/client/src/components/EmptyContainer/EmptyFilterContainer.js b/packages/client/src/components/EmptyContainer/EmptyFilterContainer.js index fa1b3baab0..8569597343 100644 --- a/packages/client/src/components/EmptyContainer/EmptyFilterContainer.js +++ b/packages/client/src/components/EmptyContainer/EmptyFilterContainer.js @@ -16,6 +16,9 @@ const EmptyFilterContainer = ({ fetchRooms, linkStyles, isRooms, + isArchiveFolder, + isRoomsFolder, + setClearSearch, }) => { const subheadingText = t("EmptyFilterSubheadingText"); const descriptionText = isRooms @@ -24,7 +27,13 @@ const EmptyFilterContainer = ({ const onResetFilter = () => { setIsLoading(true); - if (isRooms) { + + if (isArchiveFolder) { + setClearSearch(true); + return; + } + + if (isRoomsFolder) { const newFilter = RoomsFilter.getDefault(); fetchRooms(selectedFolderId, newFilter) .catch((err) => toastr.error(err)) @@ -74,6 +83,9 @@ export default inject( selectedFolderId: selectedFolderStore.id, setIsLoading: filesStore.setIsLoading, isRooms, + isArchiveFolder, + isRoomsFolder, + setClearSearch: filesStore.setClearSearch, }; } )(withTranslation(["Files", "Common"])(observer(EmptyFilterContainer))); diff --git a/packages/client/src/pages/Home/Section/Filter/index.js b/packages/client/src/pages/Home/Section/Filter/index.js index 9625fb153a..2c251a458a 100644 --- a/packages/client/src/pages/Home/Section/Filter/index.js +++ b/packages/client/src/pages/Home/Section/Filter/index.js @@ -169,6 +169,8 @@ const SectionFilterContent = ({ searchTitleOpenLocation, isLoadedLocationFiles, setIsLoadedSearchFiles, + clearSearch, + setClearSearch, }) => { const [selectedFilterValues, setSelectedFilterValues] = React.useState(null); @@ -1323,6 +1325,8 @@ const SectionFilterContent = ({ removeSelectedItem={removeSelectedItem} clearAll={clearAll} filterTitle={t("Filter")} + clearSearch={clearSearch} + setClearSearch={setClearSearch} /> ); }; @@ -1347,6 +1351,8 @@ export default inject( createThumbnails, setCurrentRoomsFilter, thirdPartyStore, + clearSearch, + setClearSearch, } = filesStore; const { providers } = thirdPartyStore; @@ -1404,6 +1410,9 @@ export default inject( setSearchTitleOpenLocation, isLoadedLocationFiles, setIsLoadedSearchFiles, + + clearSearch, + setClearSearch, }; } )( diff --git a/packages/client/src/store/FilesStore.js b/packages/client/src/store/FilesStore.js index b9839feed0..55ec1af294 100644 --- a/packages/client/src/store/FilesStore.js +++ b/packages/client/src/store/FilesStore.js @@ -111,6 +111,8 @@ class FilesStore { roomsController = null; filesController = null; + clearSearch = false; + constructor( authStore, selectedFolderStore, @@ -355,6 +357,10 @@ class FilesStore { this.operationAction = operationAction; }; + setClearSearch = (clearSearch) => { + this.clearSearch = clearSearch; + }; + updateSelectionStatus = (id, status, isEditing) => { const index = this.selection.findIndex((x) => x.id === id); diff --git a/packages/common/components/FilterInput/index.js b/packages/common/components/FilterInput/index.js index f1b8303c3d..d5642e20a8 100644 --- a/packages/common/components/FilterInput/index.js +++ b/packages/common/components/FilterInput/index.js @@ -43,7 +43,10 @@ const FilterInput = React.memo( isPersonalRoom, isRooms, isAccounts, - filterTitle + filterTitle, + + clearSearch, + setClearSearch, }) => { const [viewSettings, setViewSettings] = React.useState([]); const [inputValue, setInputValue] = React.useState(""); @@ -58,6 +61,14 @@ const FilterInput = React.memo( if (value) setViewSettings(value); }, [getViewSettingsData]); + React.useEffect(() => { + if (clearSearch) { + setInputValue(""); + onClearSearch(); + setClearSearch(false); + } + }, [clearSearch]); + React.useEffect(() => { const value = getSelectedInputValue && getSelectedInputValue();