Consider ExperimentalGroupUnreadChannels for unreads on top (#7191)

This commit is contained in:
Daniel Espino García 2023-03-09 17:54:28 +01:00 committed by GitHub
parent 66c7a70e49
commit 2e8dfc4120
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -4,13 +4,13 @@
import {withDatabase} from '@nozbe/watermelondb/DatabaseProvider';
import withObservables from '@nozbe/with-observables';
import {of as of$} from 'rxjs';
import {switchMap} from 'rxjs/operators';
import {switchMap, combineLatestWith} from 'rxjs/operators';
import {Preferences} from '@constants';
import {getSidebarPreferenceAsBool} from '@helpers/api/preference';
import {getPreferenceValue} from '@helpers/api/preference';
import {queryCategoriesByTeamIds} from '@queries/servers/categories';
import {querySidebarPreferences} from '@queries/servers/preference';
import {observeCurrentTeamId, observeOnlyUnreads} from '@queries/servers/system';
import {observeConfigBooleanValue, observeCurrentTeamId, observeOnlyUnreads} from '@queries/servers/system';
import Categories from './categories';
@ -23,12 +23,24 @@ const enhanced = withObservables(
const currentTeamId = observeCurrentTeamId(database);
const categories = currentTeamId.pipe(switchMap((ctid) => queryCategoriesByTeamIds(database, [ctid]).observeWithColumns(['sort_order'])));
const unreadsOnTop = querySidebarPreferences(database, Preferences.CHANNEL_SIDEBAR_GROUP_UNREADS).
const unreadsOnTopUserPreference = querySidebarPreferences(database, Preferences.CHANNEL_SIDEBAR_GROUP_UNREADS).
observeWithColumns(['value']).
pipe(
switchMap((prefs: PreferenceModel[]) => of$(getSidebarPreferenceAsBool(prefs, Preferences.CHANNEL_SIDEBAR_GROUP_UNREADS))),
switchMap((prefs: PreferenceModel[]) => of$(getPreferenceValue<string>(prefs, Preferences.CATEGORIES.SIDEBAR_SETTINGS, Preferences.CHANNEL_SIDEBAR_GROUP_UNREADS))),
);
const unreadsOnTopServerPreference = observeConfigBooleanValue(database, 'ExperimentalGroupUnreadChannels');
const unreadsOnTop = unreadsOnTopServerPreference.pipe(
combineLatestWith(unreadsOnTopUserPreference),
switchMap(([s, u]) => {
if (!u) {
return of$(s);
}
return of$(u !== 'false');
}),
);
return {
categories,
onlyUnreads: observeOnlyUnreads(database),