forked from Ivasoft/mattermost-mobile
use useAndroidHardwareBackHnd on Files and Members (#7455)
* use useAndroidHardwareBackHnd on Files and Members * use callbacks --------- Co-authored-by: Eduardo Sellanes <esellanes@sangoma.com>
This commit is contained in:
@@ -13,17 +13,21 @@ import Search from '@components/search';
|
||||
import {General} from '@constants';
|
||||
import {useServerUrl} from '@context/server';
|
||||
import {useTheme} from '@context/theme';
|
||||
import useAndroidHardwareBackHandler from '@hooks/android_back_handler';
|
||||
import {popTopScreen} from '@screens/navigation';
|
||||
import {type FileFilter, FileFilters, filterFileExtensions} from '@utils/file';
|
||||
import {changeOpacity, getKeyboardAppearanceFromTheme} from '@utils/theme';
|
||||
|
||||
import Header from './header';
|
||||
|
||||
import type ChannelModel from '@typings/database/models/servers/channel';
|
||||
import type {AvailableScreens} from '@typings/screens/navigation';
|
||||
|
||||
const TEST_ID = 'channel_files';
|
||||
|
||||
type Props = {
|
||||
channel: ChannelModel;
|
||||
componentId: AvailableScreens;
|
||||
canDownloadFiles: boolean;
|
||||
publicLinkEnabled: boolean;
|
||||
}
|
||||
@@ -69,6 +73,7 @@ const emptyFileResults: FileInfo[] = [];
|
||||
|
||||
function ChannelFiles({
|
||||
channel,
|
||||
componentId,
|
||||
canDownloadFiles,
|
||||
publicLinkEnabled,
|
||||
}: Props) {
|
||||
@@ -83,6 +88,12 @@ function ChannelFiles({
|
||||
|
||||
const [fileInfos, setFileInfos] = useState<FileInfo[]>(emptyFileResults);
|
||||
|
||||
const close = useCallback(() => {
|
||||
popTopScreen(componentId);
|
||||
}, [componentId]);
|
||||
|
||||
useAndroidHardwareBackHandler(componentId, close);
|
||||
|
||||
const handleSearch = useCallback(async (searchTerm: string, ftr: FileFilter) => {
|
||||
const t = Date.now();
|
||||
lastSearchRequest.current = t;
|
||||
|
||||
@@ -14,8 +14,9 @@ import UserList from '@components/user_list';
|
||||
import {Events, General, Screens} from '@constants';
|
||||
import {useServerUrl} from '@context/server';
|
||||
import {useTheme} from '@context/theme';
|
||||
import useAndroidHardwareBackHandler from '@hooks/android_back_handler';
|
||||
import useNavButtonPressed from '@hooks/navigation_button_pressed';
|
||||
import {openAsBottomSheet, setButtons} from '@screens/navigation';
|
||||
import {openAsBottomSheet, popTopScreen, setButtons} from '@screens/navigation';
|
||||
import NavigationStore from '@store/navigation_store';
|
||||
import {showRemoveChannelUserSnackbar} from '@utils/snack_bar';
|
||||
import {changeOpacity, getKeyboardAppearanceFromTheme} from '@utils/theme';
|
||||
@@ -98,6 +99,12 @@ export default function ManageChannelMembers({
|
||||
setSearchResults(EMPTY);
|
||||
}, []);
|
||||
|
||||
const close = useCallback(() => {
|
||||
popTopScreen(componentId);
|
||||
}, [componentId]);
|
||||
|
||||
useAndroidHardwareBackHandler(componentId, close);
|
||||
|
||||
const handleSelectProfile = useCallback(async (profile: UserProfile) => {
|
||||
if (profile.id === currentUserId && isManageMode) {
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user