Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 25 additions & 3 deletions app/[lang]/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,13 @@ const drawioBaseUrl =
process.env.NEXT_PUBLIC_DRAWIO_BASE_URL || "https://embed.diagrams.net"

export default function Home() {
const { drawioRef, handleDiagramExport, onDrawioLoad, resetDrawioReady } =
useDiagram()
const {
drawioRef,
handleDiagramExport,
onDrawioLoad,
resetDrawioReady,
setShowSaveDialog,
} = useDiagram()
const router = useRouter()
const pathname = usePathname()
// Extract current language from pathname (e.g., "/zh/about" → "zh")
Expand All @@ -34,6 +39,24 @@ export default function Home() {
const chatPanelRef = useRef<ImperativePanelHandle>(null)
const isMobileRef = useRef(false)

useEffect(() => {
//fix:save event is triggered frequently
const messageHandler = (drawioEvent: MessageEvent) => {
const { data } = drawioEvent
try {
const drawioInfo =
typeof data === "string" ? JSON.parse(data) : data
if (drawioInfo?.event === "save") {
setShowSaveDialog(true)
}
} catch (_err) {}
}
window.addEventListener("message", messageHandler)
return () => {
window.removeEventListener("message", messageHandler)
}
}, [])

// Load preferences from localStorage after mount
useEffect(() => {
// Restore saved locale and redirect if needed
Expand Down Expand Up @@ -193,7 +216,6 @@ export default function Home() {
spin: false,
libraries: false,
saveAndExit: false,
noSaveBtn: true,
noExitBtn: true,
dark: darkMode,
lang: currentLang,
Expand Down