import { createStore, applyMiddleware, Middleware } from 'redux';
import { GameState, gameReducer } from './reducers/gameReducer';
import { TypedUseSelectorHook, useSelector as useReduxSelector } from 'react-redux';
import { composeWithDevTools } from 'redux-devtools-extension';

export const createCustomStore = (middlewares: Middleware[] = []) => {
  return createStore(gameReducer, composeWithDevTools(applyMiddleware(...middlewares)));
};

export const useSelector: TypedUseSelectorHook<GameState> = useReduxSelector;