import { createSlice, PayloadAction } from '@reduxjs/toolkit';
import type { RootState } from '../store';

export interface ConfigurationState {
  unitScript?: string;
  theme?: string;
  language?: string;
  customerToken?: string;
}

const initialState: ConfigurationState = {};

const ConfigurationSlice = createSlice({
  name: 'Configuration',
  initialState: initialState,
  reducers: {
    setUnitScript(state, action: PayloadAction<string | undefined>) {
      state.unitScript = action.payload;
    },
    setTheme(state, action: PayloadAction<string | undefined>) {
      state.theme = action.payload;
    },
    setLanguage(state, action: PayloadAction<string | undefined>) {
      state.language = action.payload;
    },
    setCustomerToken(state, action: PayloadAction<string | undefined>) {
      state.customerToken = action.payload;
    }
  },
});

export const { setUnitScript, setLanguage, setTheme, setCustomerToken } = ConfigurationSlice.actions;
export const selectConfiguration = (state: RootState) => state.configuration;
export default ConfigurationSlice.reducer;
