Replace all manual pluginKey parsing with a utility
Summary: Ok this diff got a bit bigger than expected, but I think it makes it easier to understand what "plugin keys" are, and makes them less prone to error. Previously pluginKeys were composed of: clientId#pluginName, where clientId was itself: app#os#device#device_id But also, there were some plugin keys where the clientId was a device_id. Now you deconstruct a plugin key, and will get a tagged object with type: 'device' or 'client', and the properties that they each have. There is now no custom parsing of these afaik, let's keep it that way. Since it took me a while to figure out what all these IDs are, I've documented it a bit in clientUtils. Reviewed By: passy Differential Revision: D18811848 fbshipit-source-id: eed2e2b5eedafb9e27900dbcf79a389fcaffae95
This commit is contained in:
committed by
Facebook Github Bot
parent
2a1e939a0b
commit
0bf905e02f
@@ -13,6 +13,7 @@ import {State as PluginStatesState} from '../reducers/pluginStates';
|
||||
import {pluginsClassMap} from './exportData';
|
||||
import {State as PluginsState} from '../reducers/plugins';
|
||||
import {PluginDefinition} from '../dispatcher/plugins';
|
||||
import {deconstructPluginKey} from './clientUtils';
|
||||
|
||||
export function getPluginKey(
|
||||
selectedApp: string | null,
|
||||
@@ -53,13 +54,15 @@ export function getActivePersistentPlugins(
|
||||
string,
|
||||
typeof FlipperDevicePlugin | typeof FlipperPlugin
|
||||
> = pluginsClassMap(plugins);
|
||||
return getPersistentPlugins(plugins).filter(plugin => {
|
||||
const pluginClass = pluginsMap.get(plugin);
|
||||
const keys = Object.keys(pluginsState).map(key => key.split('#').pop());
|
||||
return getPersistentPlugins(plugins).filter(pluginName => {
|
||||
const pluginClass = pluginsMap.get(pluginName);
|
||||
const pluginNames = Object.keys(pluginsState).map(
|
||||
pluginKey => deconstructPluginKey(pluginKey).pluginName,
|
||||
);
|
||||
return (
|
||||
(pluginClass && pluginClass.exportPersistedState != undefined) ||
|
||||
plugin == 'DeviceLogs' ||
|
||||
keys.includes(plugin)
|
||||
pluginName == 'DeviceLogs' ||
|
||||
pluginNames.includes(pluginName)
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user