mirror of
https://github.com/DayuanJiang/next-ai-draw-io.git
synced 2026-01-06 08:12:30 +08:00
Compare commits
1 Commits
v0.4.9
...
fix/save-t
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5fd7d4364f |
@@ -432,7 +432,12 @@ export function ChatInput({
|
||||
open={showSaveDialog}
|
||||
onOpenChange={setShowSaveDialog}
|
||||
onSave={(filename, format) =>
|
||||
saveDiagramToFile(filename, format, sessionId)
|
||||
saveDiagramToFile(
|
||||
filename,
|
||||
format,
|
||||
sessionId,
|
||||
dict.save.savedSuccessfully,
|
||||
)
|
||||
}
|
||||
defaultFilename={`diagram-${new Date()
|
||||
.toISOString()
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
import type React from "react"
|
||||
import { createContext, useContext, useEffect, useRef, useState } from "react"
|
||||
import type { DrawIoEmbedRef } from "react-drawio"
|
||||
import { toast } from "sonner"
|
||||
import type { ExportFormat } from "@/components/save-dialog"
|
||||
import { getApiEndpoint } from "@/lib/base-path"
|
||||
import {
|
||||
@@ -27,6 +28,7 @@ interface DiagramContextType {
|
||||
filename: string,
|
||||
format: ExportFormat,
|
||||
sessionId?: string,
|
||||
successMessage?: string,
|
||||
) => void
|
||||
getThumbnailSvg: () => Promise<string | null>
|
||||
isDrawioReady: boolean
|
||||
@@ -236,6 +238,7 @@ export function DiagramProvider({ children }: { children: React.ReactNode }) {
|
||||
filename: string,
|
||||
format: ExportFormat,
|
||||
sessionId?: string,
|
||||
successMessage?: string,
|
||||
) => {
|
||||
if (!drawioRef.current) {
|
||||
console.warn("Draw.io editor not ready")
|
||||
@@ -297,6 +300,14 @@ export function DiagramProvider({ children }: { children: React.ReactNode }) {
|
||||
a.click()
|
||||
document.body.removeChild(a)
|
||||
|
||||
// Show success toast after download is initiated
|
||||
if (successMessage) {
|
||||
toast.success(successMessage, {
|
||||
position: "bottom-left",
|
||||
duration: 2500,
|
||||
})
|
||||
}
|
||||
|
||||
// Delay URL revocation to ensure download completes
|
||||
if (!url.startsWith("data:")) {
|
||||
setTimeout(() => URL.revokeObjectURL(url), 100)
|
||||
|
||||
@@ -117,7 +117,8 @@
|
||||
"drawio": "Draw.io XML",
|
||||
"png": "PNG Image",
|
||||
"svg": "SVG Image"
|
||||
}
|
||||
},
|
||||
"savedSuccessfully": "Saved successfully!"
|
||||
},
|
||||
"history": {
|
||||
"title": "Diagram History",
|
||||
|
||||
@@ -117,7 +117,8 @@
|
||||
"drawio": "Draw.io XML",
|
||||
"png": "PNG 画像",
|
||||
"svg": "SVG 画像"
|
||||
}
|
||||
},
|
||||
"savedSuccessfully": "保存完了!"
|
||||
},
|
||||
"history": {
|
||||
"title": "ダイアグラム履歴",
|
||||
|
||||
@@ -117,7 +117,8 @@
|
||||
"drawio": "Draw.io XML",
|
||||
"png": "PNG 图片",
|
||||
"svg": "SVG 图片"
|
||||
}
|
||||
},
|
||||
"savedSuccessfully": "保存成功!"
|
||||
},
|
||||
"history": {
|
||||
"title": "图表历史",
|
||||
|
||||
Reference in New Issue
Block a user