diff --git a/app/screens/home/search/index.tsx b/app/screens/home/search/index.tsx
index 7357169a1..6282403ad 100644
--- a/app/screens/home/search/index.tsx
+++ b/app/screens/home/search/index.tsx
@@ -6,6 +6,7 @@ import withObservables from '@nozbe/with-observables';
import compose from 'lodash/fp/compose';
import {observeCurrentTeamId} from '@queries/servers/system';
+import {queryJoinedTeams} from '@queries/servers/team';
import SearchScreen from './search';
@@ -15,6 +16,7 @@ const enhance = withObservables([], ({database}: WithDatabaseArgs) => {
const currentTeamId = observeCurrentTeamId(database);
return {
teamId: currentTeamId,
+ teams: queryJoinedTeams(database).observe(),
};
});
diff --git a/app/screens/home/search/initial/initial.tsx b/app/screens/home/search/initial/initial.tsx
index 8f0b1630a..65c94bf62 100644
--- a/app/screens/home/search/initial/initial.tsx
+++ b/app/screens/home/search/initial/initial.tsx
@@ -4,6 +4,8 @@
import React from 'react';
import Animated from 'react-native-reanimated';
+import {TeamModel} from '@database/models/server';
+
import Modifiers from './modifiers';
import RecentSearches from './recent_searches';
@@ -18,9 +20,10 @@ type Props = {
setTeamId: (value: string) => void;
teamId: string;
teamName: string;
+ teams: TeamModel[];
}
-const Initial = ({recentSearches, scrollEnabled, searchValue, setRecentValue, teamId, teamName, setTeamId, setSearchValue}: Props) => {
+const Initial = ({recentSearches, scrollEnabled, searchValue, setRecentValue, teamId, teamName, teams, setTeamId, setSearchValue}: Props) => {
return (
<>
{Boolean(recentSearches.length) &&
diff --git a/app/screens/home/search/initial/modifiers/index.tsx b/app/screens/home/search/initial/modifiers/index.tsx
index 8f87d6c8c..348151c51 100644
--- a/app/screens/home/search/initial/modifiers/index.tsx
+++ b/app/screens/home/search/initial/modifiers/index.tsx
@@ -8,6 +8,7 @@ import Animated, {useSharedValue, useAnimatedStyle, withTiming} from 'react-nati
import FormattedText from '@components/formatted_text';
import {useTheme} from '@context/theme';
+import {TeamModel} from '@database/models/server';
import TeamPickerIcon from '@screens/home/search/team_picker_icon';
import {makeStyleSheetFromTheme} from '@utils/theme';
import {typography} from '@utils/typography';
@@ -83,8 +84,9 @@ type Props = {
searchValue?: string;
setTeamId: (id: string) => void;
teamId: string;
+ teams: TeamModel[];
}
-const Modifiers = ({scrollEnabled, searchValue, setSearchValue, setTeamId, teamId}: Props) => {
+const Modifiers = ({scrollEnabled, searchValue, setSearchValue, setTeamId, teamId, teams}: Props) => {
const theme = useTheme();
const intl = useIntl();
@@ -142,11 +144,14 @@ const Modifiers = ({scrollEnabled, searchValue, setSearchValue, setTeamId, teamI
id={'screen.search.modifier.header'}
defaultMessage='Search options'
/>
+ {teams.length > 1 &&
+ }
{data.map((item) => renderModifier(item))}
diff --git a/app/screens/home/search/results/header.tsx b/app/screens/home/search/results/header.tsx
index 96b60db49..0e2041dec 100644
--- a/app/screens/home/search/results/header.tsx
+++ b/app/screens/home/search/results/header.tsx
@@ -8,16 +8,16 @@ import {useSafeAreaInsets} from 'react-native-safe-area-context';
import Badge from '@components/badge';
import CompassIcon from '@components/compass_icon';
import {useTheme} from '@context/theme';
+import {TeamModel} from '@database/models/server';
import {useIsTablet} from '@hooks/device';
import {TITLE_SEPARATOR_MARGIN, TITLE_SEPARATOR_MARGIN_TABLET, TITLE_HEIGHT} from '@screens/bottom_sheet/content';
+import TeamPickerIcon from '@screens/home/search/team_picker_icon';
import {bottomSheet} from '@screens/navigation';
import {FileFilter, FileFilters} from '@utils/file';
import {bottomSheetSnapPoint} from '@utils/helpers';
import {TabTypes, TabType} from '@utils/search';
import {changeOpacity, makeStyleSheetFromTheme} from '@utils/theme';
-import TeamPickerIcon from '../team_picker_icon';
-
import Filter, {DIVIDERS_HEIGHT, FILTER_ITEM_HEIGHT, NUMBER_FILTER_ITEMS} from './filter';
import SelectButton from './header_button';
@@ -30,6 +30,7 @@ type Props = {
numberFiles: number;
setTeamId: (id: string) => void;
teamId: string;
+ teams: TeamModel[];
}
const getStyleFromTheme = makeStyleSheetFromTheme((theme: Theme) => {
@@ -50,7 +51,7 @@ const getStyleFromTheme = makeStyleSheetFromTheme((theme: Theme) => {
paddingHorizontal: 12,
flexDirection: 'row',
},
- filter: {
+ iconsContainer: {
alignItems: 'center',
flexDirection: 'row',
marginLeft: 'auto',
@@ -67,6 +68,7 @@ const Header = ({
numberFiles,
selectedTab,
selectedFilter,
+ teams,
}: Props) => {
const theme = useTheme();
const styles = getStyleFromTheme(theme);
@@ -118,6 +120,8 @@ const Header = ({
});
}, [selectedFilter]);
+ const filterStyle = useMemo(() => ({marginRight: teams.length > 1 ? 0 : 10}), [teams.length > 1]);
+
return (
@@ -131,11 +135,9 @@ const Header = ({
onPress={handleFilesPress}
text={`${filesText} (${numberFiles})`}
/>
-
+
{showFilterIcon &&
- <>
+
- >
+
}
+ {teams.length > 1 &&
+ }
diff --git a/app/screens/home/search/search.tsx b/app/screens/home/search/search.tsx
index 93b982a22..a18af2302 100644
--- a/app/screens/home/search/search.tsx
+++ b/app/screens/home/search/search.tsx
@@ -20,6 +20,7 @@ import {SearchRef} from '@components/search';
import {BOTTOM_TAB_HEIGHT} from '@constants/view';
import {useServerUrl} from '@context/server';
import {useTheme} from '@context/theme';
+import {TeamModel} from '@database/models/server';
import {useKeyboardHeight} from '@hooks/device';
import useDidUpdate from '@hooks/did_update';
import {useCollapsibleHeader} from '@hooks/header';
@@ -45,6 +46,7 @@ const AutocompletePaddingTop = 4;
type Props = {
teamId: string;
+ teams: TeamModel[];
}
const styles = StyleSheet.create({
@@ -71,7 +73,7 @@ const getSearchParams = (terms: string, filterValue?: FileFilter) => {
const searchScreenIndex = 1;
-const SearchScreen = ({teamId}: Props) => {
+const SearchScreen = ({teamId, teams}: Props) => {
const nav = useNavigation();
const isFocused = useIsFocused();
const intl = useIntl();
@@ -229,6 +231,7 @@ const SearchScreen = ({teamId}: Props) => {
setSearchValue={handleModifierTextChange}
setTeamId={setSearchTeamId}
teamId={searchTeamId}
+ teams={teams}
/>
);
}, [handleRecentSearch, handleTextChange, loading,
@@ -346,6 +349,7 @@ const SearchScreen = ({teamId}: Props) => {
selectedTab={selectedTab}
numberFiles={fileInfos.length}
selectedFilter={filter}
+ teams={teams}
/>
}
diff --git a/app/screens/home/search/team_picker_icon/search_team_slideup.tsx b/app/screens/home/search/select_team_slideup.tsx
similarity index 100%
rename from app/screens/home/search/team_picker_icon/search_team_slideup.tsx
rename to app/screens/home/search/select_team_slideup.tsx
diff --git a/app/screens/home/search/team_picker_icon/team_picker_icon.tsx b/app/screens/home/search/team_picker_icon.tsx
similarity index 98%
rename from app/screens/home/search/team_picker_icon/team_picker_icon.tsx
rename to app/screens/home/search/team_picker_icon.tsx
index 7119819b8..794dedc3d 100644
--- a/app/screens/home/search/team_picker_icon/team_picker_icon.tsx
+++ b/app/screens/home/search/team_picker_icon.tsx
@@ -15,7 +15,7 @@ import {preventDoubleTap} from '@utils/tap';
import {getTeamsSnapHeight} from '@utils/team_list';
import {changeOpacity, makeStyleSheetFromTheme} from '@utils/theme';
-import SelectTeamSlideUp from './search_team_slideup';
+import SelectTeamSlideUp from './select_team_slideup';
import type TeamModel from '@typings/database/models/servers/team';
diff --git a/app/screens/home/search/team_picker_icon/index.ts b/app/screens/home/search/team_picker_icon/index.ts
deleted file mode 100644
index 1677da0e9..000000000
--- a/app/screens/home/search/team_picker_icon/index.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
-// See LICENSE.txt for license information.
-
-import {withDatabase} from '@nozbe/watermelondb/DatabaseProvider';
-import withObservables from '@nozbe/with-observables';
-
-import {queryJoinedTeams} from '@queries/servers/team';
-
-import TeamPickerIcon from './team_picker_icon';
-
-import type {WithDatabaseArgs} from '@typings/database/database';
-
-const enhanced = withObservables([], ({database}: WithDatabaseArgs) => {
- const teams = queryJoinedTeams(database).observe();
- return {
- teams,
- };
-});
-
-export default withDatabase(enhanced(TeamPickerIcon));