diff --git a/lang/ui.ca.json b/lang/ui.ca.json index 35d6d4813..c6aa4a09e 100644 --- a/lang/ui.ca.json +++ b/lang/ui.ca.json @@ -842,9 +842,6 @@ "unexpected-error-description": { "defaultMessage": "Si us plau, torna-ho a provar o plantejar una solicitud de suport ." }, - "unexpected-error-title": { - "defaultMessage": "Si us plau, torna-ho a provar o plantejar una solicitud de suport." - }, "untitled-project": { "defaultMessage": "Projecte sense títol" }, diff --git a/lang/ui.de.json b/lang/ui.de.json index 036828e08..b2048a4dc 100644 --- a/lang/ui.de.json +++ b/lang/ui.de.json @@ -836,9 +836,6 @@ "unexpected-error-description": { "defaultMessage": "Bitte versuche es erneut oder stelle eine Supportanfrage" }, - "unexpected-error-title": { - "defaultMessage": "Bitte versuche es erneut, oder stelle eine Supportanfrage" - }, "untitled-project": { "defaultMessage": "Unbenanntes Projekt" }, diff --git a/lang/ui.en.json b/lang/ui.en.json index d3ca33dce..029463caf 100644 --- a/lang/ui.en.json +++ b/lang/ui.en.json @@ -1135,8 +1135,8 @@ "description": "Text shown for unexpected error scenarios" }, "unexpected-error-title": { - "defaultMessage": "Please try again or raise a support request", - "description": "Text shown for unexpected error scenarios" + "defaultMessage": "An unexpected error occurred", + "description": "Title of the notification shown for unexpected error scenarios" }, "untitled-project": { "defaultMessage": "Untitled project", diff --git a/lang/ui.es-ES.json b/lang/ui.es-ES.json index 12e164612..06c30f6c7 100644 --- a/lang/ui.es-ES.json +++ b/lang/ui.es-ES.json @@ -842,9 +842,6 @@ "unexpected-error-description": { "defaultMessage": "Inténtalo otra vez o solicita asistencia" }, - "unexpected-error-title": { - "defaultMessage": "Inténtalo otra vez o solicita asistencia" - }, "untitled-project": { "defaultMessage": "Proyecto sin título" }, diff --git a/lang/ui.fr.json b/lang/ui.fr.json index 7aff0665c..d8f9c88ed 100644 --- a/lang/ui.fr.json +++ b/lang/ui.fr.json @@ -842,9 +842,6 @@ "unexpected-error-description": { "defaultMessage": "Veuillez réessayer ou soumettre une demande d’assistance" }, - "unexpected-error-title": { - "defaultMessage": "Veuillez réessayer ou soumettre une demande d’assistance" - }, "untitled-project": { "defaultMessage": "Projet sans titre" }, diff --git a/lang/ui.ga-IE.json b/lang/ui.ga-IE.json index 1ef1b1c7e..8adc65380 100644 --- a/lang/ui.ga-IE.json +++ b/lang/ui.ga-IE.json @@ -842,9 +842,6 @@ "unexpected-error-description": { "defaultMessage": "Bain triail eile as nó ardaigh iarratas tacaíochta" }, - "unexpected-error-title": { - "defaultMessage": "Bain triail eile as nó ardaigh iarratas tacaíochta" - }, "untitled-project": { "defaultMessage": "Tionscadal gan teideal" }, diff --git a/lang/ui.ja.json b/lang/ui.ja.json index 2b84de308..97ba13beb 100644 --- a/lang/ui.ja.json +++ b/lang/ui.ja.json @@ -842,9 +842,6 @@ "unexpected-error-description": { "defaultMessage": "もう一度やり直すか、サポートリクエストを提出してください" }, - "unexpected-error-title": { - "defaultMessage": "もう一度やり直すか、サポートリクエストを提出してください" - }, "untitled-project": { "defaultMessage": "無題プロジェクト" }, diff --git a/lang/ui.ko.json b/lang/ui.ko.json index 322ddafd2..3e7030dc2 100644 --- a/lang/ui.ko.json +++ b/lang/ui.ko.json @@ -833,9 +833,6 @@ "unexpected-error-description": { "defaultMessage": "다시 시도하거나 지원 요청을 접수하세요" }, - "unexpected-error-title": { - "defaultMessage": "다시 시도하거나 지원 요청을 접수하세요" - }, "untitled-project": { "defaultMessage": "이름 없는 프로젝트" }, diff --git a/lang/ui.lol.json b/lang/ui.lol.json index 2effea779..b876a4155 100644 --- a/lang/ui.lol.json +++ b/lang/ui.lol.json @@ -842,9 +842,6 @@ "unexpected-error-description": { "defaultMessage": "crwdns331774:0crwdne331774:0" }, - "unexpected-error-title": { - "defaultMessage": "crwdns331776:0crwdne331776:0" - }, "untitled-project": { "defaultMessage": "crwdns331778:0crwdne331778:0" }, diff --git a/lang/ui.nl.json b/lang/ui.nl.json index 35543d2fb..703696579 100644 --- a/lang/ui.nl.json +++ b/lang/ui.nl.json @@ -842,9 +842,6 @@ "unexpected-error-description": { "defaultMessage": "Probeer het opnieuw of doe een ondersteunings verzoek" }, - "unexpected-error-title": { - "defaultMessage": "Probeer het opnieuw of doe een ondersteunings verzoek" - }, "untitled-project": { "defaultMessage": "Naamloos Project" }, diff --git a/lang/ui.pl.json b/lang/ui.pl.json index 12618cc09..f7bdd256e 100644 --- a/lang/ui.pl.json +++ b/lang/ui.pl.json @@ -842,9 +842,6 @@ "unexpected-error-description": { "defaultMessage": "Spróbuj ponownie lub zgłoś prośbę o wsparcie" }, - "unexpected-error-title": { - "defaultMessage": "Spróbuj ponownie lub zgłoś prośbę o wsparcie" - }, "untitled-project": { "defaultMessage": "Projekt bez tytułu" }, diff --git a/lang/ui.pt-BR.json b/lang/ui.pt-BR.json index c1bc93709..6faf21d25 100644 --- a/lang/ui.pt-BR.json +++ b/lang/ui.pt-BR.json @@ -842,9 +842,6 @@ "unexpected-error-description": { "defaultMessage": "Por favor, tente novamente ou abra um pedido de suporte" }, - "unexpected-error-title": { - "defaultMessage": "Por favor, tente novamente ou abra um pedido de suporte" - }, "untitled-project": { "defaultMessage": "Projeto sem título" }, diff --git a/lang/ui.zh-CN.json b/lang/ui.zh-CN.json index d875e1e92..94cca82ed 100644 --- a/lang/ui.zh-CN.json +++ b/lang/ui.zh-CN.json @@ -836,9 +836,6 @@ "unexpected-error-description": { "defaultMessage": "请重试或 raise a support request" }, - "unexpected-error-title": { - "defaultMessage": "请重试或 raise a support request" - }, "untitled-project": { "defaultMessage": "未命名的项目" }, diff --git a/lang/ui.zh-TW.json b/lang/ui.zh-TW.json index c540556db..63548e9a8 100644 --- a/lang/ui.zh-TW.json +++ b/lang/ui.zh-TW.json @@ -833,9 +833,6 @@ "unexpected-error-description": { "defaultMessage": "請重試或提出支援要求" }, - "unexpected-error-title": { - "defaultMessage": "請重試或提出支援要求" - }, "untitled-project": { "defaultMessage": "未命名的專案" }, diff --git a/src/common/use-action-feedback.test.tsx b/src/common/use-action-feedback.test.tsx new file mode 100644 index 000000000..f20008963 --- /dev/null +++ b/src/common/use-action-feedback.test.tsx @@ -0,0 +1,33 @@ +/** + * (c) 2026, Micro:bit Educational Foundation and contributors + * + * SPDX-License-Identifier: MIT + */ +import { ToastFn } from "@microbit/ui"; +import { createIntl } from "react-intl"; +import { vi } from "vitest"; +import { MockLogging } from "../logging/mock"; +import messages from "../messages/ui.en.json"; +import { ActionFeedback } from "./use-action-feedback"; + +describe("ActionFeedback", () => { + it("uses a distinct title for unexpected errors", () => { + const intl = createIntl({ locale: "en", messages }); + const toast = Object.assign(vi.fn(), { closeAll: vi.fn() }); + const logging = new MockLogging(); + const feedback = new ActionFeedback( + toast as unknown as ToastFn, + logging, + intl + ); + + feedback.unexpectedError(new Error("Boom")); + + expect(toast).toHaveBeenCalledOnce(); + expect(toast.mock.calls[0][0]).toMatchObject({ + title: "An unexpected error occurred", + status: "error", + }); + expect(logging.errors).toHaveLength(1); + }); +}); diff --git a/src/common/use-action-feedback.tsx b/src/common/use-action-feedback.tsx index 990905baa..bbab7cba1 100644 --- a/src/common/use-action-feedback.tsx +++ b/src/common/use-action-feedback.tsx @@ -85,7 +85,7 @@ export class ActionFeedback { unexpectedError(error: any) { this.logging.error("Unexpected error", error); this.toast({ - title: this.intl.formatMessage({ id: "unexpected-error-description" }), + title: this.intl.formatMessage({ id: "unexpected-error-title" }), status: "error", description: ( <>