"use client"; import React, { useState, useEffect } from "react"; import { DrawIoEmbed } from "react-drawio"; import ChatPanel from "@/components/chat-panel"; import { useDiagram } from "@/contexts/diagram-context"; import { Monitor } from "lucide-react"; export default function Home() { const { drawioRef, handleDiagramExport } = useDiagram(); const [isMobile, setIsMobile] = useState(false); const [isChatVisible, setIsChatVisible] = useState(true); useEffect(() => { const checkMobile = () => { setIsMobile(window.innerWidth < 768); }; checkMobile(); window.addEventListener("resize", checkMobile); return () => window.removeEventListener("resize", checkMobile); }, []); useEffect(() => { const handleKeyDown = (event: KeyboardEvent) => { if ((event.ctrlKey || event.metaKey) && event.key === 'b') { event.preventDefault(); setIsChatVisible((prev) => !prev); } }; window.addEventListener('keydown', handleKeyDown); return () => window.removeEventListener('keydown', handleKeyDown); }, []); // Show confirmation dialog when user tries to leave the page // This helps prevent accidental navigation from browser back gestures useEffect(() => { const handleBeforeUnload = (event: BeforeUnloadEvent) => { event.preventDefault(); return ''; }; window.addEventListener('beforeunload', handleBeforeUnload); return () => window.removeEventListener('beforeunload', handleBeforeUnload); }, []); return (
This application works best on desktop or laptop devices. Please open it on a larger screen for the full experience.