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 { getEvent, getMyAccount, unhideElementById } from './generalUseHelpers.js';
const queryString = window.location.search;
const urlParams = new URLSearchParams(queryString);
const eventId = urlParams.get('event');
function modifyEvent() {
    return __awaiter(this, void 0, void 0, function* () {
        // Pobieranie danych z formularza
        const title = document.getElementById('title').value;
        const location = document.getElementById('location').value;
        const description = document.getElementById('description').value;
        const eventDateRaw = document.getElementById('eventDate').value;
        // Walidacja prostych pól
        if (!title || !location || !eventDateRaw) {
            alert("Please fill out all of the required fields!");
            return;
        }
        const eventDate = new Date(eventDateRaw).toISOString();
        const payload = {
            title,
            location,
            description,
            eventDate,
        };
        try {
            const response = yield fetch('/api/events/' + eventId, {
                method: 'PUT',
                headers: { 'Content-Type': 'application/json' },
                body: JSON.stringify(payload)
            });
            if (!response.ok) {
                const errorText = yield response.text();
                throw new Error(errorText);
            }
            alert("Wydarzenie zmodyfikowane!");
            window.location.href = "/"; // Przekierowanie do strony głównej
        }
        catch (error) {
            console.error("Błąd podczas modyfikowania:", error);
            alert("Nie udało się zmodyfikować wydarzenia: " + error);
        }
    });
}
document.addEventListener("DOMContentLoaded", () => __awaiter(void 0, void 0, void 0, function* () {
    var container = document.getElementById("mainContainer");
    const saveBtn = document.getElementById("saveBtn");
    try {
        var user = yield getMyAccount();
        if (user) {
            if (user.isOrganisation) {
                unhideElementById(document, "mainContainer");
            }
            unhideElementById(document, "logout-btn");
        }
    }
    catch (_a) {
        unhideElementById(document, "joinnow-btn");
        unhideElementById(document, "signin-btn");
    }
    if (saveBtn) {
        saveBtn.addEventListener("click", (e) => {
            e.preventDefault();
            modifyEvent();
        });
    }
    if (eventId !== null && container !== null) {
        try {
            const titleInput = document.getElementById('title');
            const locationInput = document.getElementById('location');
            const descriptionInput = document.getElementById('description');
            const dateInput = document.getElementById('eventDate');
            var ev = yield getEvent(eventId);
            if (ev === null) {
                container.innerHTML = "<p class='text-muted'>Brak wydarzeń do wyświetlenia.</p>";
                return;
            }
            else {
                titleInput.value = ev.title || '';
                locationInput.value = ev.location || '';
                descriptionInput.value = ev.description || '';
                dateInput.value = ev.eventDate.slice(0, 16) || '';
            }
        }
        catch (err) {
            console.log(err);
            container.innerHTML = `<p class="text-danger">` + err + `</p>`;
        }
    }
}));
