Move local plugin discovery to dispatcher/redux store

Summary: In order to have update notifications, this must live outside the UI component, but it also gives some additional benefits like better testability of previously effectful UI.

Reviewed By: jknoxville

Differential Revision: D18173166

fbshipit-source-id: 1cacb6c7893423a7920a6620dfb76e631caba101
This commit is contained in:
Pascal Hartig
2019-11-05 05:27:38 -08:00
committed by Facebook Github Bot
parent 42a77094f4
commit 432bb1b00a
6 changed files with 170 additions and 42 deletions

View File

@@ -36,6 +36,10 @@ import settings, {
Settings as SettingsState,
Action as SettingsAction,
} from './settings';
import pluginManager, {
State as PluginManagerState,
Action as PluginManagerAction,
} from './pluginManager';
import user, {State as UserState, Action as UserAction} from './user';
import JsonFileStorage from '../utils/jsonFileReduxPersistStorage';
import os from 'os';
@@ -56,6 +60,7 @@ export type Actions =
| UserAction
| SettingsAction
| SupportFormAction
| PluginManagerAction
| {type: 'INIT'};
export type State = {
@@ -67,6 +72,7 @@ export type State = {
user: UserState & PersistPartial;
settingsState: SettingsState & PersistPartial;
supportForm: SupportFormState;
pluginManager: PluginManagerState;
};
export type Store = ReduxStore<State, Actions>;
@@ -106,6 +112,7 @@ export default combineReducers<State, Actions>({
),
plugins,
supportForm,
pluginManager,
user: persistReducer(
{
key: 'user',