Summary:
A lot of the errors in our monitoring / logs are mere sign in errors. Many of them are unnecessary as they are features triggered automatically even when the user isn't logged in.
This diff improves error handling and prevents requires from being made / features from being used by introducing a `<RequireLogin>` component that will hide an underlying feature if the user isn't logged in.
This also prevents the support request form from failing after the user has filled in all details.
This also fixes an issue where mobilebuilds plugin didn't refresh after the user did log in.
From our monitoring error 1,9 and 10:
{F350458668}
Reviewed By: jknoxville
Differential Revision: D25494356
fbshipit-source-id: 95701381bb74c27b9ea9658dc4df678e5f0710e0
208 lines
9.5 KiB
TypeScript
208 lines
9.5 KiB
TypeScript
/**
|
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*
|
|
* @format
|
|
*/
|
|
|
|
export {default as styled} from '@emotion/styled';
|
|
export {keyframes} from '@emotion/css';
|
|
export {produce} from 'immer';
|
|
|
|
export * from './ui/index';
|
|
export {getStringFromErrorLike, textContent, sleep} from './utils/index';
|
|
export {serialize, deserialize} from './utils/serialization';
|
|
export * from './utils/jsonTypes';
|
|
export {default as GK} from './fb-stubs/GK';
|
|
export {default as createPaste} from './fb-stubs/createPaste';
|
|
export {
|
|
internGraphGETAPIRequest,
|
|
internGraphPOSTAPIRequest,
|
|
graphQLQuery,
|
|
isLoggedIn,
|
|
} from './fb-stubs/user';
|
|
export {
|
|
FlipperBasePlugin,
|
|
FlipperPlugin,
|
|
FlipperDevicePlugin,
|
|
callClient,
|
|
Notification,
|
|
BaseAction,
|
|
} from './plugin';
|
|
export {PluginClient, Props} from './plugin';
|
|
export {default as Client} from './Client';
|
|
export {MetricType} from './utils/exportMetrics';
|
|
export {reportUsage} from './utils/metrics';
|
|
export {default as promiseTimeout} from './utils/promiseTimeout';
|
|
export {clipboard, remote, OpenDialogOptions} from 'electron';
|
|
export {default as SupportRequestFormV2} from './fb-stubs/SupportRequestFormV2';
|
|
export {default as constants} from './fb-stubs/constants';
|
|
export {connect} from 'react-redux';
|
|
export {selectPlugin, StaticView} from './reducers/connections';
|
|
export {writeBufferToFile, bufferToBlob} from './utils/screenshot';
|
|
export {getPluginKey, getPersistedState} from './utils/pluginUtils';
|
|
export {Idler} from './utils/Idler';
|
|
export {Store, MiddlewareAPI, State as ReduxState} from './reducers/index';
|
|
export {default as BaseDevice} from './devices/BaseDevice';
|
|
export {DeviceLogEntry, LogLevel, DeviceLogListener} from 'flipper-plugin';
|
|
export {shouldParseAndroidLog} from './utils/crashReporterUtility';
|
|
export {default as isProduction} from './utils/isProduction';
|
|
export {createTablePlugin} from './createTablePlugin';
|
|
export {default as DetailSidebar} from './chrome/DetailSidebar';
|
|
export {default as Device} from './devices/BaseDevice';
|
|
export {default as AndroidDevice} from './devices/AndroidDevice';
|
|
export {default as MetroDevice} from './devices/MetroDevice';
|
|
export {default as ArchivedDevice} from './devices/ArchivedDevice';
|
|
export {default as IOSDevice} from './devices/IOSDevice';
|
|
export {default as KaiOSDevice} from './devices/KaiOSDevice';
|
|
export {OS} from './devices/BaseDevice';
|
|
export {default as Button} from './ui/components/Button';
|
|
export {default as ToggleButton} from './ui/components/ToggleSwitch';
|
|
export {default as ButtonNavigationGroup} from './ui/components/ButtonNavigationGroup';
|
|
export {default as ButtonGroup} from './ui/components/ButtonGroup';
|
|
export {default as ButtonGroupChain} from './ui/components/ButtonGroupChain';
|
|
export {colors, darkColors, brandColors} from './ui/components/colors';
|
|
export {default as Glyph} from './ui/components/Glyph';
|
|
export {default as LoadingIndicator} from './ui/components/LoadingIndicator';
|
|
export {default as Popover} from './ui/components/Popover';
|
|
export {
|
|
TableColumns,
|
|
TableRows,
|
|
TableRows_immutable,
|
|
TableBodyColumn,
|
|
TableBodyRow,
|
|
TableHighlightedRows,
|
|
TableRowSortOrder,
|
|
TableColumnOrder,
|
|
TableColumnOrderVal,
|
|
TableColumnSizes,
|
|
} from './ui/components/table/types';
|
|
export {
|
|
default as ManagedTable,
|
|
ManagedTable as ManagedTableClass,
|
|
} from './ui/components/table/ManagedTable';
|
|
export {ManagedTableProps} from './ui/components/table/ManagedTable';
|
|
export {
|
|
default as ManagedTable_immutable,
|
|
ManagedTableProps_immutable,
|
|
} from './ui/components/table/ManagedTable_immutable';
|
|
export {
|
|
Value,
|
|
renderValue,
|
|
valueToNullableString,
|
|
} from './ui/components/table/TypeBasedValueRenderer';
|
|
export {
|
|
DataValueExtractor,
|
|
DataInspectorExpanded,
|
|
} from './ui/components/data-inspector/DataInspector';
|
|
export {default as DataInspector} from './ui/components/data-inspector/DataInspector';
|
|
export {default as ManagedDataInspector} from './ui/components/data-inspector/ManagedDataInspector';
|
|
export {default as SearchableDataInspector} from './ui/components/data-inspector/SearchableDataInspector';
|
|
export {default as DataDescription} from './ui/components/data-inspector/DataDescription';
|
|
export {HighlightManager} from './ui/components/Highlight';
|
|
export {default as Tabs} from './ui/components/Tabs';
|
|
export {default as Tab} from './ui/components/Tab';
|
|
export {default as Input} from './ui/components/Input';
|
|
export {default as Textarea} from './ui/components/Textarea';
|
|
export {default as Select} from './ui/components/Select';
|
|
export {default as Checkbox} from './ui/components/Checkbox';
|
|
export {default as CodeBlock} from './ui/components/CodeBlock';
|
|
export {default as ErrorBlock} from './ui/components/ErrorBlock';
|
|
export {ErrorBlockContainer} from './ui/components/ErrorBlock';
|
|
export {default as ErrorBoundary} from './ui/components/ErrorBoundary';
|
|
export {OrderableOrder} from './ui/components/Orderable';
|
|
export {default as Interactive} from './ui/components/Interactive';
|
|
export {default as Orderable} from './ui/components/Orderable';
|
|
export {default as VirtualList} from './ui/components/VirtualList';
|
|
export {Component, PureComponent} from 'react';
|
|
export {default as ContextMenuProvider} from './ui/components/ContextMenuProvider';
|
|
export {
|
|
default as ContextMenu,
|
|
MenuTemplate,
|
|
} from './ui/components/ContextMenu';
|
|
export {FileListFile, FileListFiles} from './ui/components/FileList';
|
|
export {default as FileList} from './ui/components/FileList';
|
|
export {default as File} from './ui/components/File';
|
|
export {
|
|
DesktopDropdownItem,
|
|
DesktopDropdownSelectedItem,
|
|
DesktopDropdown,
|
|
} from './ui/components/desktop-toolbar';
|
|
export {default as View} from './ui/components/View';
|
|
export {default as ViewWithSize} from './ui/components/ViewWithSize';
|
|
export {default as Block} from './ui/components/Block';
|
|
export {default as FocusableBox} from './ui/components/FocusableBox';
|
|
export {default as Sidebar} from './ui/components/Sidebar';
|
|
export {default as SidebarLabel} from './ui/components/SidebarLabel';
|
|
export {default as Box} from './ui/components/Box';
|
|
export {default as FlexBox} from './ui/components/FlexBox';
|
|
export {default as FlexRow} from './ui/components/FlexRow';
|
|
export {default as FlexColumn} from './ui/components/FlexColumn';
|
|
export {default as FlexCenter} from './ui/components/FlexCenter';
|
|
export {default as Toolbar, Spacer} from './ui/components/Toolbar';
|
|
export {default as ToolbarIcon} from './ui/components/ToolbarIcon';
|
|
export {default as Panel} from './ui/components/Panel';
|
|
export {default as Text} from './ui/components/Text';
|
|
export {default as TextParagraph} from './ui/components/TextParagraph';
|
|
export {default as Link} from './ui/components/Link';
|
|
export {default as PathBreadcrumbs} from './ui/components/PathBreadcrumbs';
|
|
export {default as ModalOverlay} from './ui/components/ModalOverlay';
|
|
export {default as Tooltip} from './ui/components/Tooltip';
|
|
export {default as TooltipProvider} from './ui/components/TooltipProvider';
|
|
export {default as ResizeSensor} from './ui/components/ResizeSensor';
|
|
export {default as StatusIndicator} from './ui/components/StatusIndicator';
|
|
export {default as HorizontalRule} from './ui/components/HorizontalRule';
|
|
export {default as VerticalRule} from './ui/components/VerticalRule';
|
|
export {default as Label} from './ui/components/Label';
|
|
export {default as Heading} from './ui/components/Heading';
|
|
export {Filter} from './ui/components/filter/types';
|
|
export {default as MarkerTimeline} from './ui/components/MarkerTimeline';
|
|
export {default as StackTrace} from './ui/components/StackTrace';
|
|
export {
|
|
SearchBox,
|
|
SearchInput,
|
|
SearchIcon,
|
|
SearchableProps,
|
|
default as Searchable,
|
|
} from './ui/components/searchable/Searchable';
|
|
export {
|
|
default as SearchableTable,
|
|
filterRowsFactory,
|
|
} from './ui/components/searchable/SearchableTable';
|
|
export {default as SearchableTable_immutable} from './ui/components/searchable/SearchableTable_immutable';
|
|
export {
|
|
ElementID,
|
|
ElementData,
|
|
ElementFramework,
|
|
ElementAttribute,
|
|
Element,
|
|
ElementSearchResultSet,
|
|
ElementsInspectorProps,
|
|
} from './ui/components/elements-inspector/ElementsInspector';
|
|
export {
|
|
Elements,
|
|
ElementsConstants,
|
|
} from './ui/components/elements-inspector/elements';
|
|
export {ContextMenuExtension} from './ui/components/elements-inspector/elements';
|
|
export {default as ElementsInspector} from './ui/components/elements-inspector/ElementsInspector';
|
|
export {InspectorSidebar} from './ui/components/elements-inspector/sidebar';
|
|
export {Console} from './ui/components/console';
|
|
export {default as Sheet} from './ui/components/Sheet';
|
|
export {default as FileSelector} from './ui/components/FileSelector';
|
|
export {KeyboardActions} from './MenuBar';
|
|
export {getFlipperMediaCDN, appendAccessTokenToUrl} from './fb-stubs/user';
|
|
export {Rect} from './utils/geometry';
|
|
export {Logger} from './fb-interfaces/Logger';
|
|
export {getInstance as getLogger} from './fb-stubs/Logger';
|
|
export {callVSCode, getVSCodeUrl} from './utils/vscodeUtils';
|
|
export {useLocalStorage} from './utils/useLocalStorage';
|
|
export {checkIdbIsInstalled} from './utils/iOSContainerUtility';
|
|
// Sidebar extensions should be last so they can import anything from here.
|
|
export {default as SidebarExtensions} from './fb-stubs/LayoutInspectorSidebarExtensions';
|
|
export {IDEFileResolver, IDEType} from './fb-stubs/IDEFileResolver';
|
|
export {renderMockFlipperWithPlugin} from './test-utils/createMockFlipperWithPlugin';
|
|
export {Tracked} from 'flipper-plugin'; // To be able to use it in legacy plugins
|
|
export {RequireLogin} from './ui/components/RequireLogin';
|