From 591eea2f4f40b9ba421269d8e21432df11b4a7fb Mon Sep 17 00:00:00 2001 From: theMackabu Date: Sat, 25 Apr 2026 16:00:25 -0700 Subject: [PATCH] render frames in code block --- .../public/assets/BerkeleyMono-Regular.woff2 | Bin 0 -> 32256 bytes docs/reports/public/assets/report.css | 48 +++++++++++------- docs/reports/public/assets/report.js | 26 ++++++++++ docs/reports/src/view.tsx | 33 +++++++----- 4 files changed, 75 insertions(+), 32 deletions(-) create mode 100644 docs/reports/public/assets/BerkeleyMono-Regular.woff2 create mode 100644 docs/reports/public/assets/report.js diff --git a/docs/reports/public/assets/BerkeleyMono-Regular.woff2 b/docs/reports/public/assets/BerkeleyMono-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..8cc6cf389c1d1f21b87e98317d3da7799b863aae GIT binary patch literal 32256 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 literal 0 HcmV?d00001 diff --git a/docs/reports/public/assets/report.css b/docs/reports/public/assets/report.css index df9fc8a..ca5d523 100644 --- a/docs/reports/public/assets/report.css +++ b/docs/reports/public/assets/report.css @@ -1,3 +1,8 @@ +@font-face { + font-family: 'Berkeley Mono'; + src: url('/assets/BerkeleyMono-Regular.woff2') format('woff2'); +} + * { margin: 0; padding: 0; @@ -18,7 +23,7 @@ html { body { margin: 7% auto 0; - max-width: 405px; + max-width: 410px; min-height: 180px; padding: 30px 0 15px; } @@ -42,19 +47,8 @@ a { } code { - background: #f8f8f8; - border: 1px solid #eee; - border-radius: 2px; - padding: 0 3px; -} - -ol { - margin: 11px 0 22px 22px; -} - -li { - margin: 3px 0; - overflow-wrap: anywhere; + padding: 2px 5px; + background-color: #f2f2f2; } #logo { @@ -83,16 +77,34 @@ li { color: #777; } -.frames code { - background: transparent; - border: 0; - padding: 0; +.frames { + padding-inline: 0.7rem; + padding-block: 0.3rem; + color: #333; + background-color: #fcfcfc !important; + font-family: 'Berkeley Mono', monospace; + margin: 5px 0 11px; + max-height: 320px; + overflow: auto; + white-space: pre; +} + +.frames > code { + all: unset; +} + +.frame-index { + color: #999; } .url { overflow-wrap: anywhere; } +.copy-url { + cursor: copy; +} + .footer { margin-top: 33px; } diff --git a/docs/reports/public/assets/report.js b/docs/reports/public/assets/report.js new file mode 100644 index 0000000..f842e28 --- /dev/null +++ b/docs/reports/public/assets/report.js @@ -0,0 +1,26 @@ +function copyText(text) { + if (!navigator.clipboard || !window.isSecureContext) { + return Promise.reject(new Error('Clipboard API is unavailable')); + } + return navigator.clipboard.writeText(text); +} + +document.addEventListener('click', event => { + const link = event.target.closest('[data-copy-url]'); + + if (!link) return; + event.preventDefault(); + + const url = link.getAttribute('data-copy-url'); + if (!url) return; + + copyText(url) + .then(() => { + const original = link.textContent; + link.textContent = 'Copied URL to clipboard.'; + window.setTimeout(() => { + link.textContent = original; + }, 1200); + }) + .catch(() => (window.location.href = url)); +}); diff --git a/docs/reports/src/view.tsx b/docs/reports/src/view.tsx index 726f834..742c446 100644 --- a/docs/reports/src/view.tsx +++ b/docs/reports/src/view.tsx @@ -29,6 +29,16 @@ function crashDetail(code: string): string { } } +function renderFrames(frames: string[]): Child { + if (!frames.length) return 'No native frames were captured.'; + return frames.map((frame, index) => ( + <> + {index + 1}. {frame} + {index < frames.length - 1 ? '\n' : ''} + + )); +} + const Shell = ({ title, children }: { title: string; children: Child }) => ( @@ -36,6 +46,7 @@ const Shell = ({ title, children }: { title: string; children: Child }) => ( + {title} {children} @@ -104,24 +115,18 @@ const ReportPage = ({ report, url }: { report: CrashReport; url: string }) => {
Native backtrace: -
    - {report.frames.length ? ( - report.frames.map(frame => ( -
  1. - {frame} -
  2. - )) - ) : ( -
  3. - No native frames were captured. -
  4. - )} -
+
+          {renderFrames(report.frames)}
+        

- This report URL: {url} + This report URL:{' '} + + {url} +

+ ); -- 2.51.2