Skip to content

Commit 54ae7b1

Browse files
committed
More PR feedback
1 parent b48ad35 commit 54ae7b1

File tree

17 files changed

+21
-53
lines changed

17 files changed

+21
-53
lines changed

webview-ui/src/components/common/MermaidBlock.tsx

Lines changed: 5 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { useDebounceEffect } from "@src/utils/useDebounceEffect"
44
import styled from "styled-components"
55
import { vscode } from "@src/utils/vscode"
66
import { useAppTranslation } from "@src/i18n/TranslationContext"
7+
import { useCopyToClipboard } from "@src/utils/clipboard"
78
import CodeBlock from "./CodeBlock"
89

910
const MERMAID_THEME = {
@@ -85,7 +86,7 @@ export default function MermaidBlock({ code }: MermaidBlockProps) {
8586
const [isLoading, setIsLoading] = useState(false)
8687
const [error, setError] = useState<string | null>(null)
8788
const [isErrorExpanded, setIsErrorExpanded] = useState(false)
88-
const [showCopySuccess, setShowCopySuccess] = useState(false)
89+
const { showCopyFeedback, copyWithFeedback } = useCopyToClipboard()
8990
const { t } = useAppTranslation()
9091

9192
// 1) Whenever `code` changes, mark that we need to re-render a new chart
@@ -144,22 +145,7 @@ export default function MermaidBlock({ code }: MermaidBlockProps) {
144145
}
145146
}
146147

147-
/**
148-
* Copy the mermaid code to clipboard for easier fixing
149-
*/
150-
const handleCopyCode = () => {
151-
navigator.clipboard
152-
.writeText(code)
153-
.then(() => {
154-
setShowCopySuccess(true)
155-
setTimeout(() => {
156-
setShowCopySuccess(false)
157-
}, 1000)
158-
})
159-
.catch((err) => {
160-
console.error("Failed to copy code:", err)
161-
})
162-
}
148+
// Copy functionality handled directly through the copyWithFeedback utility
163149

164150
return (
165151
<MermaidBlockContainer>
@@ -200,11 +186,9 @@ export default function MermaidBlock({ code }: MermaidBlockProps) {
200186
<CopyButton
201187
onClick={(e) => {
202188
e.stopPropagation()
203-
handleCopyCode()
189+
copyWithFeedback(code, e)
204190
}}>
205-
<span
206-
className={`codicon codicon-${showCopySuccess ? "check" : "copy"}`}
207-
title={showCopySuccess ? t("common:mermaid.copy_success") : undefined}></span>
191+
<span className={`codicon codicon-${showCopyFeedback ? "check" : "copy"}`}></span>
208192
</CopyButton>
209193
<span className={`codicon codicon-chevron-${isErrorExpanded ? "up" : "down"}`}></span>
210194
</div>

webview-ui/src/i18n/locales/ca/common.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
},
1010
"mermaid": {
1111
"loading": "Generant diagrama mermaid...",
12-
"render_error": "No es pot renderitzar el diagrama",
13-
"copy_success": "Codi copiat"
12+
"render_error": "No es pot renderitzar el diagrama"
1413
}
1514
}

webview-ui/src/i18n/locales/de/common.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
},
1010
"mermaid": {
1111
"loading": "Mermaid-Diagramm wird generiert...",
12-
"render_error": "Diagramm kann nicht gerendert werden",
13-
"copy_success": "Code kopiert"
12+
"render_error": "Diagramm kann nicht gerendert werden"
1413
}
1514
}

webview-ui/src/i18n/locales/en/common.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
},
1010
"mermaid": {
1111
"loading": "Generating mermaid diagram...",
12-
"render_error": "Unable to Render Diagram",
13-
"copy_success": "Code copied"
12+
"render_error": "Unable to Render Diagram"
1413
}
1514
}

webview-ui/src/i18n/locales/es/common.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
},
1010
"mermaid": {
1111
"loading": "Generando diagrama mermaid...",
12-
"render_error": "No se puede renderizar el diagrama",
13-
"copy_success": "Código copiado"
12+
"render_error": "No se puede renderizar el diagrama"
1413
}
1514
}

webview-ui/src/i18n/locales/fr/common.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
},
1010
"mermaid": {
1111
"loading": "Génération du diagramme mermaid...",
12-
"render_error": "Impossible de rendre le diagramme",
13-
"copy_success": "Code copié"
12+
"render_error": "Impossible de rendre le diagramme"
1413
}
1514
}

webview-ui/src/i18n/locales/hi/common.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
},
1010
"mermaid": {
1111
"loading": "मरमेड डायग्राम जनरेट हो रहा है...",
12-
"render_error": "डायग्राम रेंडर नहीं किया जा सकता",
13-
"copy_success": "कोड कॉपी किया गया"
12+
"render_error": "डायग्राम रेंडर नहीं किया जा सकता"
1413
}
1514
}

webview-ui/src/i18n/locales/it/common.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
},
1010
"mermaid": {
1111
"loading": "Generazione del diagramma mermaid...",
12-
"render_error": "Impossibile renderizzare il diagramma",
13-
"copy_success": "Codice copiato"
12+
"render_error": "Impossibile renderizzare il diagramma"
1413
}
1514
}

webview-ui/src/i18n/locales/ja/common.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
},
1010
"mermaid": {
1111
"loading": "Mermaidダイアグラムを生成中...",
12-
"render_error": "ダイアグラムをレンダリングできません",
13-
"copy_success": "コードをコピーしました"
12+
"render_error": "ダイアグラムをレンダリングできません"
1413
}
1514
}

webview-ui/src/i18n/locales/ko/common.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
},
1010
"mermaid": {
1111
"loading": "머메이드 다이어그램 생성 중...",
12-
"render_error": "다이어그램을 렌더링할 수 없음",
13-
"copy_success": "코드가 복사됨"
12+
"render_error": "다이어그램을 렌더링할 수 없음"
1413
}
1514
}

0 commit comments

Comments
 (0)