Source: NoteManager.js

/**
 * Klasa `NoteManager` służy do zarządzania notatkami.
 */
export class NoteManager {
    /**
     * Konstruktor inicjuje pustą listę notatek.
     */
    constructor() {
        this.notes = [];
    }

    /**
     * Dodaje notatkę do listy i aktualizuje dane w localStorage.
     * @param {object} note - Notatka do dodania.
     */
    addNote(note) {
        this.notes.push(note);
        this.updateLocalStorage();
    }

    /**
     * Pobiera listę notatek.
     * @returns {Array} - Lista notatek.
     */
    getNotes() {
        return this.notes;
    }

    /**
     * Ładuje notatki z localStorage, jeśli są dostępne.
     */
    loadNotes() {
        const notesFromStorage = localStorage.getItem('notes');
        if (notesFromStorage) {
            this.notes = JSON.parse(notesFromStorage);
        }
    }

    /**
     * Aktualizuje dane notatek w localStorage.
     */
    updateLocalStorage() {
        localStorage.setItem('notes', JSON.stringify(this.notes));
    }

    /**
     * Usuwa notatkę z listy na podstawie indeksu i aktualizuje dane w localStorage.
     * @param {number} index - Indeks notatki do usunięcia.
     */
    removeNote(index) {
        this.notes.splice(index, 1);
        this.updateLocalStorage();
    }

    // Możliwa rozbudowa o dodatkowe funkcje notesu...
}