Files
myeasycms-v2/packages/monitoring/api/src/components/provider.tsx
giancarlo 97378f1369 Simplify MonitoringProvider component
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.
2024-05-01 14:33:32 +07:00

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}</>;
}
}