var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; import { getMyAccount, unhideElementById } from './generalUseHelpers.js'; // messages.ts function getMyMessages() { return __awaiter(this, void 0, void 0, function* () { const res = yield fetch('/api/messages/my', { method: 'GET', headers: { 'Content-Type': 'application/json' } }); if (!res.ok) throw new Error('Failed to load messages'); return yield res.json(); }); } function formatDate(dateStr) { const date = new Date(dateStr); return date.toLocaleString(undefined, { year: 'numeric', month: 'short', day: 'numeric', hour: '2-digit', minute: '2-digit' }); } function createMessageCard(msg) { var _a; const card = document.createElement('div'); card.className = 'messages-card'; const sender = msg.isMsgFromVolunteer ? `Volunteer #${msg.volunteerId}` : `Organization #${msg.organizationId}`; // Safely inject content as HTML because it contains links const contentHtml = (_a = msg.content) !== null && _a !== void 0 ? _a : ''; card.innerHTML = `
Regarding Event #${msg.eventType} `; return card; } function deleteMessage(messageId) { return __awaiter(this, void 0, void 0, function* () { if (!confirm('Are you sure you want to delete this message?')) return; const res = yield fetch(`/api/messages/${messageId}`, { method: 'DELETE', headers: { 'Content-Type': 'application/json' } }); if (!res.ok) { alert('Failed to delete message.'); return; } // Reload messages after delete loadMessages(); }); } function loadMessages() { return __awaiter(this, void 0, void 0, function* () { const container = document.getElementById('messagesContainer'); if (!container) return; try { const messages = yield getMyMessages(); container.innerHTML = ''; if (messages.length === 0) { container.innerHTML = ``; return; } messages.forEach((msg) => { const card = createMessageCard(msg); container.appendChild(card); }); // Attach delete handlers container.querySelectorAll('.delete-btn').forEach(btn => { btn.addEventListener('click', () => { const idStr = btn.getAttribute('data-id'); if (idStr) deleteMessage(parseInt(idStr)); }); }); } catch (err) { container.innerHTML = ``; console.error(err); } }); } document.addEventListener('DOMContentLoaded', () => __awaiter(void 0, void 0, void 0, function* () { try { var user = yield getMyAccount(); if (user) { unhideElementById(document, "logout-btn"); } } catch (_a) { unhideElementById(document, "joinnow-btn"); unhideElementById(document, "signin-btn"); } loadMessages(); }));