60 lines
2.3 KiB
JavaScript
60 lines
2.3 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.initSelectionView = initSelectionView;
|
|
const api_js_1 = require("../services/api.js");
|
|
const store_js_1 = require("../state/store.js");
|
|
const toast_js_1 = require("../ui/toast.js");
|
|
async function initSelectionView() {
|
|
const cfg = (0, store_js_1.getConfig)();
|
|
const grid = document.getElementById('guildGrid');
|
|
const logoutBtn = document.getElementById('logoutBtn');
|
|
const userInfo = document.getElementById('userInfo');
|
|
if (logoutBtn && cfg) {
|
|
logoutBtn.addEventListener('click', () => {
|
|
window.location.href = `${cfg.baseAuth}/logout`;
|
|
});
|
|
}
|
|
try {
|
|
const me = await api_js_1.api.me();
|
|
if (userInfo && me?.user)
|
|
userInfo.textContent = `${me.user.username}#${me.user.discriminator}`;
|
|
}
|
|
catch {
|
|
// ignore
|
|
}
|
|
if (!grid || !cfg)
|
|
return;
|
|
grid.innerHTML = '<div class="muted">Lade Guilds...</div>';
|
|
try {
|
|
const data = await api_js_1.api.guilds();
|
|
grid.innerHTML = '';
|
|
(data.guilds || []).forEach((g) => {
|
|
const card = document.createElement('div');
|
|
card.className = 'card clickable';
|
|
card.innerHTML = `
|
|
<div class="row">
|
|
<img src="${g.icon ? `https://cdn.discordapp.com/icons/${g.id}/${g.icon}.png` : 'https://cdn.discordapp.com/embed/avatars/0.png'}" alt="icon" style="width:42px;height:42px;border-radius:12px;object-fit:cover;"/>
|
|
<div>
|
|
<div style="font-weight:700;">${g.name}</div>
|
|
<div class="muted">ID: ${g.id}</div>
|
|
</div>
|
|
</div>
|
|
<div style="margin-top:10px;" class="pill">Zum Dashboard</div>
|
|
`;
|
|
card.addEventListener('click', () => {
|
|
const qs = g.id ? `?guildId=${encodeURIComponent(g.id)}` : '';
|
|
window.location.href = `${cfg.baseDashboard}${qs}`;
|
|
});
|
|
grid.appendChild(card);
|
|
});
|
|
if (!data.guilds?.length) {
|
|
grid.innerHTML = '<div class="empty-state">Bot ist in keiner Guild. Bitte Bot einladen.</div>';
|
|
}
|
|
}
|
|
catch (err) {
|
|
console.error(err);
|
|
grid.innerHTML = '<div class="empty-state">Fehler beim Laden der Guilds</div>';
|
|
(0, toast_js_1.showToast)('Guilds konnten nicht geladen werden', true);
|
|
}
|
|
}
|