diff --git a/lib/reducers/master-reducer.js b/lib/reducers/master-reducer.js --- a/lib/reducers/master-reducer.js +++ b/lib/reducers/master-reducer.js @@ -19,6 +19,7 @@ import policiesReducer from './policies-reducer.js'; import reduceReportStore from './report-store-reducer.js'; import reduceServicesAccessToken from './services-access-token-reducer.js'; +import reduceGlobalThemeInfo from './theme-reducer.js'; import { reduceThreadActivity } from './thread-activity-reducer.js'; import { reduceThreadInfos } from './thread-reducer.js'; import { reduceCurrentUserInfo, reduceUserInfos } from './user-reducer.js'; @@ -163,6 +164,7 @@ threadStore.threadInfos, threadStoreOperations, ), + globalThemeInfo: reduceGlobalThemeInfo(state.globalThemeInfo, action), }, storeOperations: { draftStoreOperations, diff --git a/native/redux/theme-reducer.js b/lib/reducers/theme-reducer.js rename from native/redux/theme-reducer.js rename to lib/reducers/theme-reducer.js --- a/native/redux/theme-reducer.js +++ b/lib/reducers/theme-reducer.js @@ -1,24 +1,23 @@ // @flow -import { siweAuthActionTypes } from 'lib/actions/siwe-actions.js'; -import { updateThemeInfoActionType } from 'lib/actions/theme-actions.js'; +import { siweAuthActionTypes } from '../actions/siwe-actions.js'; +import { updateThemeInfoActionType } from '../actions/theme-actions.js'; import { logOutActionTypes, deleteAccountActionTypes, logInActionTypes, registerActionTypes, -} from 'lib/actions/user-actions.js'; +} from '../actions/user-actions.js'; +import type { BaseAction } from '../types/redux-types.js'; import { defaultGlobalThemeInfo, type GlobalThemeInfo, -} from 'lib/types/theme-types.js'; -import { setNewSessionActionType } from 'lib/utils/action-utils.js'; - -import type { Action } from './action-types.js'; +} from '../types/theme-types.js'; +import { setNewSessionActionType } from '../utils/action-utils.js'; export default function reduceGlobalThemeInfo( state: GlobalThemeInfo, - action: Action, + action: BaseAction, ): GlobalThemeInfo { if ( action.type === logInActionTypes.success || diff --git a/lib/types/redux-types.js b/lib/types/redux-types.js --- a/lib/types/redux-types.js +++ b/lib/types/redux-types.js @@ -142,6 +142,7 @@ +keyserverStore: KeyserverStore, +threadActivityStore: ThreadActivityStore, +integrityStore: IntegrityStore, + +globalThemeInfo: GlobalThemeInfo, ... }; diff --git a/native/redux/redux-setup.js b/native/redux/redux-setup.js --- a/native/redux/redux-setup.js +++ b/native/redux/redux-setup.js @@ -7,7 +7,6 @@ import { setClientDBStoreActionType } from 'lib/actions/client-db-store-actions.js'; import { siweAuthActionTypes } from 'lib/actions/siwe-actions.js'; -import { updateThemeInfoActionType } from 'lib/actions/theme-actions.js'; import { logOutActionTypes, deleteAccountActionTypes, @@ -43,7 +42,6 @@ import { persistConfig, setPersistor } from './persist.js'; import { processDBStoreOperations } from './redux-utils.js'; import type { AppState } from './state-types.js'; -import reduceGlobalThemeInfo from './theme-reducer.js'; import { getGlobalNavContext } from '../navigation/icky-global.js'; import { activeMessageListSelector } from '../navigation/nav-selectors.js'; import reactotron from '../reactotron.js'; @@ -143,11 +141,6 @@ return state; } - state = { - ...state, - globalThemeInfo: reduceGlobalThemeInfo(state.globalThemeInfo, action), - }; - if (action.type === setCustomServer) { return { ...state, @@ -166,9 +159,6 @@ ...state, connectivity: action.payload, }; - } else if (action.type === updateThemeInfoActionType) { - // Handled above by reduceGlobalThemeInfo - return state; } else if (action.type === updateDeviceCameraInfoActionType) { return { ...state, diff --git a/web/redux/default-state.js b/web/redux/default-state.js --- a/web/redux/default-state.js +++ b/web/redux/default-state.js @@ -3,6 +3,7 @@ import { defaultEnabledApps } from 'lib/types/enabled-apps.js'; import { defaultCalendarFilters } from 'lib/types/filter-types.js'; import { defaultConnectionInfo } from 'lib/types/socket-types.js'; +import { defaultGlobalThemeInfo } from 'lib/types/theme-types.js'; import { isDev } from 'lib/utils/dev-utils.js'; import { defaultNotifPermissionAlertInfo } from 'lib/utils/push-alerts.js'; import { ashoatKeyserverID } from 'lib/utils/validation-utils.js'; @@ -90,6 +91,7 @@ threadActivityStore: {}, initialStateLoaded: false, integrityStore: { threadHashes: {}, threadHashingStatus: 'starting' }, + globalThemeInfo: defaultGlobalThemeInfo, }); export { defaultWebState }; diff --git a/web/redux/redux-setup.js b/web/redux/redux-setup.js --- a/web/redux/redux-setup.js +++ b/web/redux/redux-setup.js @@ -31,6 +31,7 @@ import type { UserPolicies } from 'lib/types/policy-types.js'; import type { BaseAction } from 'lib/types/redux-types.js'; import type { ReportStore } from 'lib/types/report-types.js'; +import type { GlobalThemeInfo } from 'lib/types/theme-types.js'; import type { ThreadActivityStore } from 'lib/types/thread-activity-types'; import type { ThreadStore } from 'lib/types/thread-types.js'; import type { CurrentUserInfo, UserStore } from 'lib/types/user-types.js'; @@ -102,6 +103,7 @@ +threadActivityStore: ThreadActivityStore, +initialStateLoaded: boolean, +integrityStore: IntegrityStore, + +globalThemeInfo: GlobalThemeInfo, }; export type Action =