import {DODAJ_TALIE, DODAJ_KARTE, ZALADUJ_DANE} from "../akcje/typy";
import {zapisTalii} from "../magazyn/talie";

function talieZNowymiKartami(stareTalia, karta) {
    let nowyStan = stareTalia.map(talia => {
        if (talia.id === karta.idTalii) {
            talia.dodajKarte(karta);
            return talia;
        } else {
            return talia;
        }
    });
    zapiszTalie(nowyStan);
    return nowyStan;
}

function zapiszTalie(state) {
    zapisTalii(state);
    return state;
}

const reduktor = (stan = [], akcja) => {
    switch (akcja.type) {
        case ZALADUJ_DANE:
            return akcja.dane;
        case DODAJ_TALIE:
            let nowyStan = stan.concat(akcja.dane);
            zapiszTalie(nowyStan);
            return nowyStan;
        case DODAJ_KARTE:
            return talieZNowymiKartami(stan, akcja.dane);
    }
    return stan;
};

export default reduktor;
