Files
afilmory/be/apps/dashboard/src/modules/welcome/components/TenantMissingStandalone.tsx
Innei 76d60fd672 feat(ui): introduce LinearBorderContainer component and enhance NotFound pages
- Added LinearBorderContainer component for improved UI styling with gradient borders.
- Refactored NotFound components in both web and dashboard to utilize LinearBorderContainer, enhancing visual presentation and user experience.
- Updated layout and messaging for 404 error pages to provide clearer navigation options.

Signed-off-by: Innei <tukon479@gmail.com>
2025-11-12 22:47:56 +08:00

58 lines
2.7 KiB
TypeScript
Raw 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.
import { Button, LinearBorderContainer } from '@afilmory/ui'
import { useMemo } from 'react'
import { buildHomeUrl, buildRegistrationUrl, getCurrentHostname } from './tenant-utils'
export const TenantMissingStandalone = () => {
const hostname = useMemo(() => getCurrentHostname(), [])
const registrationUrl = useMemo(() => buildRegistrationUrl(), [])
const homeUrl = useMemo(() => buildHomeUrl(), [])
return (
<div className="relative flex min-h-dvh flex-1 flex-col bg-background text-text">
<div className="flex flex-1 items-center justify-center px-4 py-10 sm:px-6">
<LinearBorderContainer>
<div className="relative w-full max-w-[640px] overflow-hidden border border-white/5">
<div className="pointer-events-none absolute inset-0 opacity-60">
<div className="absolute -inset-32 bg-linear-to-br from-accent/20 via-transparent to-transparent blur-3xl" />
<div className="absolute inset-0 bg-[radial-gradient(circle_at_top,rgba(255,255,255,0.08),transparent_55%)]" />
</div>
<div className="relative p-10 sm:p-12">
<div>
<p className="text-text-tertiary mb-3 text-xs font-semibold uppercase tracking-[0.55em]">404</p>
<h1 className="mb-4 text-3xl font-bold tracking-tight sm:text-4xl"></h1>
<p className="text-text-secondary mb-6 text-base leading-relaxed">
访访
使 Afilmory
</p>
{hostname && (
<div className="bg-material-medium/40 border-fill-tertiary mb-6 rounded-2xl border px-5 py-4 text-sm">
<p className="text-text-secondary">
<span className="text-text font-medium">{hostname}</span>
</p>
</div>
)}
<div className="flex flex-col gap-3 sm:flex-row">
<Button
variant="primary"
className="glassmorphic-btn flex-1"
onClick={() => (window.location.href = registrationUrl)}
>
</Button>
<Button variant="ghost" className="flex-1" onClick={() => (window.location.href = homeUrl)}>
</Button>
</div>
</div>
</div>
</div>
</LinearBorderContainer>
</div>
</div>
)
}