Instantiate YjsDocument and assign to yjsDocRef

This commit is contained in:
2026-06-22 21:10:36 +00:00
parent f0aec3a804
commit d3aa8483cb
+16 -2
View File
@@ -1,4 +1,4 @@
import React, { useState, useRef } from 'react'; import React, { useState, useRef, useEffect } from 'react';
import './App.css'; import './App.css';
import './styles/theme.css'; import './styles/theme.css';
import { ThemeProvider, useTheme } from './contexts/ThemeContext'; import { ThemeProvider, useTheme } from './contexts/ThemeContext';
@@ -7,12 +7,26 @@ import SidePanel from './components/SidePanel';
import CommandLine from './components/CommandLine'; import CommandLine from './components/CommandLine';
import StatusBar from './components/StatusBar'; import StatusBar from './components/StatusBar';
import CanvasArea from './components/CanvasArea'; import CanvasArea from './components/CanvasArea';
import { YjsDocument } from './crdt/YjsDocument';
function AppContent() { function AppContent() {
const { theme, toggleTheme } = useTheme(); const { theme, toggleTheme } = useTheme();
const [activeRibbonTab, setActiveRibbonTab] = useState('draw'); const [activeRibbonTab, setActiveRibbonTab] = useState('draw');
const canvasRef = useRef(null); const canvasRef = useRef(null);
const yjsDocRef = useRef(null); const yjsDocRef = useRef<YjsDocument | null>(null);
useEffect(() => {
// Instantiate YjsDocument and assign to ref
yjsDocRef.current = new YjsDocument();
// Cleanup function to destroy the document when component unmounts
return () => {
if (yjsDocRef.current) {
yjsDocRef.current.destroy();
yjsDocRef.current = null;
}
};
}, []);
const handleRibbonTabChange = (tab: string) => { const handleRibbonTabChange = (tab: string) => {
setActiveRibbonTab(tab); setActiveRibbonTab(tab);