Skip to content

Commit

Permalink
Handle traversal error
Browse files Browse the repository at this point in the history
Summary: Log as console . error so we get a log view and inform the user

Reviewed By: lblasa

Differential Revision: D50450794

fbshipit-source-id: 0eb1877eec4d602d6673dd2815af2692e89b2523
  • Loading branch information
Luke De Feo authored and facebook-github-bot committed Oct 24, 2023
1 parent cd46403 commit 05242b4
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 0 deletions.
8 changes: 8 additions & 0 deletions desktop/plugins/public/ui-debugger/ClientTypes.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ export type Events = {
init: InitEvent;
subtreeUpdate: SubtreeUpdateEvent;
frameScan: FrameScanEvent;
traversalError: TraversalErrorEvent;
perfStats: PerfStatsEvent;
performanceStats: PerformanceStatsEvent;
metadataUpdate: UpdateMetadataEvent;
Expand All @@ -34,6 +35,13 @@ export type FrameScanEvent = {
frameworkEvents?: FrameworkEvent[];
};

export type TraversalErrorEvent = {
nodeName: String;
errorType: String;
errorMessage: String;
stack: String;
};

/**
* @deprecated This event should not be used and soon will
* be removed. FrameScan should be used instead.
Expand Down
3 changes: 3 additions & 0 deletions desktop/plugins/public/ui-debugger/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ import {checkFocusedNodeStillActive} from './plugin/ClientDataUtils';
import {uiActions} from './plugin/uiActions';
import {first} from 'lodash';
import {getNode} from './utils/map';
import {handleTraversalError} from './plugin/traversalError';

export function plugin(client: PluginClient<Events, Methods>) {
const rootId = createState<Id | undefined>(undefined);
Expand Down Expand Up @@ -114,6 +115,8 @@ export function plugin(client: PluginClient<Events, Methods>) {
});
});

handleTraversalError(client);

client.onConnect(() => {
uiState.isConnected.set(true);
console.log('[ui-debugger] connected');
Expand Down
29 changes: 29 additions & 0 deletions desktop/plugins/public/ui-debugger/plugin/traversalError.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @format
*/

import {notification} from 'antd';
import {PluginClient} from 'flipper-plugin';
import {Events, Methods} from '../ClientTypes';

export function handleTraversalError(client: PluginClient<Events, Methods>) {
client.onMessage('traversalError', (event) => {
notification.warn({
key: 'client-traversal-error',
duration: 60,
message: 'Error fetching UI dump',
description: `There was an error UI dump, ${event.errorType} ${event.errorMessage}. We are aware of this and looking into it. Please try again later.`,
});
console.error(
`[ui-debugger] Client error during traversal: `,
event,
client.appName,
client.device.os,
);
});
}

0 comments on commit 05242b4

Please sign in to comment.