From c8cd549ca8ec0f35ef791d6b59aafa6f3afc9aac Mon Sep 17 00:00:00 2001 From: Corban-Lee Jones Date: Wed, 2 Oct 2024 23:34:51 +0100 Subject: [PATCH] store loaded channels --- apps/home/static/home/js/servers.js | 37 ++++++++++++++++++++++------- 1 file changed, 29 insertions(+), 8 deletions(-) diff --git a/apps/home/static/home/js/servers.js b/apps/home/static/home/js/servers.js index 93e2452..32dd478 100644 --- a/apps/home/static/home/js/servers.js +++ b/apps/home/static/home/js/servers.js @@ -1,5 +1,5 @@ -// #region Loaded Servers +// region Loaded Servers var _loadedServers = [] var selectedServer = null; @@ -46,9 +46,32 @@ function removeFromLoadedServers(id) { } } -// #endregion -// #region UI Buttons +// region Loaded Channels + +var _loadedChannels = {}; +function loadedChannels(serverId) { + if (!(serverId in _loadedChannels)) { + throw new Error(`channels not loaded for server: ${serverId}`); + } + + return _loadedChannels[serverId] +} + +$(document).on("selectedServerChange", async function() { + serverId = selectedServer.id; // take note incase 'selectedServer' changes + + ajaxRequest(`/generate-channels?guild=${serverId}`, "GET") + .then(channels => { + _loadedChannels[serverId] = channels; + }) + .catch(error => { + logError(error); + }); +}); + + +// region UI Buttons function createSelectButton(serverData) { // server details @@ -138,18 +161,16 @@ function resolveServerStrings() { &disable_guild_select=true`); } -// #endregion -// #region Change Listener +// region Change Listener -$(document).on("selectedServerChange", function() { +$(document).on("selectedServerChange", async function() { resolveServerStrings(); $("#serverJoinAlert").hide(); }); -// #endregion -// #region Load Servers +// region Load Servers async function loadServers() {