Skip to content

Commit

Permalink
Merge pull request #77 from Cardano-Forge/feat/MET-55-SEO
Browse files Browse the repository at this point in the history
SEO
  • Loading branch information
JFKFred authored Oct 21, 2024
2 parents 24bc63f + facf35e commit 53da77a
Show file tree
Hide file tree
Showing 57 changed files with 126 additions and 19 deletions.
12 changes: 2 additions & 10 deletions client/TODO.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,2 @@
- [x] upload zod validator + formater
- [x] Asset view save in url and localstorage
- [ ] image loading view + fallback
- [x] Project Name, save in localstorage as file name (editable ?)
- [-] Stats from data ~> keep state in localstorage
- [x] results state ~> match asset
- [ ] quick action state change
[x] multi select ~> state change
- [x] reset project clear local storage
- [x] remove view from localstorage
- [ ]
- [ ]
Binary file added client/public/404.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
16 changes: 16 additions & 0 deletions client/src/app/(metadraft)/layout.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import Header from "~/components/header";
import { RxdbProvider } from "~/providers/rxdb.provider";
import { ActiveProjectProvider } from "~/providers/active-project.provider";

export default function RootLayout({
children,
}: Readonly<{ children: React.ReactNode }>) {
return (
<RxdbProvider>
<ActiveProjectProvider>
<Header />
{children}
</ActiveProjectProvider>
</RxdbProvider>
);
}
File renamed without changes.
46 changes: 46 additions & 0 deletions client/src/app/error.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
"use client";

import React, { useEffect } from "react";
import Image from "next/image";

import Header from "~/components/header";
import { Typography } from "~/components/typography";
import { Button } from "~/components/ui/button";

export default function Error({
error,
// eslint-disable-next-line @typescript-eslint/unbound-method
reset,
}: {
error: Error;
reset(): void;
}) {
useEffect(() => {
console.error(error);
}, [error]);

return (
<main className="relative min-h-screen">
<Image
fill
alt="not-found"
src="/404.png"
className="absolute z-0"
style={{ objectFit: "cover", overflow: "hidden" }}
/>
<div className="fixed w-full">
<Header />
</div>
<div className="fixed bottom-20 flex w-full flex-col items-center justify-center gap-4">
<Typography as="code" className="uppercase">
Something went wrong!
</Typography>
<div className="flex flex-row items-center justify-center">
<Button size={"sm"} className="w-20" onClick={reset}>
Try Again
</Button>
</div>
</div>
</main>
);
}
Binary file added client/src/app/favicon.ico
Binary file not shown.
10 changes: 1 addition & 9 deletions client/src/app/layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,6 @@ import "~/styles/globals.css";
import { Inter } from "next/font/google";

import { type Metadata } from "next";
import Header from "~/components/header";
import { RxdbProvider } from "~/providers/rxdb.provider";
import { ActiveProjectProvider } from "~/providers/active-project.provider";

const inter = Inter({
subsets: ["latin"],
Expand All @@ -24,12 +21,7 @@ export default function RootLayout({
return (
<html lang="en" className={`${inter.variable}`}>
<body className="flex min-h-screen flex-col overflow-x-hidden bg-background antialiased">
<RxdbProvider>
<ActiveProjectProvider>
<Header />
{children}
</ActiveProjectProvider>
</RxdbProvider>
{children}
</body>
</html>
);
Expand Down
17 changes: 17 additions & 0 deletions client/src/app/manifest.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import { type MetadataRoute } from "next";

export default function manifest(): MetadataRoute.Manifest {
return {
name: "MetaDraft",
short_name: "MetaDraft",
description: "Metadata validator and tooling",
icons: [
{
src: "/favicon.ico",
sizes: "any",
type: "image/x-icon",
},
],
display: "standalone",
};
}
44 changes: 44 additions & 0 deletions client/src/app/not-found.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
"use client";

import Image from "next/image";
import { useRouter } from "next/navigation";

import Header from "~/components/header";
import { Typography } from "~/components/typography";
import { Button } from "~/components/ui/button";

export default function NotFound() {
const router = useRouter();
return (
<main className="relative min-h-screen">
<Image
fill
alt="not-found"
src="/404.png"
className="absolute z-0"
style={{ objectFit: "cover", overflow: "hidden" }}
/>
<div className="fixed w-full">
<Header />
</div>
<div className="fixed bottom-20 flex w-full flex-col items-center justify-center gap-4">
<Typography as="code" className="uppercase">
404 - Page Not found
</Typography>
<div className="flex flex-row items-center justify-center gap-4">
<Button
variant={"outline"}
size={"sm"}
className="w-20"
onClick={() => router.back()}
>
Back
</Button>
<Button size={"sm"} className="w-20" onClick={() => router.push("/")}>
Home
</Button>
</div>
</div>
</main>
);
}
Binary file added client/src/app/opengraph-image.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added client/src/app/twitter-image.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 53da77a

Please sign in to comment.