Skip to content

Commit

Permalink
fix build
Browse files Browse the repository at this point in the history
  • Loading branch information
lucas-zimerman committed Oct 14, 2024
1 parent 3dbcc41 commit 4557f7a
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 16 deletions.
14 changes: 7 additions & 7 deletions src/js/tracing/reactnavigation.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@ import type { Span, Transaction as TransactionType, TransactionContext } from '@
import { logger, timestampInSeconds } from '@sentry/utils';

import type { NewFrameEvent } from '../utils/sentryeventemitter';
import { type SentryEventEmitter, createSentryEventEmitter, NewFrameEventName } from '../utils/sentryeventemitter';
import type { SentryEventEmitterFallback } from '../utils/sentryeventemitterfallback';
import { createSentryFallbackEventEmitter } from '../utils/sentryeventemitterfallback';
import { RN_GLOBAL_OBJ } from '../utils/worldwide';
import { NATIVE } from '../wrapper';
import type { OnConfirmRoute, TransactionCreator } from './routingInstrumentation';
Expand Down Expand Up @@ -77,15 +78,15 @@ export class ReactNavigationInstrumentation extends InternalRoutingInstrumentati
public readonly name: string = ReactNavigationInstrumentation.instrumentationName;

private _navigationContainer: NavigationContainer | null = null;
private _newScreenFrameEventEmitter: SentryEventEmitter | null = null;
private _newScreenFrameEventEmitter: SentryEventEmitterFallback | null = null;
private readonly _maxRecentRouteLen: number = 200;

private _latestRoute?: NavigationRoute;
private _latestTransaction?: TransactionType;
private _navigationProcessingSpan?: Span;

private _initialStateHandled: boolean = false;
private _stateChangeTimeout?: number | undefined;
private _stateChangeTimeout?: ReturnType<typeof setTimeout> | undefined;
private _recentRouteKeys: string[] = [];

private _options: ReactNavigationOptions;
Expand All @@ -99,8 +100,8 @@ export class ReactNavigationInstrumentation extends InternalRoutingInstrumentati
};

if (this._options.enableTimeToInitialDisplay) {
this._newScreenFrameEventEmitter = createSentryEventEmitter();
this._newScreenFrameEventEmitter.initAsync(NewFrameEventName);
this._newScreenFrameEventEmitter = createSentryFallbackEventEmitter();
this._newScreenFrameEventEmitter.initAsync();
NATIVE.initNativeReactNavigationNewFrameTracking().catch((reason: unknown) => {
logger.error(`[ReactNavigationInstrumentation] Failed to initialize native new frame tracking: ${reason}`);
});
Expand Down Expand Up @@ -247,8 +248,7 @@ export class ReactNavigationInstrumentation extends InternalRoutingInstrumentati
});

if (!routeHasBeenSeen && latestTtidSpan) {
this._newScreenFrameEventEmitter?.once(
NewFrameEventName,
this._newScreenFrameEventEmitter?.onceNewFrame(
({ newFrameTimestampInSeconds }: NewFrameEvent) => {
const activeSpan = getActiveSpan();
if (activeSpan && manualInitialDisplaySpans.has(activeSpan)) {
Expand Down
6 changes: 0 additions & 6 deletions src/js/utils/sentryeventemitter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ import type { EmitterSubscription, NativeModule } from 'react-native';
import { NativeEventEmitter } from 'react-native';

import { getRNSentryModule } from '../wrapper';
import { createSentryFallbackEventEmitter } from './sentryeventemitterfallback';

export const NewFrameEventName = 'rn_sentry_new_frame';
export type NewFrameEventName = typeof NewFrameEventName;
Expand Down Expand Up @@ -33,7 +32,6 @@ export function createSentryEventEmitter(
if (!sentryNativeModule) {
return createNoopSentryEventEmitter();
}
const fallbackEventEmitter = createSentryFallbackEventEmitter();

const openNativeListeners = new Map<NewFrameEventName, EmitterSubscription>();
const listenersMap = new Map<NewFrameEventName, Map<(event: NewFrameEvent) => void, true>>();
Expand Down Expand Up @@ -72,8 +70,6 @@ export function createSentryEventEmitter(
openNativeListeners.set(eventType, nativeListener);

listenersMap.set(eventType, new Map());

fallbackEventEmitter.initAsync();
},
closeAllAsync() {
openNativeListeners.forEach(subscription => {
Expand All @@ -85,8 +81,6 @@ export function createSentryEventEmitter(
addListener,
removeListener,
once(eventType: NewFrameEventName, listener: (event: NewFrameEvent) => void) {
fallbackEventEmitter?.onceNewFrame();

const tmpListener = (event: NewFrameEvent): void => {
listener(event);
removeListener(eventType, tmpListener);
Expand Down
8 changes: 5 additions & 3 deletions src/js/utils/sentryeventemitterfallback.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ export function createSentryFallbackEventEmitter(
emitter: SentryEventEmitter = createSentryEventEmitter(),
fallbackTimeoutMs = FALLBACK_TIMEOUT_MS,
): SentryEventEmitterFallback {
let fallbackTimeout: ReturnType<typeof setTimeout> | undefined;
let fallbackTimeout: ReturnType<typeof setTimeout> | undefined;
let animationFrameTimestampSeconds: number | undefined;
let nativeNewFrameTimestampSeconds: number | undefined;

Expand Down Expand Up @@ -63,8 +63,10 @@ export function createSentryFallbackEventEmitter(
nativeNewFrameTimestampSeconds = undefined;

const internalListener = (event: NewFrameEvent): void => {
clearTimeout(fallbackTimeout);
fallbackTimeout = undefined;
if (fallbackTimeout !== undefined) {
clearTimeout(fallbackTimeout);
fallbackTimeout = undefined;
}
animationFrameTimestampSeconds = undefined;
nativeNewFrameTimestampSeconds = undefined;
listener(event);
Expand Down

0 comments on commit 4557f7a

Please sign in to comment.