/* Copyright 2025 New Vector Ltd. SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial Please see LICENSE in the repository root for full details. */ import { useTranslation } from "react-i18next"; import { PopOutIcon } from "@vector-im/compound-design-tokens/assets/web/icons"; import type { FC, ReactNode } from "react"; import { ErrorView } from "./ErrorView"; import { widget } from "./widget.ts"; /** * An error consisting of a terse message to be logged to the console and a * richer message to be shown to the user, as a full-screen page. */ export class RichError extends Error { public constructor( message: string, /** * The pretty, more helpful message to be shown on the error screen. */ public readonly richMessage: ReactNode, ) { super(message); } } const OpenElsewhere: FC = () => { const { t } = useTranslation(); return (

{t("error.open_elsewhere_description", { brand: import.meta.env.VITE_PRODUCT_NAME || "Element Call", })}

); }; export class OpenElsewhereError extends RichError { public constructor() { super("App opened in another tab", ); } }