refactor(memo): simplify MemoDetail error handling, drop memo.failed-to-load i18n key

The failed-to-load key was only used for non-ConnectError exceptions, which
are unreachable in practice since the Connect RPC client always wraps errors
as ConnectError. Use (error as Error).message as a plain fallback instead.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
memoclaw 2026-03-20 20:19:44 +08:00
parent 5f6f624635
commit 7b4f3a9fa5
34 changed files with 3 additions and 37 deletions

View File

@ -156,7 +156,6 @@
"direction-asc": "تصاعدي",
"direction-desc": "تنازلي",
"display-time": "عرض الوقت",
"failed-to-load": "Failed to load memo.",
"filters": {
"has-code": "يحتوي على كود",
"has-link": "يحتوي على رابط",

View File

@ -156,7 +156,6 @@
"direction-asc": "Ascendent",
"direction-desc": "Descendent",
"display-time": "Mostra l'hora",
"failed-to-load": "Failed to load memo.",
"filters": {
"has-code": "téCodi",
"has-link": "téEnllaç",

View File

@ -156,7 +156,6 @@
"direction-asc": "Vzestupně",
"direction-desc": "Sestupně",
"display-time": "Doba zobrazení",
"failed-to-load": "Failed to load memo.",
"filters": {
"has-code": "maKod",
"has-link": "maOdkaz",

View File

@ -156,7 +156,6 @@
"direction-asc": "Aufsteigend",
"direction-desc": "Absteigend",
"display-time": "Anzeigedatum",
"failed-to-load": "Failed to load memo.",
"filters": {
"has-code": "hatCode",
"has-link": "hatLink",

View File

@ -12,7 +12,5 @@
"auth": {
"protected-memo-notice": "This memo is not public. Sign in to continue."
},
"memo": {
"failed-to-load": "Failed to load memo."
}
"memo": {}
}

View File

@ -161,7 +161,6 @@
"direction-asc": "Ascending",
"direction-desc": "Descending",
"display-time": "Display Time",
"failed-to-load": "Failed to load memo.",
"filters": {
"has-code": "hasCode",
"has-link": "hasLink",

View File

@ -156,7 +156,6 @@
"direction-asc": "Ascendente",
"direction-desc": "Descendente",
"display-time": "Hora de visualización",
"failed-to-load": "Failed to load memo.",
"filters": {
"has-code": "tieneCódigo",
"has-link": "tieneEnlace",

View File

@ -156,7 +156,6 @@
"direction-asc": "صعودی",
"direction-desc": "نزولی",
"display-time": "زمان نمایش",
"failed-to-load": "Failed to load memo.",
"filters": {
"has-code": "دارای کد",
"has-link": "دارای پیوند",

View File

@ -156,7 +156,6 @@
"direction-asc": "Ascendant",
"direction-desc": "Descendant",
"display-time": "Afficher l'heure",
"failed-to-load": "Failed to load memo.",
"filters": {
"has-code": "aCode",
"has-link": "aLien",

View File

@ -156,7 +156,6 @@
"direction-asc": "Ascendente",
"direction-desc": "Descendente",
"display-time": "Mostrar hora",
"failed-to-load": "Failed to load memo.",
"filters": {
"has-code": "hasCode",
"has-link": "hasLink",

View File

@ -156,7 +156,6 @@
"direction-asc": "आरोही",
"direction-desc": "अवरोही",
"display-time": "प्रदर्शन समय",
"failed-to-load": "Failed to load memo.",
"filters": {
"has-code": "कोड है",
"has-link": "लिंक है",

View File

@ -156,7 +156,6 @@
"direction-asc": "Uzlazno",
"direction-desc": "Silazno",
"display-time": "Vrijeme prikaza",
"failed-to-load": "Failed to load memo.",
"filters": {
"has-code": "imaKod",
"has-link": "imaLink",

View File

@ -156,7 +156,6 @@
"direction-asc": "Növekvő",
"direction-desc": "Csökkenő",
"display-time": "Megjelenítési idő",
"failed-to-load": "Failed to load memo.",
"filters": {
"has-code": "vanKód",
"has-link": "vanLink",

View File

@ -156,7 +156,6 @@
"direction-asc": "Menaik",
"direction-desc": "Menurun",
"display-time": "Waktu Tampil",
"failed-to-load": "Failed to load memo.",
"filters": {
"has-code": "Memiliki kode",
"has-link": "Memiliki tautan",

View File

@ -156,7 +156,6 @@
"direction-asc": "Crescente",
"direction-desc": "Decrescente",
"display-time": "Orario di visualizzazione",
"failed-to-load": "Failed to load memo.",
"filters": {
"has-code": "haCodice",
"has-link": "haLink",

View File

@ -156,7 +156,6 @@
"direction-asc": "昇順",
"direction-desc": "降順",
"display-time": "表示時間",
"failed-to-load": "Failed to load memo.",
"filters": {
"has-code": "コードあり",
"has-link": "リンクあり",

View File

@ -156,7 +156,6 @@
"direction-asc": "ზრდადობით",
"direction-desc": "კლებადობით",
"display-time": "ჩვენების დრო",
"failed-to-load": "Failed to load memo.",
"filters": {
"has-code": "კოდიარის",
"has-link": "ლინკიარის",

View File

@ -156,7 +156,6 @@
"direction-asc": "오름차순",
"direction-desc": "내림차순",
"display-time": "표시 시간",
"failed-to-load": "Failed to load memo.",
"filters": {
"has-code": "코드있음",
"has-link": "링크있음",

View File

@ -156,7 +156,6 @@
"direction-asc": "आरोही",
"direction-desc": "अवरोही",
"display-time": "प्रदर्शन वेळ",
"failed-to-load": "Failed to load memo.",
"filters": {
"has-code": "कोड आहे",
"has-link": "लिंक आहे",

View File

@ -156,7 +156,6 @@
"direction-asc": "Stigende",
"direction-desc": "Synkende",
"display-time": "Vis tid",
"failed-to-load": "Failed to load memo.",
"filters": {
"has-code": "harKode",
"has-link": "harLink",

View File

@ -156,7 +156,6 @@
"direction-asc": "Oplopend",
"direction-desc": "Aflopend",
"display-time": "Tijd weergeven",
"failed-to-load": "Failed to load memo.",
"filters": {
"has-code": "heeftCode",
"has-link": "heeftLink",

View File

@ -157,7 +157,6 @@
"direction-asc": "Rosnąco",
"direction-desc": "Malejąco",
"display-time": "Wyświetl czas",
"failed-to-load": "Failed to load memo.",
"filters": {
"has-code": "ma kod",
"has-link": "ma link",

View File

@ -156,7 +156,6 @@
"direction-asc": "Crescente",
"direction-desc": "Decrescente",
"display-time": "Horário",
"failed-to-load": "Failed to load memo.",
"filters": {
"has-code": "temCódigo",
"has-link": "temLink",

View File

@ -156,7 +156,6 @@
"direction-asc": "Ascendente",
"direction-desc": "Descendente",
"display-time": "Hora de exibição",
"failed-to-load": "Failed to load memo.",
"filters": {
"has-code": "temCódigo",
"has-link": "temLink",

View File

@ -156,7 +156,6 @@
"direction-asc": "По возрастанию",
"direction-desc": "По убыванию",
"display-time": "Время отображения",
"failed-to-load": "Failed to load memo.",
"filters": {
"has-code": "hasCode",
"has-link": "hasLink",

View File

@ -157,7 +157,6 @@
"direction-asc": "Naraščajoče",
"direction-desc": "Padajoče",
"display-time": "Prikaži čas",
"failed-to-load": "Failed to load memo.",
"filters": {
"has-code": "imaKodo",
"has-link": "imaPovezavo",

View File

@ -156,7 +156,6 @@
"direction-asc": "Stigande",
"direction-desc": "Fallande",
"display-time": "Visa tid",
"failed-to-load": "Failed to load memo.",
"filters": {
"has-code": "harKod",
"has-link": "harLänk",

View File

@ -156,7 +156,6 @@
"direction-asc": "จากน้อยไปมาก",
"direction-desc": "จากมากไปน้อย",
"display-time": "แสดงเวลา",
"failed-to-load": "Failed to load memo.",
"filters": {
"has-code": "มีโค้ด",
"has-link": "มีลิงก์",

View File

@ -156,7 +156,6 @@
"direction-asc": "Artan",
"direction-desc": "Azalan",
"display-time": "Görüntüleme Zamanı",
"failed-to-load": "Failed to load memo.",
"filters": {
"has-code": "kodVar",
"has-link": "bağlantıVar",

View File

@ -156,7 +156,6 @@
"direction-asc": "За зростанням",
"direction-desc": "За спаданням",
"display-time": "Час відображення",
"failed-to-load": "Failed to load memo.",
"filters": {
"has-code": "єКод",
"has-link": "єПосилання",

View File

@ -156,7 +156,6 @@
"direction-asc": "Tăng dần",
"direction-desc": "Giảm dần",
"display-time": "Thời gian hiển thị",
"failed-to-load": "Failed to load memo.",
"filters": {
"has-code": "cóMã",
"has-link": "cóLiênKết",

View File

@ -156,7 +156,6 @@
"direction-asc": "正序",
"direction-desc": "倒序",
"display-time": "展示时间",
"failed-to-load": "加载备忘录失败。",
"filters": {
"has-code": "有代码",
"has-link": "有链接",

View File

@ -156,7 +156,6 @@
"direction-asc": "升序",
"direction-desc": "降序",
"display-time": "顯示時間",
"failed-to-load": "載入備忘錄失敗。",
"filters": {
"has-code": "有程式碼",
"has-link": "有連結",

View File

@ -61,8 +61,8 @@ const MemoDetail = () => {
return;
}
toast.error(t("memo.failed-to-load"));
}, [error, location.hash, location.pathname, location.search, navigateTo, t]);
toast.error((error as Error).message);
}, [error, location.hash, location.pathname, location.search, navigateTo]);
// Fetch parent memo if exists
const { data: parentMemo } = useMemo(memo?.parent || "", {