The MonitoringProvider component has been simplified. The “config” prop, including 'provider' and 'providerToken', has been removed as they are no longer needed. The implementation now directly uses the getMonitoringProvider function and removed the check for 'props.config'. Conditionally rendering the BaselimeProvider component has also been simplified.
40 lines
958 B
TypeScript
40 lines
958 B
TypeScript
'use client';
|
|
|
|
import { lazy } from 'react';
|
|
|
|
import { getMonitoringProvider } from '../get-monitoring-provider';
|
|
import { InstrumentationProvider } from '../monitoring-providers.enum';
|
|
|
|
const BaselimeProvider = lazy(async () => {
|
|
const { BaselimeProvider } = await import('@kit/baselime/provider');
|
|
|
|
return {
|
|
default: BaselimeProvider,
|
|
};
|
|
});
|
|
|
|
const SentryProvider = lazy(async () => {
|
|
const { SentryProvider } = await import('@kit/sentry/provider');
|
|
|
|
return {
|
|
default: SentryProvider,
|
|
};
|
|
});
|
|
|
|
export function MonitoringProvider(props: React.PropsWithChildren) {
|
|
const provider = getMonitoringProvider();
|
|
|
|
switch (provider) {
|
|
case InstrumentationProvider.Baselime:
|
|
return (
|
|
<BaselimeProvider enableWebVitals>{props.children}</BaselimeProvider>
|
|
);
|
|
|
|
case InstrumentationProvider.Sentry:
|
|
return <SentryProvider>{props.children}</SentryProvider>;
|
|
|
|
default:
|
|
return <>{props.children}</>;
|
|
}
|
|
}
|