fix: update styling

This commit is contained in:
Mythie
2023-09-05 13:15:45 +10:00
parent 4ec2bd7536
commit 4072e2a200
4 changed files with 110 additions and 92 deletions

View File

@ -1,6 +1,7 @@
'use client'; 'use client';
import Image from 'next/image'; import Image from 'next/image';
import Link from 'next/link';
import { useRouter } from 'next/navigation'; import { useRouter } from 'next/navigation';
import { motion } from 'framer-motion'; import { motion } from 'framer-motion';
@ -13,54 +14,52 @@ import backgroundPattern from '~/assets/background-pattern.png';
export default function NotFound() { export default function NotFound() {
const router = useRouter(); const router = useRouter();
return ( return (
<motion.div className={cn('relative')}> <div className={cn('relative max-w-[100vw] overflow-hidden')}>
<div className="absolute -inset-24 -z-10"> <div className="absolute -inset-24 -z-10">
<motion.div <motion.div
className="flex h-full w-full origin-top-right items-center justify-center" className="flex h-full w-full items-center justify-center"
initial="initial" initial={{ opacity: 0 }}
animate="animate" animate={{ opacity: 0.8, transition: { duration: 0.5, delay: 0.5 } }}
> >
<Image <Image
src={backgroundPattern} src={backgroundPattern}
alt="background pattern" alt="background pattern"
className="-mr-[50vw] -mt-[15vh] h-full scale-100 object-cover md:scale-100 lg:scale-[100%]" className="-mr-[50vw] -mt-[15vh] h-full scale-100 object-cover md:scale-100 lg:scale-[100%]"
priority={true} priority
/> />
</motion.div> </motion.div>
</div> </div>
<div className="container mx-auto flex min-h-screen items-center px-6 py-12">
<div className="mx-auto flex max-w-sm flex-col items-center text-center"> <div className="container mx-auto flex h-full min-h-screen items-center px-6 py-32">
<h1 className="mt-3 text-2xl font-semibold text-gray-800 dark:text-white md:text-3xl"> <div>
404 Page not found <p className="text-muted-foreground font-semibold">404 Page not found</p>
</h1>
<p className="mt-4 text-gray-500 dark:text-gray-400"> <h1 className="mt-3 text-2xl font-bold md:text-3xl">Oops! Something went wrong.</h1>
Sorry, the page you are looking for doesn't exist or has been moved.
<p className="text-muted-foreground mt-4 text-sm">
The page you are looking for was moved, removed, renamed or might never have existed.
</p> </p>
<div className="mt-6 flex w-full shrink-0 items-center gap-x-3 sm:w-auto"> <div className="mt-6 flex gap-x-2.5 gap-y-4 md:items-center">
<Button <Button
size="default" variant="ghost"
className="w-32"
onClick={() => { onClick={() => {
void router.back(); void router.back();
}} }}
className="dark:bg-documenso dark:hover:opacity-90"
> >
<ChevronLeft /> <ChevronLeft className="mr-2 h-4 w-4" />
<span>Go back</span> Go Back
</Button> </Button>
<Button
size="default" <Button className="w-32" asChild>
onClick={() => { <Link href="/">Home</Link>
void router.push('/');
}}
variant="secondary"
>
<span>Home</span>
</Button> </Button>
</div> </div>
</div> </div>
</div> </div>
</motion.div> </div>
); );
} }

View File

@ -1,66 +1,26 @@
'use client'; import Link from 'next/link';
import Image from 'next/image'; import { getServerComponentSession } from '@documenso/lib/next-auth/get-server-session';
import { useRouter } from 'next/navigation';
import { motion } from 'framer-motion';
import { ChevronLeft } from 'lucide-react';
import { cn } from '@documenso/ui/lib/utils';
import { Button } from '@documenso/ui/primitives/button'; import { Button } from '@documenso/ui/primitives/button';
import backgroundPattern from '~/assets/background-pattern.png'; import NotFoundPartial from '~/components/partials/not-found';
export default async function NotFound() {
const session = await getServerComponentSession();
export default function NotFound() {
const router = useRouter();
return ( return (
<motion.div className={cn('relative')}> <NotFoundPartial>
<div className="absolute -inset-24 -z-10"> {session && (
<motion.div <Button className="w-32" asChild>
className="flex h-full w-full origin-top-right items-center justify-center" <Link href="/documents">Documents</Link>
initial="initial" </Button>
animate="animate" )}
>
<Image {!session && (
src={backgroundPattern} <Button className="w-32" asChild>
alt="background pattern" <Link href="/signin">Sign In</Link>
className="-mr-[50vw] -mt-[15vh] h-full scale-100 object-cover md:scale-100 lg:scale-[100%]" </Button>
priority={true} )}
/> </NotFoundPartial>
</motion.div>
</div>
<div className="container mx-auto flex min-h-screen items-center px-6 py-12">
<div>
<p className="font-medium leading-relaxed text-[#555E67]">404 Page not found</p>
<h1 className="mt-3 text-2xl font-semibold text-gray-800 dark:text-white md:text-3xl">
Oops! You found a secret page
</h1>
<p className="mt-4 text-gray-500 dark:text-gray-400">
The page you are looking for may not exist :/
</p>
<div className="mt-6 flex items-center gap-x-3">
<Button
size="default"
className="dark:bg-documenso dark:hover:opacity-90"
onClick={() => {
void router.back();
}}
>
<ChevronLeft />
<span>Go back</span>
</Button>
<Button
size="default"
variant="secondary"
onClick={() => {
void router.push('/dashboard');
}}
>
<span>Dashboard</span>
</Button>
</div>
</div>
</div>
</motion.div>
); );
} }

View File

@ -1,7 +0,0 @@
'use client';
import { motion } from 'framer-motion';
export * from 'framer-motion';
export const MotionDiv = motion.div;

View File

@ -0,0 +1,66 @@
'use client';
import Image from 'next/image';
import { useRouter } from 'next/navigation';
import { motion } from 'framer-motion';
import { ChevronLeft } from 'lucide-react';
import { cn } from '@documenso/ui/lib/utils';
import { Button } from '@documenso/ui/primitives/button';
import backgroundPattern from '~/assets/background-pattern.png';
export type NotFoundPartialProps = {
children?: React.ReactNode;
};
export default function NotFoundPartial({ children }: NotFoundPartialProps) {
const router = useRouter();
return (
<div className={cn('relative max-w-[100vw] overflow-hidden')}>
<div className="absolute -inset-24 -z-10">
<motion.div
className="flex h-full w-full items-center justify-center"
initial={{ opacity: 0 }}
animate={{ opacity: 0.8, transition: { duration: 0.5, delay: 0.5 } }}
>
<Image
src={backgroundPattern}
alt="background pattern"
className="-mr-[50vw] -mt-[15vh] h-full scale-100 object-cover md:scale-100 lg:scale-[100%]"
priority
/>
</motion.div>
</div>
<div className="container mx-auto flex h-full min-h-screen items-center px-6 py-32">
<div>
<p className="text-muted-foreground font-semibold">404 Page not found</p>
<h1 className="mt-3 text-2xl font-bold md:text-3xl">Oops! Something went wrong.</h1>
<p className="text-muted-foreground mt-4 text-sm">
The page you are looking for was moved, removed, renamed or might never have existed.
</p>
<div className="mt-6 flex gap-x-2.5 gap-y-4 md:items-center">
<Button
variant="ghost"
className="w-32"
onClick={() => {
void router.back();
}}
>
<ChevronLeft className="mr-2 h-4 w-4" />
Go Back
</Button>
{children}
</div>
</div>
</div>
</div>
);
}