// Refresh token if necessary. function tryAuth(f) { return async (e) => { e.preventDefault(); if (!G_AUTH) return; await tryRefresh(); await f(e); } } // Adds loading classes for UI while awaiting. function doLoading(f) { return async (e) => { if (e.target.hasClass("loading")) return; e.target.addClass(STATES["loading"]); await f(e); e.target.delClass(STATES["loading"]); } }