fix(ui): restore dynamic middleware

This commit is contained in:
psychedelicious 2023-09-28 23:09:29 +10:00 committed by Kent Keirsey
parent 591b601fd3
commit da4aab9233
2 changed files with 16 additions and 0 deletions

View File

@ -22,6 +22,7 @@ import Loading from '../../common/components/Loading/Loading';
import AppDndContext from '../../features/dnd/components/AppDndContext';
import '../../i18n';
import { $socketOptions } from '../hooks/useSocketIO';
import { addMiddleware, resetMiddlewares } from 'redux-dynamic-middlewares';
const App = lazy(() => import('./App'));
const ThemeLocaleProvider = lazy(() => import('./ThemeLocaleProvider'));
@ -77,6 +78,19 @@ const InvokeAIUI = ({
$queueId.set(queueId);
}
// reset dynamically added middlewares
resetMiddlewares();
// TODO: at this point, after resetting the middleware, we really ought to clean up the socket
// stuff by calling `dispatch(socketReset())`. but we cannot dispatch from here as we are
// outside the provider. it's not needed until there is the possibility that we will change
// the `apiUrl`/`token` dynamically.
// rebuild socket middleware with token and apiUrl
if (middleware && middleware.length > 0) {
addMiddleware(...middleware);
}
return () => {
// Reset the API client token and base url on unmount
$baseUrl.set(undefined);

View File

@ -22,6 +22,7 @@ import configReducer from 'features/system/store/configSlice';
import systemReducer from 'features/system/store/systemSlice';
import hotkeysReducer from 'features/ui/store/hotkeysSlice';
import uiReducer from 'features/ui/store/uiSlice';
import dynamicMiddlewares from 'redux-dynamic-middlewares';
import { rememberEnhancer, rememberReducer } from 'redux-remember';
import { api } from 'services/api';
import { LOCALSTORAGE_PREFIX } from './constants';
@ -93,6 +94,7 @@ export const store = configureStore({
immutableCheck: false,
})
.concat(api.middleware)
.concat(dynamicMiddlewares)
.prepend(listenerMiddleware.middleware),
devTools: {
actionSanitizer,