NODEDC_TASKMANAGER/plane-src/apps/web/app/error/prod.tsx

80 lines
2.8 KiB
TypeScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* Copyright (c) 2023-present Plane Software, Inc. and contributors
* SPDX-License-Identifier: AGPL-3.0-only
* See the LICENSE file for details.
*/
import { useTheme } from "next-themes";
// plane imports
import { Button } from "@plane/propel/button";
// assets
import maintenanceModeDarkModeImage from "@/app/assets/instance/maintenance-mode-dark.svg?url";
import maintenanceModeLightModeImage from "@/app/assets/instance/maintenance-mode-light.svg?url";
// layouts
import DefaultLayout from "@/layouts/default-layout";
const linkMap = [
{
key: "mail_to",
label: "Служба поддержки",
value: "https://nodedc.dctouch.ru/",
},
];
// Production Error Component
interface ProdErrorComponentProps {
onGoHome: () => void;
}
export function ProdErrorComponent({ onGoHome }: ProdErrorComponentProps) {
// hooks
const { resolvedTheme } = useTheme();
// derived values
const maintenanceModeImage = resolvedTheme === "dark" ? maintenanceModeDarkModeImage : maintenanceModeLightModeImage;
return (
<DefaultLayout>
<div className="relative container mx-auto flex h-full w-full max-w-3xl items-center justify-center px-6 py-10">
<div className="nodedc-error-shell relative flex w-full flex-col gap-6 text-left">
<img
src={maintenanceModeImage}
height="176"
width="288"
alt="ProjectSettingImg"
className="mx-auto h-full w-full max-w-[18rem] object-fill object-center"
/>
<div className="flex flex-col gap-2.5">
<h1 className="text-18 font-semibold text-primary">&#x1F6A7; Похоже, что-то пошло не так.</h1>
<span className="text-14 font-medium text-secondary">
Мы уже зафиксировали ошибку и пытаемся восстановить работу. Если проблема сохраняется, обратитесь в
службу поддержки и обновите страницу.
</span>
</div>
<div className="mt-1 flex items-center justify-start gap-6">
{linkMap.map((link) => (
<div key={link.key}>
<a
href={link.value}
target="_blank"
rel="noopener noreferrer"
className="nodedc-error-link text-13"
>
{link.label}
</a>
</div>
))}
</div>
<div className="flex items-center justify-start gap-6">
<Button variant="primary" size="lg" onClick={onGoHome} className="nodedc-error-primary">
На главную
</Button>
</div>
</div>
</div>
</DefaultLayout>
);
}