Source-reviewed hardening changes and regression tests. UNBUILT / UNTESTED: not a deployable release. Go formatting, compilation, automated regression tests, full frontend validation and staging acceptance remain required. See docs/hardening/VALIDATION.md. Main remains the original clean snapshot; no upstream Git history imported.
32 lines
1.2 KiB
TypeScript
32 lines
1.2 KiB
TypeScript
// Modified in the independent hardening fork; see docs/hardening/README.md.
|
|
"use client"
|
|
|
|
import { MessageSquareIcon } from "lucide-react"
|
|
|
|
import { useI18n } from "@/i18n/provider"
|
|
import { Button } from "@/components/ui/button"
|
|
import { getStandaloneChatUrl } from "@/components/support-chat/close-navigation"
|
|
|
|
export default function Page() {
|
|
const t = useI18n()
|
|
|
|
return (
|
|
<main className="flex min-h-svh items-center justify-center bg-muted px-6 text-foreground">
|
|
<section className="grid max-w-sm justify-items-center gap-4 text-center">
|
|
<div className="flex size-14 items-center justify-center rounded-md border bg-card text-muted-foreground">
|
|
<MessageSquareIcon className="size-7" aria-hidden="true" />
|
|
</div>
|
|
<div className="grid gap-2">
|
|
<h1 className="text-lg font-semibold text-foreground">{t("supportChat.dismissedTitle")}</h1>
|
|
<p className="text-sm leading-6 text-muted-foreground">
|
|
{t("supportChat.dismissedDescription")}
|
|
</p>
|
|
</div>
|
|
<Button onClick={() => window.location.replace(getStandaloneChatUrl(window.location.search))}>
|
|
{t("supportChat.returnToChat")}
|
|
</Button>
|
|
</section>
|
|
</main>
|
|
)
|
|
}
|