in desktop/flipper-ui-core/src/utils/info.tsx [116:152]
export function getSelectionInfo({
plugins: {clientPlugins, devicePlugins, loadedPlugins},
connections: {
selectedAppId,
selectedPlugin,
enabledDevicePlugins,
enabledPlugins,
selectedDevice,
},
}: State): SelectionInfo {
const clientIdParts = selectedAppId
? deconstructClientId(selectedAppId)
: null;
const loadedPlugin = selectedPlugin
? loadedPlugins.get(selectedPlugin)
: null;
const pluginEnabled =
!!selectedPlugin &&
((enabledDevicePlugins.has(selectedPlugin) &&
devicePlugins.has(selectedPlugin)) ||
(clientIdParts &&
enabledPlugins[clientIdParts.app]?.includes(selectedPlugin) &&
clientPlugins.has(selectedPlugin)));
return {
plugin: selectedPlugin || null,
pluginName: loadedPlugin?.name || null,
pluginVersion: loadedPlugin?.version || null,
pluginEnabled,
app: clientIdParts?.app || null,
device: selectedDevice?.title || null,
deviceName: clientIdParts?.device || null,
deviceSerial: selectedDevice?.serial || null,
deviceType: selectedDevice?.deviceType || null,
os: selectedDevice?.os || null,
archived: selectedDevice?.isArchived || false,
};
}