// resources\assets\ts\DataPage\rootReducer.ts
import { combineReducers } from '@reduxjs/toolkit';
import authReducer from './authorizationSlice';
import clonesReducer from './cloneTaskSlice';
import commentsReducer from '../share/aufgaben-shared/slices/commentsSlice';
import counterFormReducer from './counterFormSlice';
import dataReducer from './dataSlice';
import deleteConfirmationReducer from './deleteConfirmationSlice';
import editTimeDialog from './editTimeDialogSlice';
import emailsReducer from './emailsSlice';
import filterReducer from '../share/aufgaben-shared/slices/filterSlice';
import formReducer from './formSlice';
import historyReducer from './historySlice';
import imageActionsReducer from './imageActionsSlice';
import mainFormReducer from '~t/share/formsSlice';
import measurementFormReducer from './measurementFormSlice';
import moveTaskDateDialog from './moveTaskDateSlice';
import newTaskList from './newTaskListSlice';
import nodeReducer from './nodeSlice';
import picturesReducer from '../share/aufgaben-shared/slices/picturesSlice';
import pointsReducer from '../share/aufgaben-shared/slices/pointsSlice';
import quitTaskConfirmationReducer from './quitTaskConfirmationSlice';
import style from './styleSlice';
import tableReducer from './tableSlice';
import taskNavigatorReducer from './taskNavigatorSlice';
import searchDrawerReducer from './searchDrawerSlice';
import tagsReducer from '../share/aufgaben-shared/slices/tagsSlice'; 
import contactAufgabenReducer from '../ContactsPage/contactAufgabenSlice'; //for rendering datatable in /contacts/getadr/{id} AufgabenNotizenTab
import CMSTaskSelectorReducer from '../ContactsPage/components/CMSTaskSelector/CMSTaskSelectorSlice'; // for new Task dialog AufgabenNotizenTab



const rootReducer = combineReducers({
  auth: authReducer,
  clones: clonesReducer,
  comments: commentsReducer,
  counterForm: counterFormReducer,
  data: dataReducer,
  deleteConfirmation: deleteConfirmationReducer,
  editTimeDialog,
  emails: emailsReducer,
  filter: filterReducer,
  form: formReducer,
  history: historyReducer,
  imageActionsReducer,
  mainForm: mainFormReducer,
  measurementForm: measurementFormReducer,
  moveTaskDateDialog,
  newTaskList,
  node: nodeReducer,
  pictures: picturesReducer,
  points: pointsReducer,
  quitConfirmation: quitTaskConfirmationReducer,
  style,
  table: tableReducer,
  tree: taskNavigatorReducer,
  searchDrawer: searchDrawerReducer,
  tags: tagsReducer,
  contactAufgaben: contactAufgabenReducer, //for rendering datatable in /contacts/getadr/{id} AufgabenNotizenTab
  CMSTaskSelector: CMSTaskSelectorReducer, // for new Task dialog AufgabenNotizenTab
});

export type RootState = ReturnType<typeof rootReducer>;

export default rootReducer;
