- Integrate @sentry/electron and @sentry/react for crash reporting - Add Sentry Vite plugin for source maps - Add error tracking to main process, renderer, and IPC layer - Exclude source maps from packaged builds - Update README with new screenshots - Add Sentry opt-out toggle in settings - Update release workflow with Sentry config
33 lines
914 B
TypeScript
33 lines
914 B
TypeScript
import './index.css';
|
|
import 'react-grid-layout/css/styles.css';
|
|
import 'react-resizable/css/styles.css';
|
|
|
|
import React from 'react';
|
|
import ReactDOM from 'react-dom/client';
|
|
|
|
import { App } from './App';
|
|
import { initSentryRenderer } from './sentry';
|
|
import { initializeNotificationListeners } from './store';
|
|
|
|
declare global {
|
|
interface Window {
|
|
__claudeTeamsUiDidInit?: boolean;
|
|
}
|
|
}
|
|
|
|
// Sentry must be initialised before React renders.
|
|
initSentryRenderer();
|
|
|
|
// React 18 StrictMode intentionally mounts/unmounts effects twice in dev,
|
|
// which can start duplicate IPC init chains. Make initialization a one-time
|
|
// module-level side effect guarded by a global flag.
|
|
if (!window.__claudeTeamsUiDidInit) {
|
|
window.__claudeTeamsUiDidInit = true;
|
|
initializeNotificationListeners();
|
|
}
|
|
|
|
ReactDOM.createRoot(document.getElementById('root')!).render(
|
|
<React.StrictMode>
|
|
<App />
|
|
</React.StrictMode>
|
|
);
|