- Introduced a new KanbanGridLayout component for improved task organization and layout management. - Updated KanbanBoard to utilize the new grid layout, enhancing the visual structure of tasks. - Added CSS styles for grid layout and resizing handles to improve user interaction. - Refactored KanbanColumn to support additional customization options for headers and body styles. - Enhanced persistence flows to rely on repository abstractions, promoting better separation of concerns in storage management. - Updated package dependencies to include react-grid-layout and react-resizable for enhanced layout capabilities.
29 lines
792 B
TypeScript
29 lines
792 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 { initializeNotificationListeners } from './store';
|
|
|
|
declare global {
|
|
interface Window {
|
|
__claudeTeamsUiDidInit?: boolean;
|
|
}
|
|
}
|
|
|
|
// 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>
|
|
);
|