import { createSlice } from '@reduxjs/toolkit';

const initialState= {
    isOpen: true,
    isOpenOnDefaultLoad: true,
    savedPreferences: {},
    editedPreferences: []
};

export const scoringSelectionSlice = createSlice({
    name: 'scoringSelection',//scoringSelectionModal
    initialState,
    reducers: {
        setScoringSelectionModal: (state, action) => {
            state.isOpen = action.payload;
            state.isOpenOnDefaultLoad = false;
        },
        setSavedPreferences: (state, action) => {
            state.savedPreferences = action.payload;
            state.editedPreferences = action.payload.selectedTiles;
        },
        setEditPreferences: (state, action) => {
            const preferences = [...state.editedPreferences];
            if(action.payload.add){
                state.editedPreferences = [...new Set([...preferences, action.payload.add])];
            } else {
                const index = preferences.indexOf(action.payload.remove);
                if(index !== -1){
                    preferences.splice(index, 1);
                    state.editedPreferences = [...preferences];
                }
            }
        }
    }
});

export const { setScoringSelectionModal, setSavedPreferences, setEditPreferences } = scoringSelectionSlice.actions;
export default scoringSelectionSlice.reducer;
