diff --git a/packages/react-devtools-shared/src/__tests__/profilingUtils-test.js b/packages/react-devtools-shared/src/__tests__/profilingUtils-test.js index 08b840dfe3447..1cda2fed3777a 100644 --- a/packages/react-devtools-shared/src/__tests__/profilingUtils-test.js +++ b/packages/react-devtools-shared/src/__tests__/profilingUtils-test.js @@ -16,7 +16,7 @@ describe('profiling utils', () => { it('should throw if importing older/unsupported data', () => { expect(() => - utils.prepareProfilingDataFrontendFromImport( + utils.prepareProfilingDataFrontendForImport( ({ version: 0, dataForRoots: [], diff --git a/packages/react-devtools-shared/src/__tests__/utils.js b/packages/react-devtools-shared/src/__tests__/utils.js index 78c73b06a695d..c685263fdbe35 100644 --- a/packages/react-devtools-shared/src/__tests__/utils.js +++ b/packages/react-devtools-shared/src/__tests__/utils.js @@ -173,7 +173,7 @@ export function requireTestRenderer(): ReactTestRenderer { export function exportImportHelper(bridge: FrontendBridge, store: Store): void { const { prepareProfilingDataExport, - prepareProfilingDataFrontendFromImport, + prepareProfilingDataFrontendForImport, } = require('react-devtools-shared/src/devtools/views/Profiler/utils'); const {profilerStore} = store; @@ -194,7 +194,7 @@ export function exportImportHelper(bridge: FrontendBridge, store: Store): void { ); const parsedProfilingDataExport = JSON.parse(serializedProfilingDataExport); - const profilingDataFrontendImport = prepareProfilingDataFrontendFromImport( + const profilingDataFrontendImport = prepareProfilingDataFrontendForImport( (parsedProfilingDataExport: any), ); diff --git a/packages/react-devtools-shared/src/devtools/store.js b/packages/react-devtools-shared/src/devtools/store.js index d05b6feedea6c..3d98d0ff154e1 100644 --- a/packages/react-devtools-shared/src/devtools/store.js +++ b/packages/react-devtools-shared/src/devtools/store.js @@ -416,11 +416,6 @@ export default class Store extends EventEmitter<{| } getElementByID(id: number): Element | null { - if ( - this._profilerStore._dataFrontend && - this._profilerStore._dataFrontend.imported === true - ) - return null; const element = this._idToElement.get(id); if (element == null) { console.warn(`No element found with id "${id}"`); diff --git a/packages/react-devtools-shared/src/devtools/views/Profiler/ProfilerContext.js b/packages/react-devtools-shared/src/devtools/views/Profiler/ProfilerContext.js index 1108a6bb64ff0..6c07d0650771e 100644 --- a/packages/react-devtools-shared/src/devtools/views/Profiler/ProfilerContext.js +++ b/packages/react-devtools-shared/src/devtools/views/Profiler/ProfilerContext.js @@ -138,7 +138,11 @@ function ProfilerContextController({children}: Props) { selectFiberName(name); // Sync selection to the Components tab for convenience. - if (id !== null) { + if ( + id !== null && + profilingData !== null && + profilingData.imported === false + ) { const element = store.getElementByID(id); // Keep in mind that profiling data may be from a previous session. @@ -151,7 +155,7 @@ function ProfilerContextController({children}: Props) { } } }, - [dispatch, selectFiberID, selectFiberName, store], + [dispatch, selectFiberID, selectFiberName, store, profilingData], ); const setRootIDAndClearFiber = useCallback( diff --git a/packages/react-devtools-shared/src/devtools/views/Profiler/ProfilingImportExportButtons.js b/packages/react-devtools-shared/src/devtools/views/Profiler/ProfilingImportExportButtons.js index 7b22e7561d924..ba4ba20fe57a5 100644 --- a/packages/react-devtools-shared/src/devtools/views/Profiler/ProfilingImportExportButtons.js +++ b/packages/react-devtools-shared/src/devtools/views/Profiler/ProfilingImportExportButtons.js @@ -16,7 +16,7 @@ import ButtonIcon from '../ButtonIcon'; import {StoreContext} from '../context'; import { prepareProfilingDataExport, - prepareProfilingDataFrontendFromImport, + prepareProfilingDataFrontendForImport, } from './utils'; import {downloadFile} from '../utils'; @@ -80,7 +80,7 @@ export default function ProfilingImportExportButtons() { const profilingDataImport = ((JSON.parse( raw, ): any): ProfilingDataExport); - profilerStore.profilingData = prepareProfilingDataFrontendFromImport( + profilerStore.profilingData = prepareProfilingDataFrontendForImport( profilingDataImport, ); } catch (error) { diff --git a/packages/react-devtools-shared/src/devtools/views/Profiler/utils.js b/packages/react-devtools-shared/src/devtools/views/Profiler/utils.js index acac810ca134e..62fa315958065 100644 --- a/packages/react-devtools-shared/src/devtools/views/Profiler/utils.js +++ b/packages/react-devtools-shared/src/devtools/views/Profiler/utils.js @@ -103,7 +103,7 @@ export function prepareProfilingDataFrontendFromBackendAndStore( } // Converts a Profiling data export into the format required by the Store. -export function prepareProfilingDataFrontendFromImport( +export function prepareProfilingDataFrontendForImport( profilingDataImport: ProfilingDataExport, ): ProfilingDataFrontend { const {version} = profilingDataImport;