mattermost-mobile/app/screens/edit_profile/index.ts
Daniel Espino García 1aa4188f8e
Move config to its own database table (#6744)
* Move config to its own database table

* Address feedback

* Fix test

* Revert minimum version related changes
2022-11-11 21:20:42 +04:00

45 lines
2.3 KiB
TypeScript

// 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 {of as of$, combineLatest} from 'rxjs';
import {switchMap} from 'rxjs/operators';
import {observeConfigBooleanValue} from '@queries/servers/system';
import {observeCurrentUser} from '@queries/servers/user';
import EditProfile from './edit_profile';
import type {WithDatabaseArgs} from '@typings/database/database';
const enhanced = withObservables([], ({database}: WithDatabaseArgs) => {
const ldapFirstNameAttributeSet = observeConfigBooleanValue(database, 'LdapFirstNameAttributeSet');
const ldapLastNameAttributeSet = observeConfigBooleanValue(database, 'LdapLastNameAttributeSet');
const ldapNicknameAttributeSet = observeConfigBooleanValue(database, 'LdapNicknameAttributeSet');
const ldapPositionAttributeSet = observeConfigBooleanValue(database, 'LdapPositionAttributeSet');
const samlFirstNameAttributeSet = observeConfigBooleanValue(database, 'SamlFirstNameAttributeSet');
const samlLastNameAttributeSet = observeConfigBooleanValue(database, 'SamlLastNameAttributeSet');
const samlNicknameAttributeSet = observeConfigBooleanValue(database, 'SamlNicknameAttributeSet');
const samlPositionAttributeSet = observeConfigBooleanValue(database, 'SamlPositionAttributeSet');
return {
currentUser: observeCurrentUser(database),
lockedFirstName: combineLatest([ldapFirstNameAttributeSet, samlFirstNameAttributeSet]).pipe(
switchMap(([ldap, saml]) => of$(ldap || saml)),
),
lockedLastName: combineLatest([ldapLastNameAttributeSet, samlLastNameAttributeSet]).pipe(
switchMap(([ldap, saml]) => of$(ldap || saml)),
),
lockedNickname: combineLatest([ldapNicknameAttributeSet, samlNicknameAttributeSet]).pipe(
switchMap(([ldap, saml]) => of$(ldap || saml)),
),
lockedPosition: combineLatest([ldapPositionAttributeSet, samlPositionAttributeSet]).pipe(
switchMap(([ldap, saml]) => of$(ldap || saml)),
),
lockedPicture: observeConfigBooleanValue(database, 'LdapPictureAttributeSet'),
};
});
export default withDatabase(enhanced(EditProfile));