From 73af211bef09a78efdb0457201ce80d2b577482d Mon Sep 17 00:00:00 2001 From: Nexmoe <16796652+nexmoe@users.noreply.github.com> Date: Sat, 17 Jan 2026 12:52:30 +0800 Subject: [PATCH] feat(feedback): warn on long github issue urls (#140) --- .../src/components/feedback/FeedbackLinks.tsx | 35 ++++++++++++------- src/renderer/src/locales/ar.json | 3 +- src/renderer/src/locales/de.json | 3 +- src/renderer/src/locales/en.json | 3 +- src/renderer/src/locales/es.json | 3 +- src/renderer/src/locales/fr.json | 3 +- src/renderer/src/locales/id.json | 3 +- src/renderer/src/locales/it.json | 3 +- src/renderer/src/locales/ja.json | 3 +- src/renderer/src/locales/ko.json | 3 +- src/renderer/src/locales/pt.json | 3 +- src/renderer/src/locales/ru.json | 3 +- src/renderer/src/locales/zh-TW.json | 3 +- src/renderer/src/locales/zh.json | 3 +- 14 files changed, 49 insertions(+), 25 deletions(-) diff --git a/src/renderer/src/components/feedback/FeedbackLinks.tsx b/src/renderer/src/components/feedback/FeedbackLinks.tsx index 23d9cc4..7f7f12d 100644 --- a/src/renderer/src/components/feedback/FeedbackLinks.tsx +++ b/src/renderer/src/components/feedback/FeedbackLinks.tsx @@ -3,6 +3,7 @@ import { ipcServices } from '@renderer/lib/ipc' import { Github, MessageCircle, Twitter } from 'lucide-react' import { type MouseEvent, useEffect, useMemo, useState } from 'react' import { useTranslation } from 'react-i18next' +import { toast } from 'sonner' type AppInfo = { appVersion: string @@ -17,6 +18,7 @@ const FEEDBACK_UNKNOWN_VALUE = 'Unknown' const FEEDBACK_SOURCE_LABEL = 'Source URL' const FEEDBACK_ERROR_LABEL = 'Error' const FEEDBACK_COMMAND_LABEL = 'yt-dlp command' +const FEEDBACK_MAX_GITHUB_URL_LENGTH = 7000 let cachedAppInfo: AppInfo | null = null let appInfoPromise: Promise | null = null @@ -140,21 +142,18 @@ export const FeedbackLinkButtons = ({ const tweetText = encodeURIComponent( tweetError ? `${tweetPrefix} - ${tweetError}` : tweetPrefix ) - const issueError = compactError ? clampText(compactError, 800) : FEEDBACK_UNKNOWN_ERROR + const issueError = compactError || FEEDBACK_UNKNOWN_ERROR const resolvedSourceUrl = sourceUrl?.trim() || undefined const normalizedCommand = ytDlpCommand?.trim() || undefined const shouldIncludeLogs = Boolean(compactError || resolvedSourceUrl || normalizedCommand) const issueLogs = shouldIncludeLogs - ? clampText( - buildIssueLogs( - issueError, - resolvedSourceUrl, - normalizedCommand, - FEEDBACK_SOURCE_LABEL, - FEEDBACK_ERROR_LABEL, - FEEDBACK_COMMAND_LABEL - ), - 800 + ? buildIssueLogs( + issueError, + resolvedSourceUrl, + normalizedCommand, + FEEDBACK_SOURCE_LABEL, + FEEDBACK_ERROR_LABEL, + FEEDBACK_COMMAND_LABEL ) : null const appVersionValue = appVersion ? `VidBee v${appVersion}` : FEEDBACK_UNKNOWN_VALUE @@ -209,6 +208,13 @@ export const FeedbackLinkButtons = ({ useSimpleGithubUrl ]) + const handleLinkClick = (event: MouseEvent, href: string) => { + if (href.startsWith('https://github.com') && href.length >= FEEDBACK_MAX_GITHUB_URL_LENGTH) { + toast.info(t('download.feedback.githubUrlTooLong')) + } + onLinkClick?.(event) + } + return ( <> {links.map((resource) => { @@ -221,7 +227,12 @@ export const FeedbackLinkButtons = ({ className={buttonClassName} asChild > - + handleLinkClick(event, resource.href)} + > {resource.label} diff --git a/src/renderer/src/locales/ar.json b/src/renderer/src/locales/ar.json index dceba9d..8a06ad8 100644 --- a/src/renderer/src/locales/ar.json +++ b/src/renderer/src/locales/ar.json @@ -197,7 +197,8 @@ "subscription": "الاشتراك" }, "feedback": { - "title": "Report this error:" + "title": "Report this error:", + "githubUrlTooLong": "رابط GitHub هذا طويل جدًا. إذا لم يفتح، فالرجاء فتح صفحة المشكلة ولصق السجلات يدويًا." } }, "error": { diff --git a/src/renderer/src/locales/de.json b/src/renderer/src/locales/de.json index 6e70fc3..d5ea69f 100644 --- a/src/renderer/src/locales/de.json +++ b/src/renderer/src/locales/de.json @@ -197,7 +197,8 @@ "subscription": "Abonnement" }, "feedback": { - "title": "Report this error:" + "title": "Report this error:", + "githubUrlTooLong": "Dieser GitHub-Link ist sehr lang. Wenn er sich nicht öffnet, öffnen Sie bitte die Issue-Seite und fügen Sie die Logs manuell ein." } }, "error": { diff --git a/src/renderer/src/locales/en.json b/src/renderer/src/locales/en.json index b0b4764..13a470d 100644 --- a/src/renderer/src/locales/en.json +++ b/src/renderer/src/locales/en.json @@ -131,7 +131,8 @@ "fetch": "Fetch", "fetchingVideoInfo": "Fetching video info...", "feedback": { - "title": "Report this error:" + "title": "Report this error:", + "githubUrlTooLong": "This GitHub link is very long. If it fails to open, please open the issue page and paste the logs manually." }, "history": "History", "imageLoadError": "Image failed to load", diff --git a/src/renderer/src/locales/es.json b/src/renderer/src/locales/es.json index 9d428dc..7871a4d 100644 --- a/src/renderer/src/locales/es.json +++ b/src/renderer/src/locales/es.json @@ -197,7 +197,8 @@ "subscription": "Suscripción" }, "feedback": { - "title": "Report this error:" + "title": "Report this error:", + "githubUrlTooLong": "Este enlace de GitHub es muy largo. Si no se abre, abre la página de la incidencia y pega los registros manualmente." } }, "error": { diff --git a/src/renderer/src/locales/fr.json b/src/renderer/src/locales/fr.json index 203bf74..9ef0bae 100644 --- a/src/renderer/src/locales/fr.json +++ b/src/renderer/src/locales/fr.json @@ -197,7 +197,8 @@ "subscription": "Abonnement" }, "feedback": { - "title": "Report this error:" + "title": "Report this error:", + "githubUrlTooLong": "Ce lien GitHub est très long. S'il ne s'ouvre pas, ouvrez la page de l'issue et collez les logs manuellement." } }, "error": { diff --git a/src/renderer/src/locales/id.json b/src/renderer/src/locales/id.json index 65c8195..3815f56 100644 --- a/src/renderer/src/locales/id.json +++ b/src/renderer/src/locales/id.json @@ -197,7 +197,8 @@ "subscription": "Berlangganan" }, "feedback": { - "title": "Report this error:" + "title": "Report this error:", + "githubUrlTooLong": "Tautan GitHub ini sangat panjang. Jika tidak terbuka, buka halaman issue dan tempel log secara manual." } }, "error": { diff --git a/src/renderer/src/locales/it.json b/src/renderer/src/locales/it.json index 9bba836..94617e7 100644 --- a/src/renderer/src/locales/it.json +++ b/src/renderer/src/locales/it.json @@ -197,7 +197,8 @@ "subscription": "Sottoscrizione" }, "feedback": { - "title": "Report this error:" + "title": "Report this error:", + "githubUrlTooLong": "Questo link GitHub è molto lungo. Se non si apre, apri la pagina dell'issue e incolla i log manualmente." } }, "error": { diff --git a/src/renderer/src/locales/ja.json b/src/renderer/src/locales/ja.json index 92543a8..e3dc5cc 100644 --- a/src/renderer/src/locales/ja.json +++ b/src/renderer/src/locales/ja.json @@ -197,7 +197,8 @@ "subscription": "サブスクリプション" }, "feedback": { - "title": "Report this error:" + "title": "Report this error:", + "githubUrlTooLong": "このGitHubリンクは非常に長いです。開けない場合は、issueページを開いてログを手動で貼り付けてください。" } }, "error": { diff --git a/src/renderer/src/locales/ko.json b/src/renderer/src/locales/ko.json index 5744547..5910541 100644 --- a/src/renderer/src/locales/ko.json +++ b/src/renderer/src/locales/ko.json @@ -197,7 +197,8 @@ "subscription": "신청" }, "feedback": { - "title": "Report this error:" + "title": "Report this error:", + "githubUrlTooLong": "이 GitHub 링크가 매우 깁니다. 열리지 않으면 이슈 페이지를 열고 로그를 수동으로 붙여 넣어 주세요." } }, "error": { diff --git a/src/renderer/src/locales/pt.json b/src/renderer/src/locales/pt.json index c295c16..5f1a664 100644 --- a/src/renderer/src/locales/pt.json +++ b/src/renderer/src/locales/pt.json @@ -197,7 +197,8 @@ "subscription": "Subscrição" }, "feedback": { - "title": "Report this error:" + "title": "Report this error:", + "githubUrlTooLong": "Este link do GitHub é muito longo. Se não abrir, abra a página da issue e cole os logs manualmente." } }, "error": { diff --git a/src/renderer/src/locales/ru.json b/src/renderer/src/locales/ru.json index 9e7b35d..e24315c 100644 --- a/src/renderer/src/locales/ru.json +++ b/src/renderer/src/locales/ru.json @@ -197,7 +197,8 @@ "subscription": "Подписка" }, "feedback": { - "title": "Report this error:" + "title": "Report this error:", + "githubUrlTooLong": "Эта ссылка GitHub очень длинная. Если она не открывается, откройте страницу issue и вставьте логи вручную." } }, "error": { diff --git a/src/renderer/src/locales/zh-TW.json b/src/renderer/src/locales/zh-TW.json index ba9a136..7b33829 100644 --- a/src/renderer/src/locales/zh-TW.json +++ b/src/renderer/src/locales/zh-TW.json @@ -197,7 +197,8 @@ "subscription": "訂閱" }, "feedback": { - "title": "Report this error:" + "title": "Report this error:", + "githubUrlTooLong": "這個 GitHub 連結很長。如果無法開啟,請開啟 issue 頁面並手動貼上日誌。" } }, "error": { diff --git a/src/renderer/src/locales/zh.json b/src/renderer/src/locales/zh.json index 2de639c..bfbd572 100644 --- a/src/renderer/src/locales/zh.json +++ b/src/renderer/src/locales/zh.json @@ -197,7 +197,8 @@ "subscription": "订阅" }, "feedback": { - "title": "Report this error:" + "title": "Report this error:", + "githubUrlTooLong": "这个 GitHub 链接很长。如果无法打开,请打开 issue 页面并手动粘贴日志。" } }, "error": {