summaryrefslogtreecommitdiffstats
path: root/web/react/utils
diff options
context:
space:
mode:
Diffstat (limited to 'web/react/utils')
-rw-r--r--web/react/utils/async_client.jsx29
-rw-r--r--web/react/utils/client.jsx14
-rw-r--r--web/react/utils/constants.jsx1
3 files changed, 44 insertions, 0 deletions
diff --git a/web/react/utils/async_client.jsx b/web/react/utils/async_client.jsx
index a903f055b..3f084578a 100644
--- a/web/react/utils/async_client.jsx
+++ b/web/react/utils/async_client.jsx
@@ -637,3 +637,32 @@ export function getMyTeam() {
}
);
}
+
+export function getDirectChannels() {
+ if (isCallInProgress('getDirectChannels')) {
+ return;
+ }
+
+ callTracker.getDirectChannels = utils.getTimestamp();
+ client.getPreferencesByName(
+ 'direct_channels',
+ 'show_hide',
+ (data, textStatus, xhr) => {
+ callTracker.getDirectChannels = 0;
+
+ if (xhr.status === 304 || !data) {
+ return;
+ }
+
+ AppDispatcher.handleServerAction({
+ type: ActionTypes.RECIEVED_PREFERENCES,
+ preferences: data
+ });
+ },
+ (err) => {
+ callTracker.getDirectChannels = 0;
+ dispatchError(err, 'getDirectChannels');
+ }
+ );
+}
+
diff --git a/web/react/utils/client.jsx b/web/react/utils/client.jsx
index 6dccfcdeb..f1827f296 100644
--- a/web/react/utils/client.jsx
+++ b/web/react/utils/client.jsx
@@ -1141,3 +1141,17 @@ export function listIncomingHooks(success, error) {
}
});
}
+
+export function getPreferencesByName(category, name, success, error) {
+ $.ajax({
+ url: `/api/v1/preferences/${category}/${name}`,
+ dataType: 'json',
+ type: 'GET',
+ success,
+ error: (xhr, status, err) => {
+ var e = handleError('getPreferencesByName', xhr, status, err);
+ error(e);
+ }
+ });
+}
+
diff --git a/web/react/utils/constants.jsx b/web/react/utils/constants.jsx
index e3cbfccde..56c47a244 100644
--- a/web/react/utils/constants.jsx
+++ b/web/react/utils/constants.jsx
@@ -28,6 +28,7 @@ module.exports = {
RECIEVED_AUDITS: null,
RECIEVED_TEAMS: null,
RECIEVED_STATUSES: null,
+ RECIEVED_PREFERENCES: null,
RECIEVED_MSG: null,