diff --git a/apps/web/package.json b/apps/web/package.json index 0f11e24b..b4a0561f 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -22,6 +22,7 @@ "@trpc/next": "^10.26.0", "@trpc/react-query": "^10.26.0", "@trpc/server": "^10.26.0", + "@vercel/analytics": "^1.2.2", "alchemy-sdk": "^2.8.3", "clsx": "^2.1.0", "design-system": "workspace:*", diff --git a/apps/web/public/medias/bridge_thumbnail.png b/apps/web/public/medias/bridge_thumbnail.png new file mode 100644 index 00000000..d47ad6ea Binary files /dev/null and b/apps/web/public/medias/bridge_thumbnail.png differ diff --git a/apps/web/src/app/(routes)/layout.tsx b/apps/web/src/app/(routes)/layout.tsx index 75c9f968..da3d860b 100644 --- a/apps/web/src/app/(routes)/layout.tsx +++ b/apps/web/src/app/(routes)/layout.tsx @@ -1,38 +1,33 @@ -"use client"; - +import { Analytics } from "@vercel/analytics/react"; import clsx from "clsx"; -// import { type Metadata } from "next"; +import { type Metadata } from "next"; import localFont from "next/font/local"; +import { type PropsWithChildren } from "react"; import "~/styles/globals.css"; -import { api } from "~/utils/api"; -import Header from "../_components/Header"; -import MobilePlaceholder from "../_components/MobilePlaceholder"; -import useCurrentChain from "../_hooks/useCurrentChain"; -import Providers from "./providers"; +import RootLayoutContainer from "./root-layout-container"; -// export const metadata: Metadata = { -// description: "", -// // openGraph: { -// // description: -// // "", -// // images: [""], -// // title: "ArkProject", -// // type: "website", -// // url: "https://www.arkproject.dev", -// // }, -// title: "ArkProject Bridge", -// // twitter: { -// // card: "summary_large_image", -// // creator: "@ArkProjectNFTs", -// // description: -// // "", -// // images: [""], -// // site: "@ArkProjectNFTs", -// // title: "ArkProject", -// // }, -// }; +export const metadata: Metadata = { + description: "Start moving your Everai on Starknet", + metadataBase: new URL("https://bridge.arkproject.dev"), + openGraph: { + description: "Start moving your Everai on Starknet", + images: ["https://bridge.arkproject.dev/medias/bridge_thumbnail.png"], + title: "ArkProject", + type: "website", + url: "https://bridge.arkproject.dev", + }, + title: "ArkProject Bridge", + twitter: { + card: "summary_large_image", + creator: "@ArkProjectNFTs", + description: "Start moving your Everai on Starknet", + images: ["https://bridge.arkproject.dev/medias/bridge_thumbnail.png"], + site: "@ArkProjectNFTs", + title: "ArkProject", + }, +}; const arkProjectFont = localFont({ src: [ @@ -91,9 +86,7 @@ const styreneAFont = localFont({ variable: "--font-styrene-a", }); -function RootLayout({ children }: { children: React.ReactNode }) { - const { targetChain } = useCurrentChain(); - +function RootLayout({ children }: PropsWithChildren) { return ( is updated before page load by next-themes suppressHydrationWarning > - - -
-
{children}
- -
- -
- + {children} + ); } -export default api.withTRPC(RootLayout); +export default RootLayout; diff --git a/apps/web/src/app/(routes)/lounge/_components/CongratsModal.tsx b/apps/web/src/app/(routes)/lounge/_components/CongratsModal.tsx index fb823e29..6fa257a6 100644 --- a/apps/web/src/app/(routes)/lounge/_components/CongratsModal.tsx +++ b/apps/web/src/app/(routes)/lounge/_components/CongratsModal.tsx @@ -220,7 +220,7 @@ export default function CongratsModal({ isFromTransfer }: CongratsModalProps) { diff --git a/apps/web/src/app/(routes)/lounge/_components/MarketplacesList.tsx b/apps/web/src/app/(routes)/lounge/_components/MarketplacesList.tsx index 18412062..7336834c 100644 --- a/apps/web/src/app/(routes)/lounge/_components/MarketplacesList.tsx +++ b/apps/web/src/app/(routes)/lounge/_components/MarketplacesList.tsx @@ -15,6 +15,8 @@ export default function MarketplacesList() { Element Unframed Pyramid Flex Ventory
- - {getDisplayedDate(arrivalTimestamp)} - + {arrivalTimestamp !== undefined && ( + + {getDisplayedDate(arrivalTimestamp)} + + )} + {status === "deposit_initiated_l1" ? ( + + Transfer can take few minutes + + ) : status === "deposit_initiated_l2" ? ( + + Transfer can take up to 4 hours + + ) : null}
{arrivalChain === "Ethereum" ? ( ) : ( <> - + - + + +
+
{children}
+ +
+ +
+ + ); +} + +const Component = api.withTRPC( + RootLayoutContainer +) as React.FC; + +export default Component; diff --git a/apps/web/src/utils/api.ts b/apps/web/src/utils/api.ts index c1ca3d6d..571e384e 100644 --- a/apps/web/src/utils/api.ts +++ b/apps/web/src/utils/api.ts @@ -1,3 +1,4 @@ +"use client"; /** * This is the client-side entrypoint for your tRPC API. It is used to create the `api` object which * contains the Next.js App-wrapper, as well as your type-safe React Query hooks. diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c0e9e4d2..4e7c317e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -59,13 +59,16 @@ importers: version: 10.26.0(@trpc/server@10.26.0) '@trpc/next': specifier: ^10.26.0 - version: 10.26.0(@tanstack/react-query@4.29.7)(@trpc/client@10.26.0)(@trpc/react-query@10.26.0)(@trpc/server@10.26.0)(next@13.4.2)(react-dom@18.2.0)(react@18.2.0) + version: 10.45.2(@tanstack/react-query@4.29.7)(@trpc/client@10.26.0)(@trpc/react-query@10.26.0)(@trpc/server@10.26.0)(next@13.4.2)(react-dom@18.2.0)(react@18.2.0) '@trpc/react-query': specifier: ^10.26.0 version: 10.26.0(@tanstack/react-query@4.29.7)(@trpc/client@10.26.0)(@trpc/server@10.26.0)(react-dom@18.2.0)(react@18.2.0) '@trpc/server': specifier: ^10.26.0 version: 10.26.0 + '@vercel/analytics': + specifier: ^1.2.2 + version: 1.2.2(next@13.4.2)(react@18.2.0) alchemy-sdk: specifier: ^2.8.3 version: 2.8.3 @@ -4071,13 +4074,13 @@ packages: '@trpc/server': 10.26.0 dev: false - /@trpc/next@10.26.0(@tanstack/react-query@4.29.7)(@trpc/client@10.26.0)(@trpc/react-query@10.26.0)(@trpc/server@10.26.0)(next@13.4.2)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-p328crXBH6C228LKxjqbpDEXdLmy4+LdgsZuYK3oFMqaJEmCT22b+zcQ9IvQrcPfDxhKOpJym0QpuDNaWpG2qg==} + /@trpc/next@10.45.2(@tanstack/react-query@4.29.7)(@trpc/client@10.26.0)(@trpc/react-query@10.26.0)(@trpc/server@10.26.0)(next@13.4.2)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-RSORmfC+/nXdmRY1pQ0AalsVgSzwNAFbZLYHiTvPM5QQ8wmMEHilseCYMXpu0se/TbPt9zVR6Ka2d7O6zxKkXg==} peerDependencies: '@tanstack/react-query': ^4.18.0 - '@trpc/client': 10.26.0 - '@trpc/react-query': 10.26.0 - '@trpc/server': 10.26.0 + '@trpc/client': 10.45.2 + '@trpc/react-query': 10.45.2 + '@trpc/server': 10.45.2 next: '*' react: '>=16.8.0' react-dom: '>=16.8.0' @@ -4089,7 +4092,6 @@ packages: next: 13.4.2(@babel/core@7.23.9)(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - react-ssr-prepass: 1.5.0(react@18.2.0) dev: false /@trpc/react-query@10.26.0(@tanstack/react-query@4.29.7)(@trpc/client@10.26.0)(@trpc/server@10.26.0)(react-dom@18.2.0)(react@18.2.0): @@ -4498,6 +4500,22 @@ packages: /@ungap/structured-clone@1.2.0: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + /@vercel/analytics@1.2.2(next@13.4.2)(react@18.2.0): + resolution: {integrity: sha512-X0rctVWkQV1e5Y300ehVNqpOfSOufo7ieA5PIdna8yX/U7Vjz0GFsGf4qvAhxV02uQ2CVt7GYcrFfddXXK2Y4A==} + peerDependencies: + next: '>= 13' + react: ^18 || ^19 + peerDependenciesMeta: + next: + optional: true + react: + optional: true + dependencies: + next: 13.4.2(@babel/core@7.23.9)(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + server-only: 0.0.1 + dev: false + /@wagmi/connectors@4.1.12(@types/react@18.2.6)(@wagmi/core@2.6.3)(react-dom@18.2.0)(react-native@0.73.4)(react@18.2.0)(typescript@5.3.3)(viem@2.9.9)(zod@3.21.4): resolution: {integrity: sha512-zqCJMOwpi8ssFjndVxVh3iUMwzcA7dPCjswhcy4xZyy1jm/VvGYC3o1wotq/gTCqUrz0SPIMGimZm4S6865b8A==} peerDependencies: @@ -9877,14 +9895,6 @@ packages: react-is: 18.2.0 dev: false - /react-ssr-prepass@1.5.0(react@18.2.0): - resolution: {integrity: sha512-yFNHrlVEReVYKsLI5lF05tZoHveA5pGzjFbFJY/3pOqqjGOmMmqx83N4hIjN2n6E1AOa+eQEUxs3CgRnPmT0RQ==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - dependencies: - react: 18.2.0 - dev: false - /react-style-singleton@2.2.1(@types/react@18.2.6)(react@18.2.0): resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} engines: {node: '>=10'} @@ -10260,6 +10270,10 @@ packages: - supports-color dev: false + /server-only@0.0.1: + resolution: {integrity: sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA==} + dev: false + /set-blocking@2.0.0: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==}