export function getSelectionInfo()

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,
  };
}