diff --git a/app/components/threads_button/__snapshots__/threads_button.test.tsx.snap b/app/components/threads_button/__snapshots__/threads_button.test.tsx.snap index f487a6ac2..1c1a7389b 100644 --- a/app/components/threads_button/__snapshots__/threads_button.test.tsx.snap +++ b/app/components/threads_button/__snapshots__/threads_button.test.tsx.snap @@ -189,98 +189,3 @@ exports[`Thread item in the channel list Threads Component should match snapshot `; - -exports[`Thread item in the channel list Threads Component should match snapshot with only unreads filter 1`] = `null`; - -exports[`Thread item in the channel list Threads Component should match snapshot, groupUnreadsSeparately false, always show 1`] = ` - - - - - Threads - - - -`; diff --git a/app/components/threads_button/index.ts b/app/components/threads_button/index.ts index d63e44ddb..847b1272e 100644 --- a/app/components/threads_button/index.ts +++ b/app/components/threads_button/index.ts @@ -2,31 +2,20 @@ // See LICENSE.txt for license information. import {withDatabase, withObservables} from '@nozbe/watermelondb/react'; -import {of as of$} from 'rxjs'; import {switchMap} from 'rxjs/operators'; -import Preferences from '@constants/preferences'; -import {getSidebarPreferenceAsBool} from '@helpers/api/preference'; -import {querySidebarPreferences} from '@queries/servers/preference'; -import {observeCurrentChannelId, observeCurrentTeamId, observeOnlyUnreads} from '@queries/servers/system'; +import {observeCurrentChannelId, observeCurrentTeamId} from '@queries/servers/system'; import {observeUnreadsAndMentionsInTeam} from '@queries/servers/thread'; import ThreadsButton from './threads_button'; import type {WithDatabaseArgs} from '@typings/database/database'; -import type PreferenceModel from '@typings/database/models/servers/preference'; const enhanced = withObservables([], ({database}: WithDatabaseArgs) => { const currentTeamId = observeCurrentTeamId(database); return { currentChannelId: observeCurrentChannelId(database), - groupUnreadsSeparately: querySidebarPreferences(database, Preferences.CHANNEL_SIDEBAR_GROUP_UNREADS). - observeWithColumns(['value']). - pipe( - switchMap((prefs: PreferenceModel[]) => of$(getSidebarPreferenceAsBool(prefs, Preferences.CHANNEL_SIDEBAR_GROUP_UNREADS))), - ), - onlyUnreads: observeOnlyUnreads(database), unreadsAndMentions: currentTeamId.pipe( switchMap( (teamId) => observeUnreadsAndMentionsInTeam(database, teamId), diff --git a/app/components/threads_button/threads_button.test.tsx b/app/components/threads_button/threads_button.test.tsx index ebea2b58f..0ea6bb03d 100644 --- a/app/components/threads_button/threads_button.test.tsx +++ b/app/components/threads_button/threads_button.test.tsx @@ -9,8 +9,6 @@ import Threads from './threads_button'; const baseProps = { currentChannelId: 'someChannelId', - groupUnreadsSeparately: true, - onlyUnreads: false, unreadsAndMentions: { unreads: false, mentions: 0, @@ -25,17 +23,6 @@ describe('Thread item in the channel list', () => { expect(toJSON()).toMatchSnapshot(); }); - test('Threads Component should match snapshot with only unreads filter', () => { - const {toJSON} = renderWithIntlAndTheme( - , - ); - - expect(toJSON()).toMatchSnapshot(); - }); - test('Threads Component should match snapshot with onCenterBg', () => { const {toJSON} = renderWithIntlAndTheme( { expect(toJSON()).toMatchSnapshot(); }); - - test('Threads Component should match snapshot, groupUnreadsSeparately false, always show', () => { - const {toJSON} = renderWithIntlAndTheme( - , - ); - - expect(toJSON()).toMatchSnapshot(); - }); }); diff --git a/app/components/threads_button/threads_button.tsx b/app/components/threads_button/threads_button.tsx index 6a150cbae..4bf53b7ff 100644 --- a/app/components/threads_button/threads_button.tsx +++ b/app/components/threads_button/threads_button.tsx @@ -39,9 +39,7 @@ const getStyleSheet = makeStyleSheetFromTheme((theme: Theme) => ({ type Props = { currentChannelId: string; - groupUnreadsSeparately: boolean; onCenterBg?: boolean; - onlyUnreads: boolean; onPress?: () => void; shouldHighlighActive?: boolean; unreadsAndMentions: { @@ -53,9 +51,7 @@ type Props = { const ThreadsButton = ({ currentChannelId, - groupUnreadsSeparately, onCenterBg, - onlyUnreads, onPress, unreadsAndMentions, shouldHighlighActive = false, @@ -113,10 +109,6 @@ const ThreadsButton = ({ return [container, icon, text, badge]; }, [customStyles, isActive, onCenterBg, styles, unreads, isOnHome]); - if (groupUnreadsSeparately && (onlyUnreads && !isActive && !unreads && !mentions)) { - return null; - } - return ( { - if (onlyUnreads && !unreadsOnTop) { + if (showOnlyUnreadsCategory) { return ['UNREADS' as const]; } + const orderedCategories = [...categories]; orderedCategories.sort((a, b) => a.sortOrder - b.sortOrder); + if (unreadsOnTop) { return ['UNREADS' as const, ...orderedCategories]; } return orderedCategories; - }, [categories, onlyUnreads, unreadsOnTop]); + }, [categories, unreadsOnTop, showOnlyUnreadsCategory]); const [initiaLoad, setInitialLoad] = useState(!categoriesToShow.length); @@ -74,7 +78,7 @@ const Categories = ({ currentTeamId={teamId} isTablet={isTablet} onChannelSwitch={onChannelSwitch} - onlyUnreads={onlyUnreads} + onlyUnreads={showOnlyUnreadsCategory} /> ); } @@ -89,7 +93,7 @@ const Categories = ({ /> ); - }, [teamId, intl.locale, isTablet, onChannelSwitch, onlyUnreads]); + }, [teamId, intl.locale, isTablet, onChannelSwitch, showOnlyUnreadsCategory]); useEffect(() => { const t = setTimeout(() => { @@ -105,17 +109,17 @@ const Categories = ({ return ( <> - {!switchingTeam && !initiaLoad && onlyUnreads && + {!switchingTeam && !initiaLoad && showOnlyUnreadsCategory && } - {!switchingTeam && !initiaLoad && !onlyUnreads && ( + {!switchingTeam && !initiaLoad && !showOnlyUnreadsCategory && (