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() {