Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions app/lib/methods/getSettings.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import { InteractionManager } from 'react-native';
import { sanitizedRaw } from '@nozbe/watermelondb/RawRecord';
import { Q } from '@nozbe/watermelondb';

import RocketChat from '../rocketchat';
import reduxStore from '../createStore';
import * as actions from '../../actions';
import settings from '../../constants/settings';
Expand Down Expand Up @@ -51,6 +52,20 @@ const serverInfoUpdate = async(serverInfo, iconSetting) => {
});
};

export async function setSettings() {
const db = database.active;
const settingsCollection = db.collections.get('settings');
const settingsRecords = await settingsCollection.query().fetch();
const parsed = Object.values(settingsRecords).map(item => ({
_id: item.id,
valueAsString: item.valueAsString,
valueAsBoolean: item.valueAsBoolean,
valueAsNumber: item.valueAsNumber,
_updatedAt: item._updatedAt
}));
reduxStore.dispatch(actions.setAllSettings(RocketChat.parseSettings(parsed.slice(0, parsed.length))));
}

export default async function() {
try {
const db = database.active;
Expand Down
3 changes: 2 additions & 1 deletion app/lib/rocketchat.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ import subscribeRoom from './methods/subscriptions/room';

import protectedFunction from './methods/helpers/protectedFunction';
import readMessages from './methods/readMessages';
import getSettings from './methods/getSettings';
import getSettings, { setSettings } from './methods/getSettings';

import getRooms from './methods/getRooms';
import getPermissions from './methods/getPermissions';
Expand Down Expand Up @@ -532,6 +532,7 @@ const RocketChat = {
cancelUpload,
isUploadActive,
getSettings,
setSettings,
getPermissions,
getCustomEmojis,
setCustomEmojis,
Expand Down
17 changes: 4 additions & 13 deletions app/sagas/selectServer.js
Original file line number Diff line number Diff line change
Expand Up @@ -90,19 +90,10 @@ const handleSelectServer = function* handleSelectServer({ server, version, fetch
yield put(actions.appStart('outside'));
}

const db = database.active;
const serversCollection = db.collections.get('settings');
const settingsRecords = yield serversCollection.query().fetch();
const settings = Object.values(settingsRecords).map(item => ({
_id: item.id,
valueAsString: item.valueAsString,
valueAsBoolean: item.valueAsBoolean,
valueAsNumber: item.valueAsNumber,
_updatedAt: item._updatedAt
}));
yield put(actions.setAllSettings(RocketChat.parseSettings(settings.slice(0, settings.length))));

yield RocketChat.setCustomEmojis();
// We can't use yield here because fetch of Settings & Custom Emojis is slower
// and block the selectServerSuccess raising multiples errors
RocketChat.setSettings();
RocketChat.setCustomEmojis();

let serverInfo;
if (fetchVersion) {
Expand Down