import { getEvent, getMyAccount, unhideElementById } from './generalUseHelpers.js'; var isAscending: boolean = false; function toggleListSortOrder(org_id: number) { isAscending = !isAscending; loadEvents(org_id); } async function getEvents(titleOrDescription?: string) { var res: Response; if (titleOrDescription == null) { res = await fetch("/api/events" + (isAscending ? "?sort=asc" : "")); if (!res.ok) throw new Error("Błąd pobierania wydarzeń"); } else { const payload = { titleOrDescription }; res = await fetch('/api/events/search', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(payload) }); if (!res.ok) throw new Error("Błąd wyszukiwania wydarzeń"); } const events = await res.json(); return events; } async function loadEvents(org_id: number, evs?: Promise) { const container = document.getElementById("eventList"); if (!container) return; var events: any; try { if (evs == null) { events = await getEvents(); } else { events = await evs; } if (events.length === 0) { container.innerHTML = "

Brak wydarzeń do wyświetlenia.

"; return; } // Wyczyść kontener przed dodaniem nowych container.innerHTML = ''; for (const ev of events) { const card = document.createElement("div"); card.className = "event-card filled"; //card.innerHTML = ` // ${ev.title}` // Do odkomentowania kiedy widok podglądu wydarzeń będzie gotowy card.innerHTML = ` ${ev.title}

${ev.organisation}

` if (org_id == ev.organisationId) { card.innerHTML += `
`; } container.appendChild(card); } } catch (err) { container.innerHTML = `

Błąd ładowania danych.

`; console.error(err); } } document.addEventListener("DOMContentLoaded", async () => { var org_id: number = -1; try { var user = await getMyAccount(); if (user) { if (user.isOrganisation) { unhideElementById(document, "mainContainer"); unhideElementById(document, "addnewevent-btn"); org_id = user.organisationId; } unhideElementById(document, "logout-btn"); } } catch { // console.log("User not signed in. Failing gracefully."); unhideElementById(document, "joinnow-btn"); unhideElementById(document, "signin-btn"); } loadEvents(org_id); // listen for clicks const listSortToggleButton = document.getElementById("list-sort-btn"); if (listSortToggleButton) { listSortToggleButton.addEventListener("click", () => toggleListSortOrder(org_id)); } // and for enter in search bar const searchBar = document.getElementById('searchbar') as HTMLInputElement; searchBar.addEventListener('keydown', (event) => { if (event.key === 'Enter') { // console.log('Enter key pressed!'); var searchResults = getEvents(searchBar.value); loadEvents(org_id, searchResults); } }) });