| 95 | }; |
| 96 | |
| 97 | const formatContent = (content) => { |
| 98 | if (!content) return ''; |
| 99 | |
| 100 | if (typeof content === 'object') { |
| 101 | try { |
| 102 | return JSON.stringify(content, null, 2); |
| 103 | } catch (e) { |
| 104 | return String(content); |
| 105 | } |
| 106 | } |
| 107 | |
| 108 | if (typeof content === 'string') { |
| 109 | try { |
| 110 | const parsed = JSON.parse(content); |
| 111 | return JSON.stringify(parsed, null, 2); |
| 112 | } catch (e) { |
| 113 | return content; |
| 114 | } |
| 115 | } |
| 116 | |
| 117 | return String(content); |
| 118 | }; |
| 119 | |
| 120 | const CodeViewer = ({ content, title, language = 'json' }) => { |
| 121 | const { t } = useTranslation(); |