From ea41d7eaa709da247d8515c99318516d915254a0 Mon Sep 17 00:00:00 2001 From: Goncalo-Marques <53789763+Goncalo-Marques@users.noreply.github.com> Date: Tue, 24 Dec 2024 12:00:13 +0000 Subject: [PATCH 01/42] feat: add p-4 to register and sign distribution pages --- web/src/routes/distribute/register.tsx | 2 +- web/src/routes/distribute/signin.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/web/src/routes/distribute/register.tsx b/web/src/routes/distribute/register.tsx index 03d2644..d6f7d27 100644 --- a/web/src/routes/distribute/register.tsx +++ b/web/src/routes/distribute/register.tsx @@ -130,7 +130,7 @@ function Component() {
-
+
diff --git a/web/src/routes/distribute/signin.tsx b/web/src/routes/distribute/signin.tsx index f732308..9899a30 100644 --- a/web/src/routes/distribute/signin.tsx +++ b/web/src/routes/distribute/signin.tsx @@ -98,7 +98,7 @@ function Component() {
-
+
From 8dcee3cb5f93da9df908ef5b08f64c0aa2030ec9 Mon Sep 17 00:00:00 2001 From: Goncalo-Marques <53789763+Goncalo-Marques@users.noreply.github.com> Date: Tue, 24 Dec 2024 12:21:31 +0000 Subject: [PATCH 02/42] fix: readd brightness on hover --- web/src/components/game.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/web/src/components/game.tsx b/web/src/components/game.tsx index fd55e9c..d3236b2 100644 --- a/web/src/components/game.tsx +++ b/web/src/components/game.tsx @@ -8,7 +8,8 @@ export function Game(props: { image: string; }) { return ( -
+ // TODO: Do we want this in the preview? +
Game cover Date: Tue, 24 Dec 2024 12:21:54 +0000 Subject: [PATCH 03/42] feat: remove redundant information --- .../distribute/_layout/games/$gameId.tsx | 25 ++++++------------- 1 file changed, 8 insertions(+), 17 deletions(-) diff --git a/web/src/routes/distribute/_layout/games/$gameId.tsx b/web/src/routes/distribute/_layout/games/$gameId.tsx index 420b960..4fbc470 100644 --- a/web/src/routes/distribute/_layout/games/$gameId.tsx +++ b/web/src/routes/distribute/_layout/games/$gameId.tsx @@ -7,13 +7,7 @@ import { ErrorPage } from "@/components/distribute/error"; import { GamePreview } from "@/components/distribute/games/game-preview"; import { Badge } from "@/components/ui/badge"; import { Button } from "@/components/ui/button"; -import { - Card, - CardContent, - CardDescription, - CardHeader, - CardTitle, -} from "@/components/ui/card"; +import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { Tooltip, TooltipContent, @@ -82,16 +76,13 @@ function Component() {
-
- {game.title} - - {game.isActive ? "Active" : "Inactive"} - -
- {game.publisher.name} + {game.title} + + {game.isActive ? "Active" : "Inactive"} +
{game.downloadMultimedia ? ( From 94150fb7d1dbf6eba6e8e370ba125a274f4e18fb Mon Sep 17 00:00:00 2001 From: Goncalo-Marques <53789763+Goncalo-Marques@users.noreply.github.com> Date: Tue, 24 Dec 2024 15:03:54 +0000 Subject: [PATCH 04/42] feat: add terms page --- web/src/routeTree.gen.ts | 654 ++++++++++++++++--------------- web/src/routes/_layout/terms.tsx | 142 +++++++ 2 files changed, 482 insertions(+), 314 deletions(-) create mode 100644 web/src/routes/_layout/terms.tsx diff --git a/web/src/routeTree.gen.ts b/web/src/routeTree.gen.ts index 7b6a18c..5f3a802 100644 --- a/web/src/routeTree.gen.ts +++ b/web/src/routeTree.gen.ts @@ -8,272 +8,286 @@ // This file is auto-generated by TanStack Router -import { createFileRoute } from "@tanstack/react-router"; +import { createFileRoute } from '@tanstack/react-router' // Import Routes -import { Route as rootRoute } from "./routes/__root"; -import { Route as LayoutImport } from "./routes/_layout"; -import { Route as LayoutIndexImport } from "./routes/_layout/index"; -import { Route as DistributeSigninImport } from "./routes/distribute/signin"; -import { Route as DistributeRegisterImport } from "./routes/distribute/register"; -import { Route as DistributeLayoutImport } from "./routes/distribute/_layout"; -import { Route as LayoutSigninImport } from "./routes/_layout/signin"; -import { Route as LayoutRegisterImport } from "./routes/_layout/register"; -import { Route as LayoutCartImport } from "./routes/_layout/cart"; -import { Route as LayoutBrowseImport } from "./routes/_layout/browse"; -import { Route as LayoutAccountImport } from "./routes/_layout/account"; -import { Route as DistributeLayoutIndexImport } from "./routes/distribute/_layout/index"; -import { Route as DistributeLayoutAccountImport } from "./routes/distribute/_layout/account"; -import { Route as LayoutGamesGameIdImport } from "./routes/_layout/games/$gameId"; -import { Route as DistributeLayoutGamesIndexImport } from "./routes/distribute/_layout/games/index"; -import { Route as DistributeLayoutGamesAddImport } from "./routes/distribute/_layout/games/add"; -import { Route as DistributeLayoutGamesGameIdImport } from "./routes/distribute/_layout/games/$gameId"; -import { Route as DistributeLayoutGamesGameIdEditImport } from "./routes/distribute/_layout/games_/$gameId/edit"; +import { Route as rootRoute } from './routes/__root' +import { Route as LayoutImport } from './routes/_layout' +import { Route as LayoutIndexImport } from './routes/_layout/index' +import { Route as DistributeSigninImport } from './routes/distribute/signin' +import { Route as DistributeRegisterImport } from './routes/distribute/register' +import { Route as DistributeLayoutImport } from './routes/distribute/_layout' +import { Route as LayoutTermsImport } from './routes/_layout/terms' +import { Route as LayoutSigninImport } from './routes/_layout/signin' +import { Route as LayoutRegisterImport } from './routes/_layout/register' +import { Route as LayoutCartImport } from './routes/_layout/cart' +import { Route as LayoutBrowseImport } from './routes/_layout/browse' +import { Route as LayoutAccountImport } from './routes/_layout/account' +import { Route as DistributeLayoutIndexImport } from './routes/distribute/_layout/index' +import { Route as DistributeLayoutAccountImport } from './routes/distribute/_layout/account' +import { Route as LayoutGamesGameIdImport } from './routes/_layout/games/$gameId' +import { Route as DistributeLayoutGamesIndexImport } from './routes/distribute/_layout/games/index' +import { Route as DistributeLayoutGamesAddImport } from './routes/distribute/_layout/games/add' +import { Route as DistributeLayoutGamesGameIdImport } from './routes/distribute/_layout/games/$gameId' +import { Route as DistributeLayoutGamesGameIdEditImport } from './routes/distribute/_layout/games_/$gameId/edit' // Create Virtual Routes -const DistributeImport = createFileRoute("/distribute")(); +const DistributeImport = createFileRoute('/distribute')() // Create/Update Routes const DistributeRoute = DistributeImport.update({ - path: "/distribute", + path: '/distribute', getParentRoute: () => rootRoute, -} as any); +} as any) const LayoutRoute = LayoutImport.update({ - id: "/_layout", + id: '/_layout', getParentRoute: () => rootRoute, -} as any); +} as any) const LayoutIndexRoute = LayoutIndexImport.update({ - path: "/", + path: '/', getParentRoute: () => LayoutRoute, -} as any); +} as any) const DistributeSigninRoute = DistributeSigninImport.update({ - path: "/signin", + path: '/signin', getParentRoute: () => DistributeRoute, -} as any); +} as any) const DistributeRegisterRoute = DistributeRegisterImport.update({ - path: "/register", + path: '/register', getParentRoute: () => DistributeRoute, -} as any); +} as any) const DistributeLayoutRoute = DistributeLayoutImport.update({ - id: "/_layout", + id: '/_layout', getParentRoute: () => DistributeRoute, -} as any); +} as any) + +const LayoutTermsRoute = LayoutTermsImport.update({ + path: '/terms', + getParentRoute: () => LayoutRoute, +} as any) const LayoutSigninRoute = LayoutSigninImport.update({ - path: "/signin", + path: '/signin', getParentRoute: () => LayoutRoute, -} as any); +} as any) const LayoutRegisterRoute = LayoutRegisterImport.update({ - path: "/register", + path: '/register', getParentRoute: () => LayoutRoute, -} as any); +} as any) const LayoutCartRoute = LayoutCartImport.update({ - path: "/cart", + path: '/cart', getParentRoute: () => LayoutRoute, -} as any); +} as any) const LayoutBrowseRoute = LayoutBrowseImport.update({ - path: "/browse", + path: '/browse', getParentRoute: () => LayoutRoute, -} as any); +} as any) const LayoutAccountRoute = LayoutAccountImport.update({ - path: "/account", + path: '/account', getParentRoute: () => LayoutRoute, -} as any); +} as any) const DistributeLayoutIndexRoute = DistributeLayoutIndexImport.update({ - path: "/", + path: '/', getParentRoute: () => DistributeLayoutRoute, -} as any); +} as any) const DistributeLayoutAccountRoute = DistributeLayoutAccountImport.update({ - path: "/account", + path: '/account', getParentRoute: () => DistributeLayoutRoute, -} as any); +} as any) const LayoutGamesGameIdRoute = LayoutGamesGameIdImport.update({ - path: "/games/$gameId", + path: '/games/$gameId', getParentRoute: () => LayoutRoute, -} as any); +} as any) const DistributeLayoutGamesIndexRoute = DistributeLayoutGamesIndexImport.update( { - path: "/games/", + path: '/games/', getParentRoute: () => DistributeLayoutRoute, } as any, -); +) const DistributeLayoutGamesAddRoute = DistributeLayoutGamesAddImport.update({ - path: "/games/add", + path: '/games/add', getParentRoute: () => DistributeLayoutRoute, -} as any); +} as any) const DistributeLayoutGamesGameIdRoute = DistributeLayoutGamesGameIdImport.update({ - path: "/games/$gameId", + path: '/games/$gameId', getParentRoute: () => DistributeLayoutRoute, - } as any); + } as any) const DistributeLayoutGamesGameIdEditRoute = DistributeLayoutGamesGameIdEditImport.update({ - path: "/games/$gameId/edit", + path: '/games/$gameId/edit', getParentRoute: () => DistributeLayoutRoute, - } as any); + } as any) // Populate the FileRoutesByPath interface -declare module "@tanstack/react-router" { +declare module '@tanstack/react-router' { interface FileRoutesByPath { - "/_layout": { - id: "/_layout"; - path: ""; - fullPath: ""; - preLoaderRoute: typeof LayoutImport; - parentRoute: typeof rootRoute; - }; - "/_layout/account": { - id: "/_layout/account"; - path: "/account"; - fullPath: "/account"; - preLoaderRoute: typeof LayoutAccountImport; - parentRoute: typeof LayoutImport; - }; - "/_layout/browse": { - id: "/_layout/browse"; - path: "/browse"; - fullPath: "/browse"; - preLoaderRoute: typeof LayoutBrowseImport; - parentRoute: typeof LayoutImport; - }; - "/_layout/cart": { - id: "/_layout/cart"; - path: "/cart"; - fullPath: "/cart"; - preLoaderRoute: typeof LayoutCartImport; - parentRoute: typeof LayoutImport; - }; - "/_layout/register": { - id: "/_layout/register"; - path: "/register"; - fullPath: "/register"; - preLoaderRoute: typeof LayoutRegisterImport; - parentRoute: typeof LayoutImport; - }; - "/_layout/signin": { - id: "/_layout/signin"; - path: "/signin"; - fullPath: "/signin"; - preLoaderRoute: typeof LayoutSigninImport; - parentRoute: typeof LayoutImport; - }; - "/distribute": { - id: "/distribute"; - path: "/distribute"; - fullPath: "/distribute"; - preLoaderRoute: typeof DistributeImport; - parentRoute: typeof rootRoute; - }; - "/distribute/_layout": { - id: "/distribute/_layout"; - path: "/distribute"; - fullPath: "/distribute"; - preLoaderRoute: typeof DistributeLayoutImport; - parentRoute: typeof DistributeRoute; - }; - "/distribute/register": { - id: "/distribute/register"; - path: "/register"; - fullPath: "/distribute/register"; - preLoaderRoute: typeof DistributeRegisterImport; - parentRoute: typeof DistributeImport; - }; - "/distribute/signin": { - id: "/distribute/signin"; - path: "/signin"; - fullPath: "/distribute/signin"; - preLoaderRoute: typeof DistributeSigninImport; - parentRoute: typeof DistributeImport; - }; - "/_layout/": { - id: "/_layout/"; - path: "/"; - fullPath: "/"; - preLoaderRoute: typeof LayoutIndexImport; - parentRoute: typeof LayoutImport; - }; - "/_layout/games/$gameId": { - id: "/_layout/games/$gameId"; - path: "/games/$gameId"; - fullPath: "/games/$gameId"; - preLoaderRoute: typeof LayoutGamesGameIdImport; - parentRoute: typeof LayoutImport; - }; - "/distribute/_layout/account": { - id: "/distribute/_layout/account"; - path: "/account"; - fullPath: "/distribute/account"; - preLoaderRoute: typeof DistributeLayoutAccountImport; - parentRoute: typeof DistributeLayoutImport; - }; - "/distribute/_layout/": { - id: "/distribute/_layout/"; - path: "/"; - fullPath: "/distribute/"; - preLoaderRoute: typeof DistributeLayoutIndexImport; - parentRoute: typeof DistributeLayoutImport; - }; - "/distribute/_layout/games/$gameId": { - id: "/distribute/_layout/games/$gameId"; - path: "/games/$gameId"; - fullPath: "/distribute/games/$gameId"; - preLoaderRoute: typeof DistributeLayoutGamesGameIdImport; - parentRoute: typeof DistributeLayoutImport; - }; - "/distribute/_layout/games/add": { - id: "/distribute/_layout/games/add"; - path: "/games/add"; - fullPath: "/distribute/games/add"; - preLoaderRoute: typeof DistributeLayoutGamesAddImport; - parentRoute: typeof DistributeLayoutImport; - }; - "/distribute/_layout/games/": { - id: "/distribute/_layout/games/"; - path: "/games"; - fullPath: "/distribute/games"; - preLoaderRoute: typeof DistributeLayoutGamesIndexImport; - parentRoute: typeof DistributeLayoutImport; - }; - "/distribute/_layout/games/$gameId/edit": { - id: "/distribute/_layout/games/$gameId/edit"; - path: "/games/$gameId/edit"; - fullPath: "/distribute/games/$gameId/edit"; - preLoaderRoute: typeof DistributeLayoutGamesGameIdEditImport; - parentRoute: typeof DistributeLayoutImport; - }; + '/_layout': { + id: '/_layout' + path: '' + fullPath: '' + preLoaderRoute: typeof LayoutImport + parentRoute: typeof rootRoute + } + '/_layout/account': { + id: '/_layout/account' + path: '/account' + fullPath: '/account' + preLoaderRoute: typeof LayoutAccountImport + parentRoute: typeof LayoutImport + } + '/_layout/browse': { + id: '/_layout/browse' + path: '/browse' + fullPath: '/browse' + preLoaderRoute: typeof LayoutBrowseImport + parentRoute: typeof LayoutImport + } + '/_layout/cart': { + id: '/_layout/cart' + path: '/cart' + fullPath: '/cart' + preLoaderRoute: typeof LayoutCartImport + parentRoute: typeof LayoutImport + } + '/_layout/register': { + id: '/_layout/register' + path: '/register' + fullPath: '/register' + preLoaderRoute: typeof LayoutRegisterImport + parentRoute: typeof LayoutImport + } + '/_layout/signin': { + id: '/_layout/signin' + path: '/signin' + fullPath: '/signin' + preLoaderRoute: typeof LayoutSigninImport + parentRoute: typeof LayoutImport + } + '/_layout/terms': { + id: '/_layout/terms' + path: '/terms' + fullPath: '/terms' + preLoaderRoute: typeof LayoutTermsImport + parentRoute: typeof LayoutImport + } + '/distribute': { + id: '/distribute' + path: '/distribute' + fullPath: '/distribute' + preLoaderRoute: typeof DistributeImport + parentRoute: typeof rootRoute + } + '/distribute/_layout': { + id: '/distribute/_layout' + path: '/distribute' + fullPath: '/distribute' + preLoaderRoute: typeof DistributeLayoutImport + parentRoute: typeof DistributeRoute + } + '/distribute/register': { + id: '/distribute/register' + path: '/register' + fullPath: '/distribute/register' + preLoaderRoute: typeof DistributeRegisterImport + parentRoute: typeof DistributeImport + } + '/distribute/signin': { + id: '/distribute/signin' + path: '/signin' + fullPath: '/distribute/signin' + preLoaderRoute: typeof DistributeSigninImport + parentRoute: typeof DistributeImport + } + '/_layout/': { + id: '/_layout/' + path: '/' + fullPath: '/' + preLoaderRoute: typeof LayoutIndexImport + parentRoute: typeof LayoutImport + } + '/_layout/games/$gameId': { + id: '/_layout/games/$gameId' + path: '/games/$gameId' + fullPath: '/games/$gameId' + preLoaderRoute: typeof LayoutGamesGameIdImport + parentRoute: typeof LayoutImport + } + '/distribute/_layout/account': { + id: '/distribute/_layout/account' + path: '/account' + fullPath: '/distribute/account' + preLoaderRoute: typeof DistributeLayoutAccountImport + parentRoute: typeof DistributeLayoutImport + } + '/distribute/_layout/': { + id: '/distribute/_layout/' + path: '/' + fullPath: '/distribute/' + preLoaderRoute: typeof DistributeLayoutIndexImport + parentRoute: typeof DistributeLayoutImport + } + '/distribute/_layout/games/$gameId': { + id: '/distribute/_layout/games/$gameId' + path: '/games/$gameId' + fullPath: '/distribute/games/$gameId' + preLoaderRoute: typeof DistributeLayoutGamesGameIdImport + parentRoute: typeof DistributeLayoutImport + } + '/distribute/_layout/games/add': { + id: '/distribute/_layout/games/add' + path: '/games/add' + fullPath: '/distribute/games/add' + preLoaderRoute: typeof DistributeLayoutGamesAddImport + parentRoute: typeof DistributeLayoutImport + } + '/distribute/_layout/games/': { + id: '/distribute/_layout/games/' + path: '/games' + fullPath: '/distribute/games' + preLoaderRoute: typeof DistributeLayoutGamesIndexImport + parentRoute: typeof DistributeLayoutImport + } + '/distribute/_layout/games/$gameId/edit': { + id: '/distribute/_layout/games/$gameId/edit' + path: '/games/$gameId/edit' + fullPath: '/distribute/games/$gameId/edit' + preLoaderRoute: typeof DistributeLayoutGamesGameIdEditImport + parentRoute: typeof DistributeLayoutImport + } } } // Create and export the route tree interface LayoutRouteChildren { - LayoutAccountRoute: typeof LayoutAccountRoute; - LayoutBrowseRoute: typeof LayoutBrowseRoute; - LayoutCartRoute: typeof LayoutCartRoute; - LayoutRegisterRoute: typeof LayoutRegisterRoute; - LayoutSigninRoute: typeof LayoutSigninRoute; - LayoutIndexRoute: typeof LayoutIndexRoute; - LayoutGamesGameIdRoute: typeof LayoutGamesGameIdRoute; + LayoutAccountRoute: typeof LayoutAccountRoute + LayoutBrowseRoute: typeof LayoutBrowseRoute + LayoutCartRoute: typeof LayoutCartRoute + LayoutRegisterRoute: typeof LayoutRegisterRoute + LayoutSigninRoute: typeof LayoutSigninRoute + LayoutTermsRoute: typeof LayoutTermsRoute + LayoutIndexRoute: typeof LayoutIndexRoute + LayoutGamesGameIdRoute: typeof LayoutGamesGameIdRoute } const LayoutRouteChildren: LayoutRouteChildren = { @@ -282,20 +296,21 @@ const LayoutRouteChildren: LayoutRouteChildren = { LayoutCartRoute: LayoutCartRoute, LayoutRegisterRoute: LayoutRegisterRoute, LayoutSigninRoute: LayoutSigninRoute, + LayoutTermsRoute: LayoutTermsRoute, LayoutIndexRoute: LayoutIndexRoute, LayoutGamesGameIdRoute: LayoutGamesGameIdRoute, -}; +} const LayoutRouteWithChildren = - LayoutRoute._addFileChildren(LayoutRouteChildren); + LayoutRoute._addFileChildren(LayoutRouteChildren) interface DistributeLayoutRouteChildren { - DistributeLayoutAccountRoute: typeof DistributeLayoutAccountRoute; - DistributeLayoutIndexRoute: typeof DistributeLayoutIndexRoute; - DistributeLayoutGamesGameIdRoute: typeof DistributeLayoutGamesGameIdRoute; - DistributeLayoutGamesAddRoute: typeof DistributeLayoutGamesAddRoute; - DistributeLayoutGamesIndexRoute: typeof DistributeLayoutGamesIndexRoute; - DistributeLayoutGamesGameIdEditRoute: typeof DistributeLayoutGamesGameIdEditRoute; + DistributeLayoutAccountRoute: typeof DistributeLayoutAccountRoute + DistributeLayoutIndexRoute: typeof DistributeLayoutIndexRoute + DistributeLayoutGamesGameIdRoute: typeof DistributeLayoutGamesGameIdRoute + DistributeLayoutGamesAddRoute: typeof DistributeLayoutGamesAddRoute + DistributeLayoutGamesIndexRoute: typeof DistributeLayoutGamesIndexRoute + DistributeLayoutGamesGameIdEditRoute: typeof DistributeLayoutGamesGameIdEditRoute } const DistributeLayoutRouteChildren: DistributeLayoutRouteChildren = { @@ -305,160 +320,166 @@ const DistributeLayoutRouteChildren: DistributeLayoutRouteChildren = { DistributeLayoutGamesAddRoute: DistributeLayoutGamesAddRoute, DistributeLayoutGamesIndexRoute: DistributeLayoutGamesIndexRoute, DistributeLayoutGamesGameIdEditRoute: DistributeLayoutGamesGameIdEditRoute, -}; +} const DistributeLayoutRouteWithChildren = - DistributeLayoutRoute._addFileChildren(DistributeLayoutRouteChildren); + DistributeLayoutRoute._addFileChildren(DistributeLayoutRouteChildren) interface DistributeRouteChildren { - DistributeLayoutRoute: typeof DistributeLayoutRouteWithChildren; - DistributeRegisterRoute: typeof DistributeRegisterRoute; - DistributeSigninRoute: typeof DistributeSigninRoute; + DistributeLayoutRoute: typeof DistributeLayoutRouteWithChildren + DistributeRegisterRoute: typeof DistributeRegisterRoute + DistributeSigninRoute: typeof DistributeSigninRoute } const DistributeRouteChildren: DistributeRouteChildren = { DistributeLayoutRoute: DistributeLayoutRouteWithChildren, DistributeRegisterRoute: DistributeRegisterRoute, DistributeSigninRoute: DistributeSigninRoute, -}; +} const DistributeRouteWithChildren = DistributeRoute._addFileChildren( DistributeRouteChildren, -); +) export interface FileRoutesByFullPath { - "": typeof LayoutRouteWithChildren; - "/account": typeof LayoutAccountRoute; - "/browse": typeof LayoutBrowseRoute; - "/cart": typeof LayoutCartRoute; - "/register": typeof LayoutRegisterRoute; - "/signin": typeof LayoutSigninRoute; - "/distribute": typeof DistributeLayoutRouteWithChildren; - "/distribute/register": typeof DistributeRegisterRoute; - "/distribute/signin": typeof DistributeSigninRoute; - "/": typeof LayoutIndexRoute; - "/games/$gameId": typeof LayoutGamesGameIdRoute; - "/distribute/account": typeof DistributeLayoutAccountRoute; - "/distribute/": typeof DistributeLayoutIndexRoute; - "/distribute/games/$gameId": typeof DistributeLayoutGamesGameIdRoute; - "/distribute/games/add": typeof DistributeLayoutGamesAddRoute; - "/distribute/games": typeof DistributeLayoutGamesIndexRoute; - "/distribute/games/$gameId/edit": typeof DistributeLayoutGamesGameIdEditRoute; + '': typeof LayoutRouteWithChildren + '/account': typeof LayoutAccountRoute + '/browse': typeof LayoutBrowseRoute + '/cart': typeof LayoutCartRoute + '/register': typeof LayoutRegisterRoute + '/signin': typeof LayoutSigninRoute + '/terms': typeof LayoutTermsRoute + '/distribute': typeof DistributeLayoutRouteWithChildren + '/distribute/register': typeof DistributeRegisterRoute + '/distribute/signin': typeof DistributeSigninRoute + '/': typeof LayoutIndexRoute + '/games/$gameId': typeof LayoutGamesGameIdRoute + '/distribute/account': typeof DistributeLayoutAccountRoute + '/distribute/': typeof DistributeLayoutIndexRoute + '/distribute/games/$gameId': typeof DistributeLayoutGamesGameIdRoute + '/distribute/games/add': typeof DistributeLayoutGamesAddRoute + '/distribute/games': typeof DistributeLayoutGamesIndexRoute + '/distribute/games/$gameId/edit': typeof DistributeLayoutGamesGameIdEditRoute } export interface FileRoutesByTo { - "/account": typeof LayoutAccountRoute; - "/browse": typeof LayoutBrowseRoute; - "/cart": typeof LayoutCartRoute; - "/register": typeof LayoutRegisterRoute; - "/signin": typeof LayoutSigninRoute; - "/distribute": typeof DistributeLayoutIndexRoute; - "/distribute/register": typeof DistributeRegisterRoute; - "/distribute/signin": typeof DistributeSigninRoute; - "/": typeof LayoutIndexRoute; - "/games/$gameId": typeof LayoutGamesGameIdRoute; - "/distribute/account": typeof DistributeLayoutAccountRoute; - "/distribute/games/$gameId": typeof DistributeLayoutGamesGameIdRoute; - "/distribute/games/add": typeof DistributeLayoutGamesAddRoute; - "/distribute/games": typeof DistributeLayoutGamesIndexRoute; - "/distribute/games/$gameId/edit": typeof DistributeLayoutGamesGameIdEditRoute; + '/account': typeof LayoutAccountRoute + '/browse': typeof LayoutBrowseRoute + '/cart': typeof LayoutCartRoute + '/register': typeof LayoutRegisterRoute + '/signin': typeof LayoutSigninRoute + '/terms': typeof LayoutTermsRoute + '/distribute': typeof DistributeLayoutIndexRoute + '/distribute/register': typeof DistributeRegisterRoute + '/distribute/signin': typeof DistributeSigninRoute + '/': typeof LayoutIndexRoute + '/games/$gameId': typeof LayoutGamesGameIdRoute + '/distribute/account': typeof DistributeLayoutAccountRoute + '/distribute/games/$gameId': typeof DistributeLayoutGamesGameIdRoute + '/distribute/games/add': typeof DistributeLayoutGamesAddRoute + '/distribute/games': typeof DistributeLayoutGamesIndexRoute + '/distribute/games/$gameId/edit': typeof DistributeLayoutGamesGameIdEditRoute } export interface FileRoutesById { - __root__: typeof rootRoute; - "/_layout": typeof LayoutRouteWithChildren; - "/_layout/account": typeof LayoutAccountRoute; - "/_layout/browse": typeof LayoutBrowseRoute; - "/_layout/cart": typeof LayoutCartRoute; - "/_layout/register": typeof LayoutRegisterRoute; - "/_layout/signin": typeof LayoutSigninRoute; - "/distribute": typeof DistributeRouteWithChildren; - "/distribute/_layout": typeof DistributeLayoutRouteWithChildren; - "/distribute/register": typeof DistributeRegisterRoute; - "/distribute/signin": typeof DistributeSigninRoute; - "/_layout/": typeof LayoutIndexRoute; - "/_layout/games/$gameId": typeof LayoutGamesGameIdRoute; - "/distribute/_layout/account": typeof DistributeLayoutAccountRoute; - "/distribute/_layout/": typeof DistributeLayoutIndexRoute; - "/distribute/_layout/games/$gameId": typeof DistributeLayoutGamesGameIdRoute; - "/distribute/_layout/games/add": typeof DistributeLayoutGamesAddRoute; - "/distribute/_layout/games/": typeof DistributeLayoutGamesIndexRoute; - "/distribute/_layout/games/$gameId/edit": typeof DistributeLayoutGamesGameIdEditRoute; + __root__: typeof rootRoute + '/_layout': typeof LayoutRouteWithChildren + '/_layout/account': typeof LayoutAccountRoute + '/_layout/browse': typeof LayoutBrowseRoute + '/_layout/cart': typeof LayoutCartRoute + '/_layout/register': typeof LayoutRegisterRoute + '/_layout/signin': typeof LayoutSigninRoute + '/_layout/terms': typeof LayoutTermsRoute + '/distribute': typeof DistributeRouteWithChildren + '/distribute/_layout': typeof DistributeLayoutRouteWithChildren + '/distribute/register': typeof DistributeRegisterRoute + '/distribute/signin': typeof DistributeSigninRoute + '/_layout/': typeof LayoutIndexRoute + '/_layout/games/$gameId': typeof LayoutGamesGameIdRoute + '/distribute/_layout/account': typeof DistributeLayoutAccountRoute + '/distribute/_layout/': typeof DistributeLayoutIndexRoute + '/distribute/_layout/games/$gameId': typeof DistributeLayoutGamesGameIdRoute + '/distribute/_layout/games/add': typeof DistributeLayoutGamesAddRoute + '/distribute/_layout/games/': typeof DistributeLayoutGamesIndexRoute + '/distribute/_layout/games/$gameId/edit': typeof DistributeLayoutGamesGameIdEditRoute } export interface FileRouteTypes { - fileRoutesByFullPath: FileRoutesByFullPath; + fileRoutesByFullPath: FileRoutesByFullPath fullPaths: - | "" - | "/account" - | "/browse" - | "/cart" - | "/register" - | "/signin" - | "/distribute" - | "/distribute/register" - | "/distribute/signin" - | "/" - | "/games/$gameId" - | "/distribute/account" - | "/distribute/" - | "/distribute/games/$gameId" - | "/distribute/games/add" - | "/distribute/games" - | "/distribute/games/$gameId/edit"; - fileRoutesByTo: FileRoutesByTo; + | '' + | '/account' + | '/browse' + | '/cart' + | '/register' + | '/signin' + | '/terms' + | '/distribute' + | '/distribute/register' + | '/distribute/signin' + | '/' + | '/games/$gameId' + | '/distribute/account' + | '/distribute/' + | '/distribute/games/$gameId' + | '/distribute/games/add' + | '/distribute/games' + | '/distribute/games/$gameId/edit' + fileRoutesByTo: FileRoutesByTo to: - | "/account" - | "/browse" - | "/cart" - | "/register" - | "/signin" - | "/distribute" - | "/distribute/register" - | "/distribute/signin" - | "/" - | "/games/$gameId" - | "/distribute/account" - | "/distribute/games/$gameId" - | "/distribute/games/add" - | "/distribute/games" - | "/distribute/games/$gameId/edit"; + | '/account' + | '/browse' + | '/cart' + | '/register' + | '/signin' + | '/terms' + | '/distribute' + | '/distribute/register' + | '/distribute/signin' + | '/' + | '/games/$gameId' + | '/distribute/account' + | '/distribute/games/$gameId' + | '/distribute/games/add' + | '/distribute/games' + | '/distribute/games/$gameId/edit' id: - | "__root__" - | "/_layout" - | "/_layout/account" - | "/_layout/browse" - | "/_layout/cart" - | "/_layout/register" - | "/_layout/signin" - | "/distribute" - | "/distribute/_layout" - | "/distribute/register" - | "/distribute/signin" - | "/_layout/" - | "/_layout/games/$gameId" - | "/distribute/_layout/account" - | "/distribute/_layout/" - | "/distribute/_layout/games/$gameId" - | "/distribute/_layout/games/add" - | "/distribute/_layout/games/" - | "/distribute/_layout/games/$gameId/edit"; - fileRoutesById: FileRoutesById; + | '__root__' + | '/_layout' + | '/_layout/account' + | '/_layout/browse' + | '/_layout/cart' + | '/_layout/register' + | '/_layout/signin' + | '/_layout/terms' + | '/distribute' + | '/distribute/_layout' + | '/distribute/register' + | '/distribute/signin' + | '/_layout/' + | '/_layout/games/$gameId' + | '/distribute/_layout/account' + | '/distribute/_layout/' + | '/distribute/_layout/games/$gameId' + | '/distribute/_layout/games/add' + | '/distribute/_layout/games/' + | '/distribute/_layout/games/$gameId/edit' + fileRoutesById: FileRoutesById } export interface RootRouteChildren { - LayoutRoute: typeof LayoutRouteWithChildren; - DistributeRoute: typeof DistributeRouteWithChildren; + LayoutRoute: typeof LayoutRouteWithChildren + DistributeRoute: typeof DistributeRouteWithChildren } const rootRouteChildren: RootRouteChildren = { LayoutRoute: LayoutRouteWithChildren, DistributeRoute: DistributeRouteWithChildren, -}; +} export const routeTree = rootRoute ._addFileChildren(rootRouteChildren) - ._addFileTypes(); + ._addFileTypes() /* prettier-ignore-end */ @@ -480,6 +501,7 @@ export const routeTree = rootRoute "/_layout/cart", "/_layout/register", "/_layout/signin", + "/_layout/terms", "/_layout/", "/_layout/games/$gameId" ] @@ -504,6 +526,10 @@ export const routeTree = rootRoute "filePath": "_layout/signin.tsx", "parent": "/_layout" }, + "/_layout/terms": { + "filePath": "_layout/terms.tsx", + "parent": "/_layout" + }, "/distribute": { "filePath": "distribute", "children": [ diff --git a/web/src/routes/_layout/terms.tsx b/web/src/routes/_layout/terms.tsx new file mode 100644 index 0000000..00ec233 --- /dev/null +++ b/web/src/routes/_layout/terms.tsx @@ -0,0 +1,142 @@ +import { createFileRoute } from "@tanstack/react-router"; + +export const Route = createFileRoute("/_layout/terms")({ + component: Component, +}); + +function Component() { + return ( +
+

Terms of Service

+

+ Effective Date: December 25, 2024 +

+

+ Welcome to GOOFR Gaming Store! These Terms of Service ("Terms") govern + your use of our platform and services. By accessing or using the + website, you agree to these Terms. If you do not agree, please refrain + from using our platform. +

+
+ +

1. Acceptance of Terms

+

+ By creating an account or using the platform, you acknowledge that you + have read, understood, and agree to be bound by these Terms, along with + our Privacy Policy. +

+ +

2. User Accounts

+
    +
  • + Eligibility: You must be at + least 16 years old to create an account and use the platform. +
  • +
  • + Accuracy: You agree to provide + accurate and up-to-date information during account registration. +
  • +
  • + Security: You are responsible + for maintaining the confidentiality of your account credentials and + for all activities conducted through your account. +
  • +
+ +

3. Use of the Platform

+
    +
  • + Permitted Use: The platform + allows users to explore, purchase, and download games, publish + content, and engage with community features. +
  • +
  • + Prohibited Activities: You + agree not to engage in any illegal, harmful, or abusive activities, + including but not limited to: +
      +
    • Uploading malicious software.
    • +
    • Violating intellectual property rights.
    • +
    • + Circumventing security measures or accessing restricted areas of + the platform. +
    • +
    +
  • +
+ +

+ 4. Purchases and Payments +

+

+ All purchases made on the platform are final and subject to our Refund + Policy. You are responsible for ensuring sufficient funds and adhering + to payment provider terms. +

+ +

+ 5. Content Ownership and Licensing +

+
    +
  • + User-Generated Content: By + uploading or submitting content (e.g., reviews, game publications), + you grant us a worldwide, royalty-free license to use, display, and + distribute your content as part of the platform. +
  • +
  • + Intellectual Property: All + platform assets, including design, code, and trademarks, are the + property of GOOFR or respective owners. Unauthorized use is + prohibited. +
  • +
+ +

6. Service Availability

+

+ We strive to ensure continuous access to the platform but do not + guarantee uninterrupted service. The platform may be updated, modified, + or discontinued without prior notice. +

+ +

+ 7. Limitation of Liability +

+

+ GOOFR is not responsible for any indirect, incidental, or consequential + damages arising from your use of the platform. This includes, but is not + limited to, data loss or financial loss. +

+ +

8. Termination

+

+ We reserve the right to terminate or suspend your account if you breach + these Terms or engage in prohibited activities. +

+ +

9. Amendments

+

+ These Terms may be updated periodically. Continued use of the platform + after changes constitutes acceptance of the new Terms. +

+ +

10. Governing Law

+

+ These Terms are governed by the laws of Portugal. Any disputes will be + resolved exclusively in the courts of Portugal. +

+ +

11. Contact Us

+

+ For any questions about these Terms, please contact us at{" "} + + help.goofrportugal@gmail.com + + . +

+
+ ); +} From 294d8ff8f1b7c9372355b2fc1d32292fe029d5b9 Mon Sep 17 00:00:00 2001 From: Goncalo-Marques <53789763+Goncalo-Marques@users.noreply.github.com> Date: Tue, 24 Dec 2024 15:55:08 +0000 Subject: [PATCH 05/42] refactor: rename terms --- web/src/routes/_layout/{terms.tsx => termsService.tsx} | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) rename web/src/routes/_layout/{terms.tsx => termsService.tsx} (97%) diff --git a/web/src/routes/_layout/terms.tsx b/web/src/routes/_layout/termsService.tsx similarity index 97% rename from web/src/routes/_layout/terms.tsx rename to web/src/routes/_layout/termsService.tsx index 00ec233..3c2cebc 100644 --- a/web/src/routes/_layout/terms.tsx +++ b/web/src/routes/_layout/termsService.tsx @@ -1,6 +1,6 @@ import { createFileRoute } from "@tanstack/react-router"; -export const Route = createFileRoute("/_layout/terms")({ +export const Route = createFileRoute("/_layout/termsService")({ component: Component, }); @@ -8,7 +8,7 @@ function Component() { return (

Terms of Service

-

+

Effective Date: December 25, 2024

@@ -54,7 +54,7 @@ function Component() { Prohibited Activities: You agree not to engage in any illegal, harmful, or abusive activities, including but not limited to: -

    +
    • Uploading malicious software.
    • Violating intellectual property rights.
    • From aa5e630fed3b80df3bbd1a00cc846e30d6029b47 Mon Sep 17 00:00:00 2001 From: Goncalo-Marques <53789763+Goncalo-Marques@users.noreply.github.com> Date: Tue, 24 Dec 2024 15:55:15 +0000 Subject: [PATCH 06/42] feat: add cookie policy --- web/src/routes/_layout/cookiePolicy.tsx | 67 +++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 web/src/routes/_layout/cookiePolicy.tsx diff --git a/web/src/routes/_layout/cookiePolicy.tsx b/web/src/routes/_layout/cookiePolicy.tsx new file mode 100644 index 0000000..e201ee5 --- /dev/null +++ b/web/src/routes/_layout/cookiePolicy.tsx @@ -0,0 +1,67 @@ +import { createFileRoute } from "@tanstack/react-router"; + +export const Route = createFileRoute("/_layout/cookiePolicy")({ + component: Component, +}); + +function Component() { + return ( +
      +

      Cookie Policy

      +

      + Effective Date: December 25, 2024 +

      +

      + Welcome to our Cookie Policy. We use cookies solely to enhance your + experience on our platform by maintaining user authentication. This + policy explains what cookies are, how we use them, and how you can + manage them. +

      +
      + +

      What Are Cookies?

      +

      + Cookies are small files stored on your device (computer or mobile) when + you visit a website. They allow websites to remember your preferences + and maintain specific functionalities, such as login sessions. +

      + +

      How We Use Cookies

      +

      We only use cookies to:

      +
        +
      • + Authentication: Ensure that + logged-in users can securely access their accounts and navigate the + website without needing to log in repeatedly. +
      • +
      + +

      Managing Cookies

      +

      + As we only use essential cookies for authentication, their removal or + blocking may affect your ability to use our website effectively. + However, you can manage or delete cookies through your browser settings. +

      + +

      Changes to This Policy

      +

      + We may update this policy from time to time. Changes will be posted on + this page with an updated effective date. We encourage you to review + this policy regularly. +

      + +

      Contact Us

      +

      + If you have any questions or concerns about this policy, please contact + us at{" "} + + help.goofrportugal@gmail.com + + . +

      +
      + ); +} From 652117522d250b4b1cb1f8c09e8a381140552935 Mon Sep 17 00:00:00 2001 From: Goncalo-Marques <53789763+Goncalo-Marques@users.noreply.github.com> Date: Tue, 24 Dec 2024 15:55:24 +0000 Subject: [PATCH 07/42] feat: add privacy policy --- web/src/routes/_layout/privacyPolicy.tsx | 106 +++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 web/src/routes/_layout/privacyPolicy.tsx diff --git a/web/src/routes/_layout/privacyPolicy.tsx b/web/src/routes/_layout/privacyPolicy.tsx new file mode 100644 index 0000000..71cf774 --- /dev/null +++ b/web/src/routes/_layout/privacyPolicy.tsx @@ -0,0 +1,106 @@ +import { createFileRoute } from "@tanstack/react-router"; + +export const Route = createFileRoute("/_layout/privacyPolicy")({ + component: Component, +}); + +function Component() { + return ( +
      +

      Privacy Policy

      +

      + Effective Date: December 25, 2024 +

      +

      + Welcome to our Privacy Policy. Your privacy is critically important to + us. This document outlines how we collect, use, and protect your + personal information while using our platform. +

      +
      + +

      Information We Collect

      +

      We may collect the following types of information:

      +
        +
      • + Personal Information: Such as + your name, email address, and payment details when you create an + account or make a purchase. +
      • +
      • + Usage Data: Including your + interactions with the platform, pages visited, and features used. +
      • +
      • + Technical Data: Such as IP + addresses, browser types, and device information. +
      • +
      + +

      + How We Use Your Information +

      +

      Your information is used for the following purposes:

      +
        +
      • To provide and improve our services.
      • +
      • To process transactions and manage your account.
      • +
      • To communicate with you about updates, promotions, and support.
      • +
      • To analyze and improve the performance of our platform.
      • +
      + +

      Sharing Your Information

      +

      + We do not sell or share your personal information with third parties, + except in the following cases: +

      +
        +
      • To comply with legal obligations.
      • +
      • + To trusted third-party service providers who assist in operating our + platform. +
      • +
      • + In connection with a business transaction, such as a merger or + acquisition. +
      • +
      + +

      Data Protection

      +

      + We implement security measures to protect your data, including + encryption, secure servers, and regular audits. However, no system is + entirely secure, and we cannot guarantee absolute security. +

      + +

      Your Rights

      +

      You have the right to:

      +
        +
      • Access, update, or delete your personal information.
      • +
      • Withdraw consent for data processing at any time.
      • +
      • + File a complaint with a data protection authority if you believe your + rights have been violated. +
      • +
      + +

      Changes to This Policy

      +

      + We may update this policy from time to time. Changes will be posted on + this page with an updated effective date. We encourage you to review + this policy regularly. +

      + +

      Contact Us

      +

      + If you have any questions or concerns about this policy, please contact + us at{" "} + + help.goofrportugal@gmail.com + + . +

      +
      + ); +} From c146373e081ac02ba2afbbbce706bcb014b144b8 Mon Sep 17 00:00:00 2001 From: Goncalo-Marques <53789763+Goncalo-Marques@users.noreply.github.com> Date: Tue, 24 Dec 2024 15:56:59 +0000 Subject: [PATCH 08/42] feat: update layout --- web/src/routeTree.gen.ts | 90 ++++++++++++++++++++++++++++++-------- web/src/routes/_layout.tsx | 30 ++++++++----- 2 files changed, 91 insertions(+), 29 deletions(-) diff --git a/web/src/routeTree.gen.ts b/web/src/routeTree.gen.ts index 5f3a802..b5288a7 100644 --- a/web/src/routeTree.gen.ts +++ b/web/src/routeTree.gen.ts @@ -18,9 +18,11 @@ import { Route as LayoutIndexImport } from './routes/_layout/index' import { Route as DistributeSigninImport } from './routes/distribute/signin' import { Route as DistributeRegisterImport } from './routes/distribute/register' import { Route as DistributeLayoutImport } from './routes/distribute/_layout' -import { Route as LayoutTermsImport } from './routes/_layout/terms' +import { Route as LayoutTermsServiceImport } from './routes/_layout/termsService' import { Route as LayoutSigninImport } from './routes/_layout/signin' import { Route as LayoutRegisterImport } from './routes/_layout/register' +import { Route as LayoutPrivacyPolicyImport } from './routes/_layout/privacyPolicy' +import { Route as LayoutCookiePolicyImport } from './routes/_layout/cookiePolicy' import { Route as LayoutCartImport } from './routes/_layout/cart' import { Route as LayoutBrowseImport } from './routes/_layout/browse' import { Route as LayoutAccountImport } from './routes/_layout/account' @@ -68,8 +70,8 @@ const DistributeLayoutRoute = DistributeLayoutImport.update({ getParentRoute: () => DistributeRoute, } as any) -const LayoutTermsRoute = LayoutTermsImport.update({ - path: '/terms', +const LayoutTermsServiceRoute = LayoutTermsServiceImport.update({ + path: '/termsService', getParentRoute: () => LayoutRoute, } as any) @@ -83,6 +85,16 @@ const LayoutRegisterRoute = LayoutRegisterImport.update({ getParentRoute: () => LayoutRoute, } as any) +const LayoutPrivacyPolicyRoute = LayoutPrivacyPolicyImport.update({ + path: '/privacyPolicy', + getParentRoute: () => LayoutRoute, +} as any) + +const LayoutCookiePolicyRoute = LayoutCookiePolicyImport.update({ + path: '/cookiePolicy', + getParentRoute: () => LayoutRoute, +} as any) + const LayoutCartRoute = LayoutCartImport.update({ path: '/cart', getParentRoute: () => LayoutRoute, @@ -169,6 +181,20 @@ declare module '@tanstack/react-router' { preLoaderRoute: typeof LayoutCartImport parentRoute: typeof LayoutImport } + '/_layout/cookiePolicy': { + id: '/_layout/cookiePolicy' + path: '/cookiePolicy' + fullPath: '/cookiePolicy' + preLoaderRoute: typeof LayoutCookiePolicyImport + parentRoute: typeof LayoutImport + } + '/_layout/privacyPolicy': { + id: '/_layout/privacyPolicy' + path: '/privacyPolicy' + fullPath: '/privacyPolicy' + preLoaderRoute: typeof LayoutPrivacyPolicyImport + parentRoute: typeof LayoutImport + } '/_layout/register': { id: '/_layout/register' path: '/register' @@ -183,11 +209,11 @@ declare module '@tanstack/react-router' { preLoaderRoute: typeof LayoutSigninImport parentRoute: typeof LayoutImport } - '/_layout/terms': { - id: '/_layout/terms' - path: '/terms' - fullPath: '/terms' - preLoaderRoute: typeof LayoutTermsImport + '/_layout/termsService': { + id: '/_layout/termsService' + path: '/termsService' + fullPath: '/termsService' + preLoaderRoute: typeof LayoutTermsServiceImport parentRoute: typeof LayoutImport } '/distribute': { @@ -283,9 +309,11 @@ interface LayoutRouteChildren { LayoutAccountRoute: typeof LayoutAccountRoute LayoutBrowseRoute: typeof LayoutBrowseRoute LayoutCartRoute: typeof LayoutCartRoute + LayoutCookiePolicyRoute: typeof LayoutCookiePolicyRoute + LayoutPrivacyPolicyRoute: typeof LayoutPrivacyPolicyRoute LayoutRegisterRoute: typeof LayoutRegisterRoute LayoutSigninRoute: typeof LayoutSigninRoute - LayoutTermsRoute: typeof LayoutTermsRoute + LayoutTermsServiceRoute: typeof LayoutTermsServiceRoute LayoutIndexRoute: typeof LayoutIndexRoute LayoutGamesGameIdRoute: typeof LayoutGamesGameIdRoute } @@ -294,9 +322,11 @@ const LayoutRouteChildren: LayoutRouteChildren = { LayoutAccountRoute: LayoutAccountRoute, LayoutBrowseRoute: LayoutBrowseRoute, LayoutCartRoute: LayoutCartRoute, + LayoutCookiePolicyRoute: LayoutCookiePolicyRoute, + LayoutPrivacyPolicyRoute: LayoutPrivacyPolicyRoute, LayoutRegisterRoute: LayoutRegisterRoute, LayoutSigninRoute: LayoutSigninRoute, - LayoutTermsRoute: LayoutTermsRoute, + LayoutTermsServiceRoute: LayoutTermsServiceRoute, LayoutIndexRoute: LayoutIndexRoute, LayoutGamesGameIdRoute: LayoutGamesGameIdRoute, } @@ -346,9 +376,11 @@ export interface FileRoutesByFullPath { '/account': typeof LayoutAccountRoute '/browse': typeof LayoutBrowseRoute '/cart': typeof LayoutCartRoute + '/cookiePolicy': typeof LayoutCookiePolicyRoute + '/privacyPolicy': typeof LayoutPrivacyPolicyRoute '/register': typeof LayoutRegisterRoute '/signin': typeof LayoutSigninRoute - '/terms': typeof LayoutTermsRoute + '/termsService': typeof LayoutTermsServiceRoute '/distribute': typeof DistributeLayoutRouteWithChildren '/distribute/register': typeof DistributeRegisterRoute '/distribute/signin': typeof DistributeSigninRoute @@ -366,9 +398,11 @@ export interface FileRoutesByTo { '/account': typeof LayoutAccountRoute '/browse': typeof LayoutBrowseRoute '/cart': typeof LayoutCartRoute + '/cookiePolicy': typeof LayoutCookiePolicyRoute + '/privacyPolicy': typeof LayoutPrivacyPolicyRoute '/register': typeof LayoutRegisterRoute '/signin': typeof LayoutSigninRoute - '/terms': typeof LayoutTermsRoute + '/termsService': typeof LayoutTermsServiceRoute '/distribute': typeof DistributeLayoutIndexRoute '/distribute/register': typeof DistributeRegisterRoute '/distribute/signin': typeof DistributeSigninRoute @@ -387,9 +421,11 @@ export interface FileRoutesById { '/_layout/account': typeof LayoutAccountRoute '/_layout/browse': typeof LayoutBrowseRoute '/_layout/cart': typeof LayoutCartRoute + '/_layout/cookiePolicy': typeof LayoutCookiePolicyRoute + '/_layout/privacyPolicy': typeof LayoutPrivacyPolicyRoute '/_layout/register': typeof LayoutRegisterRoute '/_layout/signin': typeof LayoutSigninRoute - '/_layout/terms': typeof LayoutTermsRoute + '/_layout/termsService': typeof LayoutTermsServiceRoute '/distribute': typeof DistributeRouteWithChildren '/distribute/_layout': typeof DistributeLayoutRouteWithChildren '/distribute/register': typeof DistributeRegisterRoute @@ -411,9 +447,11 @@ export interface FileRouteTypes { | '/account' | '/browse' | '/cart' + | '/cookiePolicy' + | '/privacyPolicy' | '/register' | '/signin' - | '/terms' + | '/termsService' | '/distribute' | '/distribute/register' | '/distribute/signin' @@ -430,9 +468,11 @@ export interface FileRouteTypes { | '/account' | '/browse' | '/cart' + | '/cookiePolicy' + | '/privacyPolicy' | '/register' | '/signin' - | '/terms' + | '/termsService' | '/distribute' | '/distribute/register' | '/distribute/signin' @@ -449,9 +489,11 @@ export interface FileRouteTypes { | '/_layout/account' | '/_layout/browse' | '/_layout/cart' + | '/_layout/cookiePolicy' + | '/_layout/privacyPolicy' | '/_layout/register' | '/_layout/signin' - | '/_layout/terms' + | '/_layout/termsService' | '/distribute' | '/distribute/_layout' | '/distribute/register' @@ -499,9 +541,11 @@ export const routeTree = rootRoute "/_layout/account", "/_layout/browse", "/_layout/cart", + "/_layout/cookiePolicy", + "/_layout/privacyPolicy", "/_layout/register", "/_layout/signin", - "/_layout/terms", + "/_layout/termsService", "/_layout/", "/_layout/games/$gameId" ] @@ -518,6 +562,14 @@ export const routeTree = rootRoute "filePath": "_layout/cart.tsx", "parent": "/_layout" }, + "/_layout/cookiePolicy": { + "filePath": "_layout/cookiePolicy.tsx", + "parent": "/_layout" + }, + "/_layout/privacyPolicy": { + "filePath": "_layout/privacyPolicy.tsx", + "parent": "/_layout" + }, "/_layout/register": { "filePath": "_layout/register.tsx", "parent": "/_layout" @@ -526,8 +578,8 @@ export const routeTree = rootRoute "filePath": "_layout/signin.tsx", "parent": "/_layout" }, - "/_layout/terms": { - "filePath": "_layout/terms.tsx", + "/_layout/termsService": { + "filePath": "_layout/termsService.tsx", "parent": "/_layout" }, "/distribute": { diff --git a/web/src/routes/_layout.tsx b/web/src/routes/_layout.tsx index 7f69c70..ede0524 100644 --- a/web/src/routes/_layout.tsx +++ b/web/src/routes/_layout.tsx @@ -192,29 +192,39 @@ function Component() {

      Legal

From e659b7cd71c3ac5e9c08935f8c73e46710758e87 Mon Sep 17 00:00:00 2001 From: Goncalo-Marques <53789763+Goncalo-Marques@users.noreply.github.com> Date: Tue, 24 Dec 2024 18:22:44 +0000 Subject: [PATCH 09/42] chore: remove todo --- web/src/components/game.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/web/src/components/game.tsx b/web/src/components/game.tsx index d3236b2..573aace 100644 --- a/web/src/components/game.tsx +++ b/web/src/components/game.tsx @@ -8,7 +8,6 @@ export function Game(props: { image: string; }) { return ( - // TODO: Do we want this in the preview?
Game cover Date: Tue, 24 Dec 2024 18:22:53 +0000 Subject: [PATCH 10/42] chore: add gdpr info --- web/src/routes/_layout/privacyPolicy.tsx | 56 +++++++++++++++++++----- web/src/routes/_layout/termsService.tsx | 42 ++++++++++++------ 2 files changed, 74 insertions(+), 24 deletions(-) diff --git a/web/src/routes/_layout/privacyPolicy.tsx b/web/src/routes/_layout/privacyPolicy.tsx index 71cf774..5ce2075 100644 --- a/web/src/routes/_layout/privacyPolicy.tsx +++ b/web/src/routes/_layout/privacyPolicy.tsx @@ -14,7 +14,9 @@ function Component() {

Welcome to our Privacy Policy. Your privacy is critically important to us. This document outlines how we collect, use, and protect your - personal information while using our platform. + personal information while using our platform. We process your personal + data in accordance with the General Data Protection Regulation (GDPR) + and other applicable data protection laws.


@@ -45,6 +47,23 @@ function Component() {
  • To process transactions and manage your account.
  • To communicate with you about updates, promotions, and support.
  • To analyze and improve the performance of our platform.
  • +
  • To comply with legal obligations.
  • + + +

    + Legal Basis for Processing +

    +

    We process your personal data under the following legal bases:

    +
      +
    • Your consent, where explicitly provided.
    • +
    • + To fulfill contractual obligations, such as processing your orders. +
    • +
    • To comply with legal and regulatory requirements.
    • +
    • + Legitimate interests, such as improving our services and ensuring + security. +

    Sharing Your Information

    @@ -56,7 +75,7 @@ function Component() {
  • To comply with legal obligations.
  • To trusted third-party service providers who assist in operating our - platform. + platform, under strict confidentiality agreements.
  • In connection with a business transaction, such as a merger or @@ -67,21 +86,36 @@ function Component() {

    Data Protection

    We implement security measures to protect your data, including - encryption, secure servers, and regular audits. However, no system is - entirely secure, and we cannot guarantee absolute security. + encryption, secure servers, and regular audits. While we strive to + ensure maximum security, no system can guarantee absolute protection.

    Your Rights

    -

    You have the right to:

    +

    As a data subject under GDPR, you have the following rights:

      -
    • Access, update, or delete your personal information.
    • -
    • Withdraw consent for data processing at any time.
    • - File a complaint with a data protection authority if you believe your - rights have been violated. + The right to access, update, or delete your personal information. +
    • +
    • The right to withdraw consent for data processing at any time.
    • +
    • + The right to restrict processing or object to certain data uses. +
    • +
    • + The right to data portability, enabling you to transfer your data to + another service. +
    • +
    • + The right to file a complaint with a data protection authority if you + believe your rights have been violated.
    +

    Data Retention

    +

    + We retain your personal data only for as long as necessary to fulfill + the purposes outlined in this policy or as required by law. +

    +

    Changes to This Policy

    We may update this policy from time to time. Changes will be posted on @@ -91,8 +125,8 @@ function Component() {

    Contact Us

    - If you have any questions or concerns about this policy, please contact - us at{" "} + If you have any questions or concerns about this policy, or if you wish + to exercise your rights, please contact us at{" "} By creating an account or using the platform, you acknowledge that you have read, understood, and agree to be bound by these Terms, along with - our Privacy Policy. + our Privacy Policy. We process your data in accordance with the General + Data Protection Regulation (GDPR) and other applicable data protection + laws.

    2. User Accounts

    @@ -43,7 +45,19 @@ function Component() {
  • -

    3. Use of the Platform

    +

    + 3. Data Collection and Usage +

    +

    + We collect and process personal data to provide and improve our + services. This includes data necessary for account creation, purchases, + and user interactions. For more details, please review our Privacy + Policy. You have the right to access, rectify, or delete your data, as + well as the right to restrict processing, data portability, and the + right to object. +

    + +

    4. Use of the Platform

    • Permitted Use: The platform @@ -66,7 +80,7 @@ function Component() {

    - 4. Purchases and Payments + 5. Purchases and Payments

    All purchases made on the platform are final and subject to our Refund @@ -75,7 +89,7 @@ function Component() {

    - 5. Content Ownership and Licensing + 6. Content Ownership and Licensing

    • @@ -92,7 +106,7 @@ function Component() {
    -

    6. Service Availability

    +

    7. Service Availability

    We strive to ensure continuous access to the platform but do not guarantee uninterrupted service. The platform may be updated, modified, @@ -100,7 +114,7 @@ function Component() {

    - 7. Limitation of Liability + 8. Limitation of Liability

    GOOFR is not responsible for any indirect, incidental, or consequential @@ -108,27 +122,29 @@ function Component() { limited to, data loss or financial loss.

    -

    8. Termination

    +

    9. Termination

    We reserve the right to terminate or suspend your account if you breach these Terms or engage in prohibited activities.

    -

    9. Amendments

    +

    10. Amendments

    These Terms may be updated periodically. Continued use of the platform after changes constitutes acceptance of the new Terms.

    -

    10. Governing Law

    +

    11. Governing Law

    - These Terms are governed by the laws of Portugal. Any disputes will be - resolved exclusively in the courts of Portugal. + These Terms are governed by the laws of Portugal and comply with the + GDPR. Any disputes will be resolved exclusively in the courts of + Portugal.

    -

    11. Contact Us

    +

    12. Contact Us

    - For any questions about these Terms, please contact us at{" "} + For any questions about these Terms, including data protection + inquiries, please contact us at{" "} Date: Tue, 24 Dec 2024 19:29:15 +0000 Subject: [PATCH 11/42] refactor: change gray for consistency --- web/src/routes/_layout.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/src/routes/_layout.tsx b/web/src/routes/_layout.tsx index 398a044..32948e7 100644 --- a/web/src/routes/_layout.tsx +++ b/web/src/routes/_layout.tsx @@ -230,7 +230,7 @@ function Component() {

    -

    +

    © {new Date().getFullYear()} GOOFR. All rights reserved.

    From 3365274e4b454b64d292fdffee7d043690948425 Mon Sep 17 00:00:00 2001 From: Goncalo-Marques <53789763+Goncalo-Marques@users.noreply.github.com> Date: Tue, 24 Dec 2024 20:19:00 +0000 Subject: [PATCH 12/42] refactor: move error component --- web/src/components/{distribute => }/error.tsx | 0 web/src/routes/distribute/_layout/games/$gameId.tsx | 2 +- .../routes/distribute/_layout/games_/$gameId/edit.tsx | 11 ++++++++--- 3 files changed, 9 insertions(+), 4 deletions(-) rename web/src/components/{distribute => }/error.tsx (100%) diff --git a/web/src/components/distribute/error.tsx b/web/src/components/error.tsx similarity index 100% rename from web/src/components/distribute/error.tsx rename to web/src/components/error.tsx diff --git a/web/src/routes/distribute/_layout/games/$gameId.tsx b/web/src/routes/distribute/_layout/games/$gameId.tsx index 4fbc470..fb31e59 100644 --- a/web/src/routes/distribute/_layout/games/$gameId.tsx +++ b/web/src/routes/distribute/_layout/games/$gameId.tsx @@ -3,8 +3,8 @@ import { createFileRoute, Link, useParams } from "@tanstack/react-router"; import { format } from "date-fns"; import { Download, Edit } from "lucide-react"; -import { ErrorPage } from "@/components/distribute/error"; import { GamePreview } from "@/components/distribute/games/game-preview"; +import { ErrorPage } from "@/components/error"; import { Badge } from "@/components/ui/badge"; import { Button } from "@/components/ui/button"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; diff --git a/web/src/routes/distribute/_layout/games_/$gameId/edit.tsx b/web/src/routes/distribute/_layout/games_/$gameId/edit.tsx index 7f98c8f..43e35ec 100644 --- a/web/src/routes/distribute/_layout/games_/$gameId/edit.tsx +++ b/web/src/routes/distribute/_layout/games_/$gameId/edit.tsx @@ -5,8 +5,8 @@ import { useParams, } from "@tanstack/react-router"; -import { ErrorPage } from "@/components/distribute/error"; import { GameForm } from "@/components/distribute/games/form/form"; +import { ErrorPage } from "@/components/error"; import { Card, CardContent, @@ -16,7 +16,7 @@ import { } from "@/components/ui/card"; import { getPublisherGame } from "@/lib/api"; import { decodeTokenPayload, getToken } from "@/lib/auth"; -import { NotFound } from "@/lib/errors"; +import { BadRequest, NotFound } from "@/lib/errors"; import { gameQueryKey } from "@/lib/query-keys"; /** @@ -47,7 +47,12 @@ export const Route = createFileRoute("/distribute/_layout/games/$gameId/edit")({ ); }, errorComponent(errorProps) { - if (errorProps.error instanceof NotFound) { + // If the game ID is not a valid UUID, a BadRequest is thrown. + // This error is visually identical to a NotFound error. + if ( + errorProps.error instanceof BadRequest || + errorProps.error instanceof NotFound + ) { return ( Date: Tue, 24 Dec 2024 21:31:48 +0000 Subject: [PATCH 13/42] feat: add under construction page --- .../components/distribute/navbar/navbar.tsx | 6 +- web/src/components/underConstruction.tsx | 21 + web/src/routeTree.gen.ts | 784 ++++++++++-------- web/src/routes/_layout.tsx | 16 +- web/src/routes/_layout/underConstruction.tsx | 11 + web/src/routes/distribute/_layout.tsx | 6 +- .../distribute/_layout/underConstruction.tsx | 11 + 7 files changed, 476 insertions(+), 379 deletions(-) create mode 100644 web/src/components/underConstruction.tsx create mode 100644 web/src/routes/_layout/underConstruction.tsx create mode 100644 web/src/routes/distribute/_layout/underConstruction.tsx diff --git a/web/src/components/distribute/navbar/navbar.tsx b/web/src/components/distribute/navbar/navbar.tsx index 84a6771..873bce6 100644 --- a/web/src/components/distribute/navbar/navbar.tsx +++ b/web/src/components/distribute/navbar/navbar.tsx @@ -140,7 +140,7 @@ export function DistributeNavbar(props: { variant: "simple" | "full" }) { setIsSheetOpen(false)} > @@ -148,7 +148,7 @@ export function DistributeNavbar(props: { variant: "simple" | "full" }) { setIsSheetOpen(false)} > @@ -156,7 +156,7 @@ export function DistributeNavbar(props: { variant: "simple" | "full" }) { setIsSheetOpen(false)} > diff --git a/web/src/components/underConstruction.tsx b/web/src/components/underConstruction.tsx new file mode 100644 index 0000000..f5f1c5d --- /dev/null +++ b/web/src/components/underConstruction.tsx @@ -0,0 +1,21 @@ +import { Link } from "@tanstack/react-router"; +import { ArrowLeft } from "lucide-react"; + +import { Button } from "@/components/ui/button"; +import { Card, CardDescription, CardTitle } from "@/components/ui/card"; + +export function UnderConstructionPage(props: { showBack?: boolean }) { + return ( + + Under Construction + This page is under construction. + {props.showBack && ( + + )} + + ); +} diff --git a/web/src/routeTree.gen.ts b/web/src/routeTree.gen.ts index faada86..3e2396f 100644 --- a/web/src/routeTree.gen.ts +++ b/web/src/routeTree.gen.ts @@ -8,314 +8,342 @@ // This file is auto-generated by TanStack Router -import { createFileRoute } from "@tanstack/react-router"; +import { createFileRoute } from '@tanstack/react-router' // Import Routes -import { Route as rootRoute } from "./routes/__root"; -import { Route as LayoutImport } from "./routes/_layout"; -import { Route as LayoutIndexImport } from "./routes/_layout/index"; -import { Route as DistributeSigninImport } from "./routes/distribute/signin"; -import { Route as DistributeRegisterImport } from "./routes/distribute/register"; -import { Route as DistributeLayoutImport } from "./routes/distribute/_layout"; -import { Route as LayoutTermsServiceImport } from "./routes/_layout/termsService"; -import { Route as LayoutSigninImport } from "./routes/_layout/signin"; -import { Route as LayoutRegisterImport } from "./routes/_layout/register"; -import { Route as LayoutPrivacyPolicyImport } from "./routes/_layout/privacyPolicy"; -import { Route as LayoutCookiePolicyImport } from "./routes/_layout/cookiePolicy"; -import { Route as LayoutCartImport } from "./routes/_layout/cart"; -import { Route as LayoutBrowseImport } from "./routes/_layout/browse"; -import { Route as LayoutAccountImport } from "./routes/_layout/account"; -import { Route as DistributeLayoutIndexImport } from "./routes/distribute/_layout/index"; -import { Route as DistributeLayoutAccountImport } from "./routes/distribute/_layout/account"; -import { Route as LayoutGamesGameIdImport } from "./routes/_layout/games/$gameId"; -import { Route as DistributeLayoutGamesIndexImport } from "./routes/distribute/_layout/games/index"; -import { Route as DistributeLayoutGamesAddImport } from "./routes/distribute/_layout/games/add"; -import { Route as DistributeLayoutGamesGameIdImport } from "./routes/distribute/_layout/games/$gameId"; -import { Route as DistributeLayoutGamesGameIdEditImport } from "./routes/distribute/_layout/games_/$gameId/edit"; +import { Route as rootRoute } from './routes/__root' +import { Route as LayoutImport } from './routes/_layout' +import { Route as LayoutIndexImport } from './routes/_layout/index' +import { Route as DistributeSigninImport } from './routes/distribute/signin' +import { Route as DistributeRegisterImport } from './routes/distribute/register' +import { Route as DistributeLayoutImport } from './routes/distribute/_layout' +import { Route as LayoutUnderConstructionImport } from './routes/_layout/underConstruction' +import { Route as LayoutTermsServiceImport } from './routes/_layout/termsService' +import { Route as LayoutSigninImport } from './routes/_layout/signin' +import { Route as LayoutRegisterImport } from './routes/_layout/register' +import { Route as LayoutPrivacyPolicyImport } from './routes/_layout/privacyPolicy' +import { Route as LayoutCookiePolicyImport } from './routes/_layout/cookiePolicy' +import { Route as LayoutCartImport } from './routes/_layout/cart' +import { Route as LayoutBrowseImport } from './routes/_layout/browse' +import { Route as LayoutAccountImport } from './routes/_layout/account' +import { Route as DistributeLayoutIndexImport } from './routes/distribute/_layout/index' +import { Route as DistributeLayoutUnderConstructionImport } from './routes/distribute/_layout/underConstruction' +import { Route as DistributeLayoutAccountImport } from './routes/distribute/_layout/account' +import { Route as LayoutGamesGameIdImport } from './routes/_layout/games/$gameId' +import { Route as DistributeLayoutGamesIndexImport } from './routes/distribute/_layout/games/index' +import { Route as DistributeLayoutGamesAddImport } from './routes/distribute/_layout/games/add' +import { Route as DistributeLayoutGamesGameIdImport } from './routes/distribute/_layout/games/$gameId' +import { Route as DistributeLayoutGamesGameIdEditImport } from './routes/distribute/_layout/games_/$gameId/edit' // Create Virtual Routes -const DistributeImport = createFileRoute("/distribute")(); +const DistributeImport = createFileRoute('/distribute')() // Create/Update Routes const DistributeRoute = DistributeImport.update({ - path: "/distribute", + path: '/distribute', getParentRoute: () => rootRoute, -} as any); +} as any) const LayoutRoute = LayoutImport.update({ - id: "/_layout", + id: '/_layout', getParentRoute: () => rootRoute, -} as any); +} as any) const LayoutIndexRoute = LayoutIndexImport.update({ - path: "/", + path: '/', getParentRoute: () => LayoutRoute, -} as any); +} as any) const DistributeSigninRoute = DistributeSigninImport.update({ - path: "/signin", + path: '/signin', getParentRoute: () => DistributeRoute, -} as any); +} as any) const DistributeRegisterRoute = DistributeRegisterImport.update({ - path: "/register", + path: '/register', getParentRoute: () => DistributeRoute, -} as any); +} as any) const DistributeLayoutRoute = DistributeLayoutImport.update({ - id: "/_layout", + id: '/_layout', getParentRoute: () => DistributeRoute, -} as any); +} as any) + +const LayoutUnderConstructionRoute = LayoutUnderConstructionImport.update({ + path: '/underConstruction', + getParentRoute: () => LayoutRoute, +} as any) const LayoutTermsServiceRoute = LayoutTermsServiceImport.update({ - path: "/termsService", + path: '/termsService', getParentRoute: () => LayoutRoute, -} as any); +} as any) const LayoutSigninRoute = LayoutSigninImport.update({ - path: "/signin", + path: '/signin', getParentRoute: () => LayoutRoute, -} as any); +} as any) const LayoutRegisterRoute = LayoutRegisterImport.update({ - path: "/register", + path: '/register', getParentRoute: () => LayoutRoute, -} as any); +} as any) const LayoutPrivacyPolicyRoute = LayoutPrivacyPolicyImport.update({ - path: "/privacyPolicy", + path: '/privacyPolicy', getParentRoute: () => LayoutRoute, -} as any); +} as any) const LayoutCookiePolicyRoute = LayoutCookiePolicyImport.update({ - path: "/cookiePolicy", + path: '/cookiePolicy', getParentRoute: () => LayoutRoute, -} as any); +} as any) const LayoutCartRoute = LayoutCartImport.update({ - path: "/cart", + path: '/cart', getParentRoute: () => LayoutRoute, -} as any); +} as any) const LayoutBrowseRoute = LayoutBrowseImport.update({ - path: "/browse", + path: '/browse', getParentRoute: () => LayoutRoute, -} as any); +} as any) const LayoutAccountRoute = LayoutAccountImport.update({ - path: "/account", + path: '/account', getParentRoute: () => LayoutRoute, -} as any); +} as any) const DistributeLayoutIndexRoute = DistributeLayoutIndexImport.update({ - path: "/", + path: '/', getParentRoute: () => DistributeLayoutRoute, -} as any); +} as any) + +const DistributeLayoutUnderConstructionRoute = + DistributeLayoutUnderConstructionImport.update({ + path: '/underConstruction', + getParentRoute: () => DistributeLayoutRoute, + } as any) const DistributeLayoutAccountRoute = DistributeLayoutAccountImport.update({ - path: "/account", + path: '/account', getParentRoute: () => DistributeLayoutRoute, -} as any); +} as any) const LayoutGamesGameIdRoute = LayoutGamesGameIdImport.update({ - path: "/games/$gameId", + path: '/games/$gameId', getParentRoute: () => LayoutRoute, -} as any); +} as any) const DistributeLayoutGamesIndexRoute = DistributeLayoutGamesIndexImport.update( { - path: "/games/", + path: '/games/', getParentRoute: () => DistributeLayoutRoute, } as any, -); +) const DistributeLayoutGamesAddRoute = DistributeLayoutGamesAddImport.update({ - path: "/games/add", + path: '/games/add', getParentRoute: () => DistributeLayoutRoute, -} as any); +} as any) const DistributeLayoutGamesGameIdRoute = DistributeLayoutGamesGameIdImport.update({ - path: "/games/$gameId", + path: '/games/$gameId', getParentRoute: () => DistributeLayoutRoute, - } as any); + } as any) const DistributeLayoutGamesGameIdEditRoute = DistributeLayoutGamesGameIdEditImport.update({ - path: "/games/$gameId/edit", + path: '/games/$gameId/edit', getParentRoute: () => DistributeLayoutRoute, - } as any); + } as any) // Populate the FileRoutesByPath interface -declare module "@tanstack/react-router" { +declare module '@tanstack/react-router' { interface FileRoutesByPath { - "/_layout": { - id: "/_layout"; - path: ""; - fullPath: ""; - preLoaderRoute: typeof LayoutImport; - parentRoute: typeof rootRoute; - }; - "/_layout/account": { - id: "/_layout/account"; - path: "/account"; - fullPath: "/account"; - preLoaderRoute: typeof LayoutAccountImport; - parentRoute: typeof LayoutImport; - }; - "/_layout/browse": { - id: "/_layout/browse"; - path: "/browse"; - fullPath: "/browse"; - preLoaderRoute: typeof LayoutBrowseImport; - parentRoute: typeof LayoutImport; - }; - "/_layout/cart": { - id: "/_layout/cart"; - path: "/cart"; - fullPath: "/cart"; - preLoaderRoute: typeof LayoutCartImport; - parentRoute: typeof LayoutImport; - }; - "/_layout/cookiePolicy": { - id: "/_layout/cookiePolicy"; - path: "/cookiePolicy"; - fullPath: "/cookiePolicy"; - preLoaderRoute: typeof LayoutCookiePolicyImport; - parentRoute: typeof LayoutImport; - }; - "/_layout/privacyPolicy": { - id: "/_layout/privacyPolicy"; - path: "/privacyPolicy"; - fullPath: "/privacyPolicy"; - preLoaderRoute: typeof LayoutPrivacyPolicyImport; - parentRoute: typeof LayoutImport; - }; - "/_layout/register": { - id: "/_layout/register"; - path: "/register"; - fullPath: "/register"; - preLoaderRoute: typeof LayoutRegisterImport; - parentRoute: typeof LayoutImport; - }; - "/_layout/signin": { - id: "/_layout/signin"; - path: "/signin"; - fullPath: "/signin"; - preLoaderRoute: typeof LayoutSigninImport; - parentRoute: typeof LayoutImport; - }; - "/_layout/termsService": { - id: "/_layout/termsService"; - path: "/termsService"; - fullPath: "/termsService"; - preLoaderRoute: typeof LayoutTermsServiceImport; - parentRoute: typeof LayoutImport; - }; - "/distribute": { - id: "/distribute"; - path: "/distribute"; - fullPath: "/distribute"; - preLoaderRoute: typeof DistributeImport; - parentRoute: typeof rootRoute; - }; - "/distribute/_layout": { - id: "/distribute/_layout"; - path: "/distribute"; - fullPath: "/distribute"; - preLoaderRoute: typeof DistributeLayoutImport; - parentRoute: typeof DistributeRoute; - }; - "/distribute/register": { - id: "/distribute/register"; - path: "/register"; - fullPath: "/distribute/register"; - preLoaderRoute: typeof DistributeRegisterImport; - parentRoute: typeof DistributeImport; - }; - "/distribute/signin": { - id: "/distribute/signin"; - path: "/signin"; - fullPath: "/distribute/signin"; - preLoaderRoute: typeof DistributeSigninImport; - parentRoute: typeof DistributeImport; - }; - "/_layout/": { - id: "/_layout/"; - path: "/"; - fullPath: "/"; - preLoaderRoute: typeof LayoutIndexImport; - parentRoute: typeof LayoutImport; - }; - "/_layout/games/$gameId": { - id: "/_layout/games/$gameId"; - path: "/games/$gameId"; - fullPath: "/games/$gameId"; - preLoaderRoute: typeof LayoutGamesGameIdImport; - parentRoute: typeof LayoutImport; - }; - "/distribute/_layout/account": { - id: "/distribute/_layout/account"; - path: "/account"; - fullPath: "/distribute/account"; - preLoaderRoute: typeof DistributeLayoutAccountImport; - parentRoute: typeof DistributeLayoutImport; - }; - "/distribute/_layout/": { - id: "/distribute/_layout/"; - path: "/"; - fullPath: "/distribute/"; - preLoaderRoute: typeof DistributeLayoutIndexImport; - parentRoute: typeof DistributeLayoutImport; - }; - "/distribute/_layout/games/$gameId": { - id: "/distribute/_layout/games/$gameId"; - path: "/games/$gameId"; - fullPath: "/distribute/games/$gameId"; - preLoaderRoute: typeof DistributeLayoutGamesGameIdImport; - parentRoute: typeof DistributeLayoutImport; - }; - "/distribute/_layout/games/add": { - id: "/distribute/_layout/games/add"; - path: "/games/add"; - fullPath: "/distribute/games/add"; - preLoaderRoute: typeof DistributeLayoutGamesAddImport; - parentRoute: typeof DistributeLayoutImport; - }; - "/distribute/_layout/games/": { - id: "/distribute/_layout/games/"; - path: "/games"; - fullPath: "/distribute/games"; - preLoaderRoute: typeof DistributeLayoutGamesIndexImport; - parentRoute: typeof DistributeLayoutImport; - }; - "/distribute/_layout/games/$gameId/edit": { - id: "/distribute/_layout/games/$gameId/edit"; - path: "/games/$gameId/edit"; - fullPath: "/distribute/games/$gameId/edit"; - preLoaderRoute: typeof DistributeLayoutGamesGameIdEditImport; - parentRoute: typeof DistributeLayoutImport; - }; + '/_layout': { + id: '/_layout' + path: '' + fullPath: '' + preLoaderRoute: typeof LayoutImport + parentRoute: typeof rootRoute + } + '/_layout/account': { + id: '/_layout/account' + path: '/account' + fullPath: '/account' + preLoaderRoute: typeof LayoutAccountImport + parentRoute: typeof LayoutImport + } + '/_layout/browse': { + id: '/_layout/browse' + path: '/browse' + fullPath: '/browse' + preLoaderRoute: typeof LayoutBrowseImport + parentRoute: typeof LayoutImport + } + '/_layout/cart': { + id: '/_layout/cart' + path: '/cart' + fullPath: '/cart' + preLoaderRoute: typeof LayoutCartImport + parentRoute: typeof LayoutImport + } + '/_layout/cookiePolicy': { + id: '/_layout/cookiePolicy' + path: '/cookiePolicy' + fullPath: '/cookiePolicy' + preLoaderRoute: typeof LayoutCookiePolicyImport + parentRoute: typeof LayoutImport + } + '/_layout/privacyPolicy': { + id: '/_layout/privacyPolicy' + path: '/privacyPolicy' + fullPath: '/privacyPolicy' + preLoaderRoute: typeof LayoutPrivacyPolicyImport + parentRoute: typeof LayoutImport + } + '/_layout/register': { + id: '/_layout/register' + path: '/register' + fullPath: '/register' + preLoaderRoute: typeof LayoutRegisterImport + parentRoute: typeof LayoutImport + } + '/_layout/signin': { + id: '/_layout/signin' + path: '/signin' + fullPath: '/signin' + preLoaderRoute: typeof LayoutSigninImport + parentRoute: typeof LayoutImport + } + '/_layout/termsService': { + id: '/_layout/termsService' + path: '/termsService' + fullPath: '/termsService' + preLoaderRoute: typeof LayoutTermsServiceImport + parentRoute: typeof LayoutImport + } + '/_layout/underConstruction': { + id: '/_layout/underConstruction' + path: '/underConstruction' + fullPath: '/underConstruction' + preLoaderRoute: typeof LayoutUnderConstructionImport + parentRoute: typeof LayoutImport + } + '/distribute': { + id: '/distribute' + path: '/distribute' + fullPath: '/distribute' + preLoaderRoute: typeof DistributeImport + parentRoute: typeof rootRoute + } + '/distribute/_layout': { + id: '/distribute/_layout' + path: '/distribute' + fullPath: '/distribute' + preLoaderRoute: typeof DistributeLayoutImport + parentRoute: typeof DistributeRoute + } + '/distribute/register': { + id: '/distribute/register' + path: '/register' + fullPath: '/distribute/register' + preLoaderRoute: typeof DistributeRegisterImport + parentRoute: typeof DistributeImport + } + '/distribute/signin': { + id: '/distribute/signin' + path: '/signin' + fullPath: '/distribute/signin' + preLoaderRoute: typeof DistributeSigninImport + parentRoute: typeof DistributeImport + } + '/_layout/': { + id: '/_layout/' + path: '/' + fullPath: '/' + preLoaderRoute: typeof LayoutIndexImport + parentRoute: typeof LayoutImport + } + '/_layout/games/$gameId': { + id: '/_layout/games/$gameId' + path: '/games/$gameId' + fullPath: '/games/$gameId' + preLoaderRoute: typeof LayoutGamesGameIdImport + parentRoute: typeof LayoutImport + } + '/distribute/_layout/account': { + id: '/distribute/_layout/account' + path: '/account' + fullPath: '/distribute/account' + preLoaderRoute: typeof DistributeLayoutAccountImport + parentRoute: typeof DistributeLayoutImport + } + '/distribute/_layout/underConstruction': { + id: '/distribute/_layout/underConstruction' + path: '/underConstruction' + fullPath: '/distribute/underConstruction' + preLoaderRoute: typeof DistributeLayoutUnderConstructionImport + parentRoute: typeof DistributeLayoutImport + } + '/distribute/_layout/': { + id: '/distribute/_layout/' + path: '/' + fullPath: '/distribute/' + preLoaderRoute: typeof DistributeLayoutIndexImport + parentRoute: typeof DistributeLayoutImport + } + '/distribute/_layout/games/$gameId': { + id: '/distribute/_layout/games/$gameId' + path: '/games/$gameId' + fullPath: '/distribute/games/$gameId' + preLoaderRoute: typeof DistributeLayoutGamesGameIdImport + parentRoute: typeof DistributeLayoutImport + } + '/distribute/_layout/games/add': { + id: '/distribute/_layout/games/add' + path: '/games/add' + fullPath: '/distribute/games/add' + preLoaderRoute: typeof DistributeLayoutGamesAddImport + parentRoute: typeof DistributeLayoutImport + } + '/distribute/_layout/games/': { + id: '/distribute/_layout/games/' + path: '/games' + fullPath: '/distribute/games' + preLoaderRoute: typeof DistributeLayoutGamesIndexImport + parentRoute: typeof DistributeLayoutImport + } + '/distribute/_layout/games/$gameId/edit': { + id: '/distribute/_layout/games/$gameId/edit' + path: '/games/$gameId/edit' + fullPath: '/distribute/games/$gameId/edit' + preLoaderRoute: typeof DistributeLayoutGamesGameIdEditImport + parentRoute: typeof DistributeLayoutImport + } } } // Create and export the route tree interface LayoutRouteChildren { - LayoutAccountRoute: typeof LayoutAccountRoute; - LayoutBrowseRoute: typeof LayoutBrowseRoute; - LayoutCartRoute: typeof LayoutCartRoute; - LayoutCookiePolicyRoute: typeof LayoutCookiePolicyRoute; - LayoutPrivacyPolicyRoute: typeof LayoutPrivacyPolicyRoute; - LayoutRegisterRoute: typeof LayoutRegisterRoute; - LayoutSigninRoute: typeof LayoutSigninRoute; - LayoutTermsServiceRoute: typeof LayoutTermsServiceRoute; - LayoutIndexRoute: typeof LayoutIndexRoute; - LayoutGamesGameIdRoute: typeof LayoutGamesGameIdRoute; + LayoutAccountRoute: typeof LayoutAccountRoute + LayoutBrowseRoute: typeof LayoutBrowseRoute + LayoutCartRoute: typeof LayoutCartRoute + LayoutCookiePolicyRoute: typeof LayoutCookiePolicyRoute + LayoutPrivacyPolicyRoute: typeof LayoutPrivacyPolicyRoute + LayoutRegisterRoute: typeof LayoutRegisterRoute + LayoutSigninRoute: typeof LayoutSigninRoute + LayoutTermsServiceRoute: typeof LayoutTermsServiceRoute + LayoutUnderConstructionRoute: typeof LayoutUnderConstructionRoute + LayoutIndexRoute: typeof LayoutIndexRoute + LayoutGamesGameIdRoute: typeof LayoutGamesGameIdRoute } const LayoutRouteChildren: LayoutRouteChildren = { @@ -327,201 +355,217 @@ const LayoutRouteChildren: LayoutRouteChildren = { LayoutRegisterRoute: LayoutRegisterRoute, LayoutSigninRoute: LayoutSigninRoute, LayoutTermsServiceRoute: LayoutTermsServiceRoute, + LayoutUnderConstructionRoute: LayoutUnderConstructionRoute, LayoutIndexRoute: LayoutIndexRoute, LayoutGamesGameIdRoute: LayoutGamesGameIdRoute, -}; +} const LayoutRouteWithChildren = - LayoutRoute._addFileChildren(LayoutRouteChildren); + LayoutRoute._addFileChildren(LayoutRouteChildren) interface DistributeLayoutRouteChildren { - DistributeLayoutAccountRoute: typeof DistributeLayoutAccountRoute; - DistributeLayoutIndexRoute: typeof DistributeLayoutIndexRoute; - DistributeLayoutGamesGameIdRoute: typeof DistributeLayoutGamesGameIdRoute; - DistributeLayoutGamesAddRoute: typeof DistributeLayoutGamesAddRoute; - DistributeLayoutGamesIndexRoute: typeof DistributeLayoutGamesIndexRoute; - DistributeLayoutGamesGameIdEditRoute: typeof DistributeLayoutGamesGameIdEditRoute; + DistributeLayoutAccountRoute: typeof DistributeLayoutAccountRoute + DistributeLayoutUnderConstructionRoute: typeof DistributeLayoutUnderConstructionRoute + DistributeLayoutIndexRoute: typeof DistributeLayoutIndexRoute + DistributeLayoutGamesGameIdRoute: typeof DistributeLayoutGamesGameIdRoute + DistributeLayoutGamesAddRoute: typeof DistributeLayoutGamesAddRoute + DistributeLayoutGamesIndexRoute: typeof DistributeLayoutGamesIndexRoute + DistributeLayoutGamesGameIdEditRoute: typeof DistributeLayoutGamesGameIdEditRoute } const DistributeLayoutRouteChildren: DistributeLayoutRouteChildren = { DistributeLayoutAccountRoute: DistributeLayoutAccountRoute, + DistributeLayoutUnderConstructionRoute: + DistributeLayoutUnderConstructionRoute, DistributeLayoutIndexRoute: DistributeLayoutIndexRoute, DistributeLayoutGamesGameIdRoute: DistributeLayoutGamesGameIdRoute, DistributeLayoutGamesAddRoute: DistributeLayoutGamesAddRoute, DistributeLayoutGamesIndexRoute: DistributeLayoutGamesIndexRoute, DistributeLayoutGamesGameIdEditRoute: DistributeLayoutGamesGameIdEditRoute, -}; +} const DistributeLayoutRouteWithChildren = - DistributeLayoutRoute._addFileChildren(DistributeLayoutRouteChildren); + DistributeLayoutRoute._addFileChildren(DistributeLayoutRouteChildren) interface DistributeRouteChildren { - DistributeLayoutRoute: typeof DistributeLayoutRouteWithChildren; - DistributeRegisterRoute: typeof DistributeRegisterRoute; - DistributeSigninRoute: typeof DistributeSigninRoute; + DistributeLayoutRoute: typeof DistributeLayoutRouteWithChildren + DistributeRegisterRoute: typeof DistributeRegisterRoute + DistributeSigninRoute: typeof DistributeSigninRoute } const DistributeRouteChildren: DistributeRouteChildren = { DistributeLayoutRoute: DistributeLayoutRouteWithChildren, DistributeRegisterRoute: DistributeRegisterRoute, DistributeSigninRoute: DistributeSigninRoute, -}; +} const DistributeRouteWithChildren = DistributeRoute._addFileChildren( DistributeRouteChildren, -); +) export interface FileRoutesByFullPath { - "": typeof LayoutRouteWithChildren; - "/account": typeof LayoutAccountRoute; - "/browse": typeof LayoutBrowseRoute; - "/cart": typeof LayoutCartRoute; - "/cookiePolicy": typeof LayoutCookiePolicyRoute; - "/privacyPolicy": typeof LayoutPrivacyPolicyRoute; - "/register": typeof LayoutRegisterRoute; - "/signin": typeof LayoutSigninRoute; - "/termsService": typeof LayoutTermsServiceRoute; - "/distribute": typeof DistributeLayoutRouteWithChildren; - "/distribute/register": typeof DistributeRegisterRoute; - "/distribute/signin": typeof DistributeSigninRoute; - "/": typeof LayoutIndexRoute; - "/games/$gameId": typeof LayoutGamesGameIdRoute; - "/distribute/account": typeof DistributeLayoutAccountRoute; - "/distribute/": typeof DistributeLayoutIndexRoute; - "/distribute/games/$gameId": typeof DistributeLayoutGamesGameIdRoute; - "/distribute/games/add": typeof DistributeLayoutGamesAddRoute; - "/distribute/games": typeof DistributeLayoutGamesIndexRoute; - "/distribute/games/$gameId/edit": typeof DistributeLayoutGamesGameIdEditRoute; + '': typeof LayoutRouteWithChildren + '/account': typeof LayoutAccountRoute + '/browse': typeof LayoutBrowseRoute + '/cart': typeof LayoutCartRoute + '/cookiePolicy': typeof LayoutCookiePolicyRoute + '/privacyPolicy': typeof LayoutPrivacyPolicyRoute + '/register': typeof LayoutRegisterRoute + '/signin': typeof LayoutSigninRoute + '/termsService': typeof LayoutTermsServiceRoute + '/underConstruction': typeof LayoutUnderConstructionRoute + '/distribute': typeof DistributeLayoutRouteWithChildren + '/distribute/register': typeof DistributeRegisterRoute + '/distribute/signin': typeof DistributeSigninRoute + '/': typeof LayoutIndexRoute + '/games/$gameId': typeof LayoutGamesGameIdRoute + '/distribute/account': typeof DistributeLayoutAccountRoute + '/distribute/underConstruction': typeof DistributeLayoutUnderConstructionRoute + '/distribute/': typeof DistributeLayoutIndexRoute + '/distribute/games/$gameId': typeof DistributeLayoutGamesGameIdRoute + '/distribute/games/add': typeof DistributeLayoutGamesAddRoute + '/distribute/games': typeof DistributeLayoutGamesIndexRoute + '/distribute/games/$gameId/edit': typeof DistributeLayoutGamesGameIdEditRoute } export interface FileRoutesByTo { - "/account": typeof LayoutAccountRoute; - "/browse": typeof LayoutBrowseRoute; - "/cart": typeof LayoutCartRoute; - "/cookiePolicy": typeof LayoutCookiePolicyRoute; - "/privacyPolicy": typeof LayoutPrivacyPolicyRoute; - "/register": typeof LayoutRegisterRoute; - "/signin": typeof LayoutSigninRoute; - "/termsService": typeof LayoutTermsServiceRoute; - "/distribute": typeof DistributeLayoutIndexRoute; - "/distribute/register": typeof DistributeRegisterRoute; - "/distribute/signin": typeof DistributeSigninRoute; - "/": typeof LayoutIndexRoute; - "/games/$gameId": typeof LayoutGamesGameIdRoute; - "/distribute/account": typeof DistributeLayoutAccountRoute; - "/distribute/games/$gameId": typeof DistributeLayoutGamesGameIdRoute; - "/distribute/games/add": typeof DistributeLayoutGamesAddRoute; - "/distribute/games": typeof DistributeLayoutGamesIndexRoute; - "/distribute/games/$gameId/edit": typeof DistributeLayoutGamesGameIdEditRoute; + '/account': typeof LayoutAccountRoute + '/browse': typeof LayoutBrowseRoute + '/cart': typeof LayoutCartRoute + '/cookiePolicy': typeof LayoutCookiePolicyRoute + '/privacyPolicy': typeof LayoutPrivacyPolicyRoute + '/register': typeof LayoutRegisterRoute + '/signin': typeof LayoutSigninRoute + '/termsService': typeof LayoutTermsServiceRoute + '/underConstruction': typeof LayoutUnderConstructionRoute + '/distribute': typeof DistributeLayoutIndexRoute + '/distribute/register': typeof DistributeRegisterRoute + '/distribute/signin': typeof DistributeSigninRoute + '/': typeof LayoutIndexRoute + '/games/$gameId': typeof LayoutGamesGameIdRoute + '/distribute/account': typeof DistributeLayoutAccountRoute + '/distribute/underConstruction': typeof DistributeLayoutUnderConstructionRoute + '/distribute/games/$gameId': typeof DistributeLayoutGamesGameIdRoute + '/distribute/games/add': typeof DistributeLayoutGamesAddRoute + '/distribute/games': typeof DistributeLayoutGamesIndexRoute + '/distribute/games/$gameId/edit': typeof DistributeLayoutGamesGameIdEditRoute } export interface FileRoutesById { - __root__: typeof rootRoute; - "/_layout": typeof LayoutRouteWithChildren; - "/_layout/account": typeof LayoutAccountRoute; - "/_layout/browse": typeof LayoutBrowseRoute; - "/_layout/cart": typeof LayoutCartRoute; - "/_layout/cookiePolicy": typeof LayoutCookiePolicyRoute; - "/_layout/privacyPolicy": typeof LayoutPrivacyPolicyRoute; - "/_layout/register": typeof LayoutRegisterRoute; - "/_layout/signin": typeof LayoutSigninRoute; - "/_layout/termsService": typeof LayoutTermsServiceRoute; - "/distribute": typeof DistributeRouteWithChildren; - "/distribute/_layout": typeof DistributeLayoutRouteWithChildren; - "/distribute/register": typeof DistributeRegisterRoute; - "/distribute/signin": typeof DistributeSigninRoute; - "/_layout/": typeof LayoutIndexRoute; - "/_layout/games/$gameId": typeof LayoutGamesGameIdRoute; - "/distribute/_layout/account": typeof DistributeLayoutAccountRoute; - "/distribute/_layout/": typeof DistributeLayoutIndexRoute; - "/distribute/_layout/games/$gameId": typeof DistributeLayoutGamesGameIdRoute; - "/distribute/_layout/games/add": typeof DistributeLayoutGamesAddRoute; - "/distribute/_layout/games/": typeof DistributeLayoutGamesIndexRoute; - "/distribute/_layout/games/$gameId/edit": typeof DistributeLayoutGamesGameIdEditRoute; + __root__: typeof rootRoute + '/_layout': typeof LayoutRouteWithChildren + '/_layout/account': typeof LayoutAccountRoute + '/_layout/browse': typeof LayoutBrowseRoute + '/_layout/cart': typeof LayoutCartRoute + '/_layout/cookiePolicy': typeof LayoutCookiePolicyRoute + '/_layout/privacyPolicy': typeof LayoutPrivacyPolicyRoute + '/_layout/register': typeof LayoutRegisterRoute + '/_layout/signin': typeof LayoutSigninRoute + '/_layout/termsService': typeof LayoutTermsServiceRoute + '/_layout/underConstruction': typeof LayoutUnderConstructionRoute + '/distribute': typeof DistributeRouteWithChildren + '/distribute/_layout': typeof DistributeLayoutRouteWithChildren + '/distribute/register': typeof DistributeRegisterRoute + '/distribute/signin': typeof DistributeSigninRoute + '/_layout/': typeof LayoutIndexRoute + '/_layout/games/$gameId': typeof LayoutGamesGameIdRoute + '/distribute/_layout/account': typeof DistributeLayoutAccountRoute + '/distribute/_layout/underConstruction': typeof DistributeLayoutUnderConstructionRoute + '/distribute/_layout/': typeof DistributeLayoutIndexRoute + '/distribute/_layout/games/$gameId': typeof DistributeLayoutGamesGameIdRoute + '/distribute/_layout/games/add': typeof DistributeLayoutGamesAddRoute + '/distribute/_layout/games/': typeof DistributeLayoutGamesIndexRoute + '/distribute/_layout/games/$gameId/edit': typeof DistributeLayoutGamesGameIdEditRoute } export interface FileRouteTypes { - fileRoutesByFullPath: FileRoutesByFullPath; + fileRoutesByFullPath: FileRoutesByFullPath fullPaths: - | "" - | "/account" - | "/browse" - | "/cart" - | "/cookiePolicy" - | "/privacyPolicy" - | "/register" - | "/signin" - | "/termsService" - | "/distribute" - | "/distribute/register" - | "/distribute/signin" - | "/" - | "/games/$gameId" - | "/distribute/account" - | "/distribute/" - | "/distribute/games/$gameId" - | "/distribute/games/add" - | "/distribute/games" - | "/distribute/games/$gameId/edit"; - fileRoutesByTo: FileRoutesByTo; + | '' + | '/account' + | '/browse' + | '/cart' + | '/cookiePolicy' + | '/privacyPolicy' + | '/register' + | '/signin' + | '/termsService' + | '/underConstruction' + | '/distribute' + | '/distribute/register' + | '/distribute/signin' + | '/' + | '/games/$gameId' + | '/distribute/account' + | '/distribute/underConstruction' + | '/distribute/' + | '/distribute/games/$gameId' + | '/distribute/games/add' + | '/distribute/games' + | '/distribute/games/$gameId/edit' + fileRoutesByTo: FileRoutesByTo to: - | "/account" - | "/browse" - | "/cart" - | "/cookiePolicy" - | "/privacyPolicy" - | "/register" - | "/signin" - | "/termsService" - | "/distribute" - | "/distribute/register" - | "/distribute/signin" - | "/" - | "/games/$gameId" - | "/distribute/account" - | "/distribute/games/$gameId" - | "/distribute/games/add" - | "/distribute/games" - | "/distribute/games/$gameId/edit"; + | '/account' + | '/browse' + | '/cart' + | '/cookiePolicy' + | '/privacyPolicy' + | '/register' + | '/signin' + | '/termsService' + | '/underConstruction' + | '/distribute' + | '/distribute/register' + | '/distribute/signin' + | '/' + | '/games/$gameId' + | '/distribute/account' + | '/distribute/underConstruction' + | '/distribute/games/$gameId' + | '/distribute/games/add' + | '/distribute/games' + | '/distribute/games/$gameId/edit' id: - | "__root__" - | "/_layout" - | "/_layout/account" - | "/_layout/browse" - | "/_layout/cart" - | "/_layout/cookiePolicy" - | "/_layout/privacyPolicy" - | "/_layout/register" - | "/_layout/signin" - | "/_layout/termsService" - | "/distribute" - | "/distribute/_layout" - | "/distribute/register" - | "/distribute/signin" - | "/_layout/" - | "/_layout/games/$gameId" - | "/distribute/_layout/account" - | "/distribute/_layout/" - | "/distribute/_layout/games/$gameId" - | "/distribute/_layout/games/add" - | "/distribute/_layout/games/" - | "/distribute/_layout/games/$gameId/edit"; - fileRoutesById: FileRoutesById; + | '__root__' + | '/_layout' + | '/_layout/account' + | '/_layout/browse' + | '/_layout/cart' + | '/_layout/cookiePolicy' + | '/_layout/privacyPolicy' + | '/_layout/register' + | '/_layout/signin' + | '/_layout/termsService' + | '/_layout/underConstruction' + | '/distribute' + | '/distribute/_layout' + | '/distribute/register' + | '/distribute/signin' + | '/_layout/' + | '/_layout/games/$gameId' + | '/distribute/_layout/account' + | '/distribute/_layout/underConstruction' + | '/distribute/_layout/' + | '/distribute/_layout/games/$gameId' + | '/distribute/_layout/games/add' + | '/distribute/_layout/games/' + | '/distribute/_layout/games/$gameId/edit' + fileRoutesById: FileRoutesById } export interface RootRouteChildren { - LayoutRoute: typeof LayoutRouteWithChildren; - DistributeRoute: typeof DistributeRouteWithChildren; + LayoutRoute: typeof LayoutRouteWithChildren + DistributeRoute: typeof DistributeRouteWithChildren } const rootRouteChildren: RootRouteChildren = { LayoutRoute: LayoutRouteWithChildren, DistributeRoute: DistributeRouteWithChildren, -}; +} export const routeTree = rootRoute ._addFileChildren(rootRouteChildren) - ._addFileTypes(); + ._addFileTypes() /* prettier-ignore-end */ @@ -546,6 +590,7 @@ export const routeTree = rootRoute "/_layout/register", "/_layout/signin", "/_layout/termsService", + "/_layout/underConstruction", "/_layout/", "/_layout/games/$gameId" ] @@ -582,6 +627,10 @@ export const routeTree = rootRoute "filePath": "_layout/termsService.tsx", "parent": "/_layout" }, + "/_layout/underConstruction": { + "filePath": "_layout/underConstruction.tsx", + "parent": "/_layout" + }, "/distribute": { "filePath": "distribute", "children": [ @@ -595,6 +644,7 @@ export const routeTree = rootRoute "parent": "/distribute", "children": [ "/distribute/_layout/account", + "/distribute/_layout/underConstruction", "/distribute/_layout/", "/distribute/_layout/games/$gameId", "/distribute/_layout/games/add", @@ -622,6 +672,10 @@ export const routeTree = rootRoute "filePath": "distribute/_layout/account.tsx", "parent": "/distribute/_layout" }, + "/distribute/_layout/underConstruction": { + "filePath": "distribute/_layout/underConstruction.tsx", + "parent": "/distribute/_layout" + }, "/distribute/_layout/": { "filePath": "distribute/_layout/index.tsx", "parent": "/distribute/_layout" diff --git a/web/src/routes/_layout.tsx b/web/src/routes/_layout.tsx index 32948e7..e34b066 100644 --- a/web/src/routes/_layout.tsx +++ b/web/src/routes/_layout.tsx @@ -46,7 +46,7 @@ function Component() { className="font-medium hover:bg-transparent hover:text-primary" variant="ghost" > - News + News - + + + + + +

    This feature is under construction

    +
    +

    Release Date: June 15, 2023

    From 4e5a2e9cafd899834e3fdb0e29a1ad0d72cea5fe Mon Sep 17 00:00:00 2001 From: Goncalo-Marques <53789763+Goncalo-Marques@users.noreply.github.com> Date: Wed, 25 Dec 2024 15:15:19 +0000 Subject: [PATCH 18/42] fix: format gen file --- web/src/routeTree.gen.ts | 798 +++++++++++++++++++-------------------- 1 file changed, 399 insertions(+), 399 deletions(-) diff --git a/web/src/routeTree.gen.ts b/web/src/routeTree.gen.ts index 3e2396f..41612c7 100644 --- a/web/src/routeTree.gen.ts +++ b/web/src/routeTree.gen.ts @@ -8,342 +8,342 @@ // This file is auto-generated by TanStack Router -import { createFileRoute } from '@tanstack/react-router' +import { createFileRoute } from "@tanstack/react-router"; // Import Routes -import { Route as rootRoute } from './routes/__root' -import { Route as LayoutImport } from './routes/_layout' -import { Route as LayoutIndexImport } from './routes/_layout/index' -import { Route as DistributeSigninImport } from './routes/distribute/signin' -import { Route as DistributeRegisterImport } from './routes/distribute/register' -import { Route as DistributeLayoutImport } from './routes/distribute/_layout' -import { Route as LayoutUnderConstructionImport } from './routes/_layout/underConstruction' -import { Route as LayoutTermsServiceImport } from './routes/_layout/termsService' -import { Route as LayoutSigninImport } from './routes/_layout/signin' -import { Route as LayoutRegisterImport } from './routes/_layout/register' -import { Route as LayoutPrivacyPolicyImport } from './routes/_layout/privacyPolicy' -import { Route as LayoutCookiePolicyImport } from './routes/_layout/cookiePolicy' -import { Route as LayoutCartImport } from './routes/_layout/cart' -import { Route as LayoutBrowseImport } from './routes/_layout/browse' -import { Route as LayoutAccountImport } from './routes/_layout/account' -import { Route as DistributeLayoutIndexImport } from './routes/distribute/_layout/index' -import { Route as DistributeLayoutUnderConstructionImport } from './routes/distribute/_layout/underConstruction' -import { Route as DistributeLayoutAccountImport } from './routes/distribute/_layout/account' -import { Route as LayoutGamesGameIdImport } from './routes/_layout/games/$gameId' -import { Route as DistributeLayoutGamesIndexImport } from './routes/distribute/_layout/games/index' -import { Route as DistributeLayoutGamesAddImport } from './routes/distribute/_layout/games/add' -import { Route as DistributeLayoutGamesGameIdImport } from './routes/distribute/_layout/games/$gameId' -import { Route as DistributeLayoutGamesGameIdEditImport } from './routes/distribute/_layout/games_/$gameId/edit' +import { Route as rootRoute } from "./routes/__root"; +import { Route as LayoutImport } from "./routes/_layout"; +import { Route as LayoutIndexImport } from "./routes/_layout/index"; +import { Route as DistributeSigninImport } from "./routes/distribute/signin"; +import { Route as DistributeRegisterImport } from "./routes/distribute/register"; +import { Route as DistributeLayoutImport } from "./routes/distribute/_layout"; +import { Route as LayoutUnderConstructionImport } from "./routes/_layout/underConstruction"; +import { Route as LayoutTermsServiceImport } from "./routes/_layout/termsService"; +import { Route as LayoutSigninImport } from "./routes/_layout/signin"; +import { Route as LayoutRegisterImport } from "./routes/_layout/register"; +import { Route as LayoutPrivacyPolicyImport } from "./routes/_layout/privacyPolicy"; +import { Route as LayoutCookiePolicyImport } from "./routes/_layout/cookiePolicy"; +import { Route as LayoutCartImport } from "./routes/_layout/cart"; +import { Route as LayoutBrowseImport } from "./routes/_layout/browse"; +import { Route as LayoutAccountImport } from "./routes/_layout/account"; +import { Route as DistributeLayoutIndexImport } from "./routes/distribute/_layout/index"; +import { Route as DistributeLayoutUnderConstructionImport } from "./routes/distribute/_layout/underConstruction"; +import { Route as DistributeLayoutAccountImport } from "./routes/distribute/_layout/account"; +import { Route as LayoutGamesGameIdImport } from "./routes/_layout/games/$gameId"; +import { Route as DistributeLayoutGamesIndexImport } from "./routes/distribute/_layout/games/index"; +import { Route as DistributeLayoutGamesAddImport } from "./routes/distribute/_layout/games/add"; +import { Route as DistributeLayoutGamesGameIdImport } from "./routes/distribute/_layout/games/$gameId"; +import { Route as DistributeLayoutGamesGameIdEditImport } from "./routes/distribute/_layout/games_/$gameId/edit"; // Create Virtual Routes -const DistributeImport = createFileRoute('/distribute')() +const DistributeImport = createFileRoute("/distribute")(); // Create/Update Routes const DistributeRoute = DistributeImport.update({ - path: '/distribute', + path: "/distribute", getParentRoute: () => rootRoute, -} as any) +} as any); const LayoutRoute = LayoutImport.update({ - id: '/_layout', + id: "/_layout", getParentRoute: () => rootRoute, -} as any) +} as any); const LayoutIndexRoute = LayoutIndexImport.update({ - path: '/', + path: "/", getParentRoute: () => LayoutRoute, -} as any) +} as any); const DistributeSigninRoute = DistributeSigninImport.update({ - path: '/signin', + path: "/signin", getParentRoute: () => DistributeRoute, -} as any) +} as any); const DistributeRegisterRoute = DistributeRegisterImport.update({ - path: '/register', + path: "/register", getParentRoute: () => DistributeRoute, -} as any) +} as any); const DistributeLayoutRoute = DistributeLayoutImport.update({ - id: '/_layout', + id: "/_layout", getParentRoute: () => DistributeRoute, -} as any) +} as any); const LayoutUnderConstructionRoute = LayoutUnderConstructionImport.update({ - path: '/underConstruction', + path: "/underConstruction", getParentRoute: () => LayoutRoute, -} as any) +} as any); const LayoutTermsServiceRoute = LayoutTermsServiceImport.update({ - path: '/termsService', + path: "/termsService", getParentRoute: () => LayoutRoute, -} as any) +} as any); const LayoutSigninRoute = LayoutSigninImport.update({ - path: '/signin', + path: "/signin", getParentRoute: () => LayoutRoute, -} as any) +} as any); const LayoutRegisterRoute = LayoutRegisterImport.update({ - path: '/register', + path: "/register", getParentRoute: () => LayoutRoute, -} as any) +} as any); const LayoutPrivacyPolicyRoute = LayoutPrivacyPolicyImport.update({ - path: '/privacyPolicy', + path: "/privacyPolicy", getParentRoute: () => LayoutRoute, -} as any) +} as any); const LayoutCookiePolicyRoute = LayoutCookiePolicyImport.update({ - path: '/cookiePolicy', + path: "/cookiePolicy", getParentRoute: () => LayoutRoute, -} as any) +} as any); const LayoutCartRoute = LayoutCartImport.update({ - path: '/cart', + path: "/cart", getParentRoute: () => LayoutRoute, -} as any) +} as any); const LayoutBrowseRoute = LayoutBrowseImport.update({ - path: '/browse', + path: "/browse", getParentRoute: () => LayoutRoute, -} as any) +} as any); const LayoutAccountRoute = LayoutAccountImport.update({ - path: '/account', + path: "/account", getParentRoute: () => LayoutRoute, -} as any) +} as any); const DistributeLayoutIndexRoute = DistributeLayoutIndexImport.update({ - path: '/', + path: "/", getParentRoute: () => DistributeLayoutRoute, -} as any) +} as any); const DistributeLayoutUnderConstructionRoute = DistributeLayoutUnderConstructionImport.update({ - path: '/underConstruction', + path: "/underConstruction", getParentRoute: () => DistributeLayoutRoute, - } as any) + } as any); const DistributeLayoutAccountRoute = DistributeLayoutAccountImport.update({ - path: '/account', + path: "/account", getParentRoute: () => DistributeLayoutRoute, -} as any) +} as any); const LayoutGamesGameIdRoute = LayoutGamesGameIdImport.update({ - path: '/games/$gameId', + path: "/games/$gameId", getParentRoute: () => LayoutRoute, -} as any) +} as any); const DistributeLayoutGamesIndexRoute = DistributeLayoutGamesIndexImport.update( { - path: '/games/', + path: "/games/", getParentRoute: () => DistributeLayoutRoute, } as any, -) +); const DistributeLayoutGamesAddRoute = DistributeLayoutGamesAddImport.update({ - path: '/games/add', + path: "/games/add", getParentRoute: () => DistributeLayoutRoute, -} as any) +} as any); const DistributeLayoutGamesGameIdRoute = DistributeLayoutGamesGameIdImport.update({ - path: '/games/$gameId', + path: "/games/$gameId", getParentRoute: () => DistributeLayoutRoute, - } as any) + } as any); const DistributeLayoutGamesGameIdEditRoute = DistributeLayoutGamesGameIdEditImport.update({ - path: '/games/$gameId/edit', + path: "/games/$gameId/edit", getParentRoute: () => DistributeLayoutRoute, - } as any) + } as any); // Populate the FileRoutesByPath interface -declare module '@tanstack/react-router' { +declare module "@tanstack/react-router" { interface FileRoutesByPath { - '/_layout': { - id: '/_layout' - path: '' - fullPath: '' - preLoaderRoute: typeof LayoutImport - parentRoute: typeof rootRoute - } - '/_layout/account': { - id: '/_layout/account' - path: '/account' - fullPath: '/account' - preLoaderRoute: typeof LayoutAccountImport - parentRoute: typeof LayoutImport - } - '/_layout/browse': { - id: '/_layout/browse' - path: '/browse' - fullPath: '/browse' - preLoaderRoute: typeof LayoutBrowseImport - parentRoute: typeof LayoutImport - } - '/_layout/cart': { - id: '/_layout/cart' - path: '/cart' - fullPath: '/cart' - preLoaderRoute: typeof LayoutCartImport - parentRoute: typeof LayoutImport - } - '/_layout/cookiePolicy': { - id: '/_layout/cookiePolicy' - path: '/cookiePolicy' - fullPath: '/cookiePolicy' - preLoaderRoute: typeof LayoutCookiePolicyImport - parentRoute: typeof LayoutImport - } - '/_layout/privacyPolicy': { - id: '/_layout/privacyPolicy' - path: '/privacyPolicy' - fullPath: '/privacyPolicy' - preLoaderRoute: typeof LayoutPrivacyPolicyImport - parentRoute: typeof LayoutImport - } - '/_layout/register': { - id: '/_layout/register' - path: '/register' - fullPath: '/register' - preLoaderRoute: typeof LayoutRegisterImport - parentRoute: typeof LayoutImport - } - '/_layout/signin': { - id: '/_layout/signin' - path: '/signin' - fullPath: '/signin' - preLoaderRoute: typeof LayoutSigninImport - parentRoute: typeof LayoutImport - } - '/_layout/termsService': { - id: '/_layout/termsService' - path: '/termsService' - fullPath: '/termsService' - preLoaderRoute: typeof LayoutTermsServiceImport - parentRoute: typeof LayoutImport - } - '/_layout/underConstruction': { - id: '/_layout/underConstruction' - path: '/underConstruction' - fullPath: '/underConstruction' - preLoaderRoute: typeof LayoutUnderConstructionImport - parentRoute: typeof LayoutImport - } - '/distribute': { - id: '/distribute' - path: '/distribute' - fullPath: '/distribute' - preLoaderRoute: typeof DistributeImport - parentRoute: typeof rootRoute - } - '/distribute/_layout': { - id: '/distribute/_layout' - path: '/distribute' - fullPath: '/distribute' - preLoaderRoute: typeof DistributeLayoutImport - parentRoute: typeof DistributeRoute - } - '/distribute/register': { - id: '/distribute/register' - path: '/register' - fullPath: '/distribute/register' - preLoaderRoute: typeof DistributeRegisterImport - parentRoute: typeof DistributeImport - } - '/distribute/signin': { - id: '/distribute/signin' - path: '/signin' - fullPath: '/distribute/signin' - preLoaderRoute: typeof DistributeSigninImport - parentRoute: typeof DistributeImport - } - '/_layout/': { - id: '/_layout/' - path: '/' - fullPath: '/' - preLoaderRoute: typeof LayoutIndexImport - parentRoute: typeof LayoutImport - } - '/_layout/games/$gameId': { - id: '/_layout/games/$gameId' - path: '/games/$gameId' - fullPath: '/games/$gameId' - preLoaderRoute: typeof LayoutGamesGameIdImport - parentRoute: typeof LayoutImport - } - '/distribute/_layout/account': { - id: '/distribute/_layout/account' - path: '/account' - fullPath: '/distribute/account' - preLoaderRoute: typeof DistributeLayoutAccountImport - parentRoute: typeof DistributeLayoutImport - } - '/distribute/_layout/underConstruction': { - id: '/distribute/_layout/underConstruction' - path: '/underConstruction' - fullPath: '/distribute/underConstruction' - preLoaderRoute: typeof DistributeLayoutUnderConstructionImport - parentRoute: typeof DistributeLayoutImport - } - '/distribute/_layout/': { - id: '/distribute/_layout/' - path: '/' - fullPath: '/distribute/' - preLoaderRoute: typeof DistributeLayoutIndexImport - parentRoute: typeof DistributeLayoutImport - } - '/distribute/_layout/games/$gameId': { - id: '/distribute/_layout/games/$gameId' - path: '/games/$gameId' - fullPath: '/distribute/games/$gameId' - preLoaderRoute: typeof DistributeLayoutGamesGameIdImport - parentRoute: typeof DistributeLayoutImport - } - '/distribute/_layout/games/add': { - id: '/distribute/_layout/games/add' - path: '/games/add' - fullPath: '/distribute/games/add' - preLoaderRoute: typeof DistributeLayoutGamesAddImport - parentRoute: typeof DistributeLayoutImport - } - '/distribute/_layout/games/': { - id: '/distribute/_layout/games/' - path: '/games' - fullPath: '/distribute/games' - preLoaderRoute: typeof DistributeLayoutGamesIndexImport - parentRoute: typeof DistributeLayoutImport - } - '/distribute/_layout/games/$gameId/edit': { - id: '/distribute/_layout/games/$gameId/edit' - path: '/games/$gameId/edit' - fullPath: '/distribute/games/$gameId/edit' - preLoaderRoute: typeof DistributeLayoutGamesGameIdEditImport - parentRoute: typeof DistributeLayoutImport - } + "/_layout": { + id: "/_layout"; + path: ""; + fullPath: ""; + preLoaderRoute: typeof LayoutImport; + parentRoute: typeof rootRoute; + }; + "/_layout/account": { + id: "/_layout/account"; + path: "/account"; + fullPath: "/account"; + preLoaderRoute: typeof LayoutAccountImport; + parentRoute: typeof LayoutImport; + }; + "/_layout/browse": { + id: "/_layout/browse"; + path: "/browse"; + fullPath: "/browse"; + preLoaderRoute: typeof LayoutBrowseImport; + parentRoute: typeof LayoutImport; + }; + "/_layout/cart": { + id: "/_layout/cart"; + path: "/cart"; + fullPath: "/cart"; + preLoaderRoute: typeof LayoutCartImport; + parentRoute: typeof LayoutImport; + }; + "/_layout/cookiePolicy": { + id: "/_layout/cookiePolicy"; + path: "/cookiePolicy"; + fullPath: "/cookiePolicy"; + preLoaderRoute: typeof LayoutCookiePolicyImport; + parentRoute: typeof LayoutImport; + }; + "/_layout/privacyPolicy": { + id: "/_layout/privacyPolicy"; + path: "/privacyPolicy"; + fullPath: "/privacyPolicy"; + preLoaderRoute: typeof LayoutPrivacyPolicyImport; + parentRoute: typeof LayoutImport; + }; + "/_layout/register": { + id: "/_layout/register"; + path: "/register"; + fullPath: "/register"; + preLoaderRoute: typeof LayoutRegisterImport; + parentRoute: typeof LayoutImport; + }; + "/_layout/signin": { + id: "/_layout/signin"; + path: "/signin"; + fullPath: "/signin"; + preLoaderRoute: typeof LayoutSigninImport; + parentRoute: typeof LayoutImport; + }; + "/_layout/termsService": { + id: "/_layout/termsService"; + path: "/termsService"; + fullPath: "/termsService"; + preLoaderRoute: typeof LayoutTermsServiceImport; + parentRoute: typeof LayoutImport; + }; + "/_layout/underConstruction": { + id: "/_layout/underConstruction"; + path: "/underConstruction"; + fullPath: "/underConstruction"; + preLoaderRoute: typeof LayoutUnderConstructionImport; + parentRoute: typeof LayoutImport; + }; + "/distribute": { + id: "/distribute"; + path: "/distribute"; + fullPath: "/distribute"; + preLoaderRoute: typeof DistributeImport; + parentRoute: typeof rootRoute; + }; + "/distribute/_layout": { + id: "/distribute/_layout"; + path: "/distribute"; + fullPath: "/distribute"; + preLoaderRoute: typeof DistributeLayoutImport; + parentRoute: typeof DistributeRoute; + }; + "/distribute/register": { + id: "/distribute/register"; + path: "/register"; + fullPath: "/distribute/register"; + preLoaderRoute: typeof DistributeRegisterImport; + parentRoute: typeof DistributeImport; + }; + "/distribute/signin": { + id: "/distribute/signin"; + path: "/signin"; + fullPath: "/distribute/signin"; + preLoaderRoute: typeof DistributeSigninImport; + parentRoute: typeof DistributeImport; + }; + "/_layout/": { + id: "/_layout/"; + path: "/"; + fullPath: "/"; + preLoaderRoute: typeof LayoutIndexImport; + parentRoute: typeof LayoutImport; + }; + "/_layout/games/$gameId": { + id: "/_layout/games/$gameId"; + path: "/games/$gameId"; + fullPath: "/games/$gameId"; + preLoaderRoute: typeof LayoutGamesGameIdImport; + parentRoute: typeof LayoutImport; + }; + "/distribute/_layout/account": { + id: "/distribute/_layout/account"; + path: "/account"; + fullPath: "/distribute/account"; + preLoaderRoute: typeof DistributeLayoutAccountImport; + parentRoute: typeof DistributeLayoutImport; + }; + "/distribute/_layout/underConstruction": { + id: "/distribute/_layout/underConstruction"; + path: "/underConstruction"; + fullPath: "/distribute/underConstruction"; + preLoaderRoute: typeof DistributeLayoutUnderConstructionImport; + parentRoute: typeof DistributeLayoutImport; + }; + "/distribute/_layout/": { + id: "/distribute/_layout/"; + path: "/"; + fullPath: "/distribute/"; + preLoaderRoute: typeof DistributeLayoutIndexImport; + parentRoute: typeof DistributeLayoutImport; + }; + "/distribute/_layout/games/$gameId": { + id: "/distribute/_layout/games/$gameId"; + path: "/games/$gameId"; + fullPath: "/distribute/games/$gameId"; + preLoaderRoute: typeof DistributeLayoutGamesGameIdImport; + parentRoute: typeof DistributeLayoutImport; + }; + "/distribute/_layout/games/add": { + id: "/distribute/_layout/games/add"; + path: "/games/add"; + fullPath: "/distribute/games/add"; + preLoaderRoute: typeof DistributeLayoutGamesAddImport; + parentRoute: typeof DistributeLayoutImport; + }; + "/distribute/_layout/games/": { + id: "/distribute/_layout/games/"; + path: "/games"; + fullPath: "/distribute/games"; + preLoaderRoute: typeof DistributeLayoutGamesIndexImport; + parentRoute: typeof DistributeLayoutImport; + }; + "/distribute/_layout/games/$gameId/edit": { + id: "/distribute/_layout/games/$gameId/edit"; + path: "/games/$gameId/edit"; + fullPath: "/distribute/games/$gameId/edit"; + preLoaderRoute: typeof DistributeLayoutGamesGameIdEditImport; + parentRoute: typeof DistributeLayoutImport; + }; } } // Create and export the route tree interface LayoutRouteChildren { - LayoutAccountRoute: typeof LayoutAccountRoute - LayoutBrowseRoute: typeof LayoutBrowseRoute - LayoutCartRoute: typeof LayoutCartRoute - LayoutCookiePolicyRoute: typeof LayoutCookiePolicyRoute - LayoutPrivacyPolicyRoute: typeof LayoutPrivacyPolicyRoute - LayoutRegisterRoute: typeof LayoutRegisterRoute - LayoutSigninRoute: typeof LayoutSigninRoute - LayoutTermsServiceRoute: typeof LayoutTermsServiceRoute - LayoutUnderConstructionRoute: typeof LayoutUnderConstructionRoute - LayoutIndexRoute: typeof LayoutIndexRoute - LayoutGamesGameIdRoute: typeof LayoutGamesGameIdRoute + LayoutAccountRoute: typeof LayoutAccountRoute; + LayoutBrowseRoute: typeof LayoutBrowseRoute; + LayoutCartRoute: typeof LayoutCartRoute; + LayoutCookiePolicyRoute: typeof LayoutCookiePolicyRoute; + LayoutPrivacyPolicyRoute: typeof LayoutPrivacyPolicyRoute; + LayoutRegisterRoute: typeof LayoutRegisterRoute; + LayoutSigninRoute: typeof LayoutSigninRoute; + LayoutTermsServiceRoute: typeof LayoutTermsServiceRoute; + LayoutUnderConstructionRoute: typeof LayoutUnderConstructionRoute; + LayoutIndexRoute: typeof LayoutIndexRoute; + LayoutGamesGameIdRoute: typeof LayoutGamesGameIdRoute; } const LayoutRouteChildren: LayoutRouteChildren = { @@ -358,19 +358,19 @@ const LayoutRouteChildren: LayoutRouteChildren = { LayoutUnderConstructionRoute: LayoutUnderConstructionRoute, LayoutIndexRoute: LayoutIndexRoute, LayoutGamesGameIdRoute: LayoutGamesGameIdRoute, -} +}; const LayoutRouteWithChildren = - LayoutRoute._addFileChildren(LayoutRouteChildren) + LayoutRoute._addFileChildren(LayoutRouteChildren); interface DistributeLayoutRouteChildren { - DistributeLayoutAccountRoute: typeof DistributeLayoutAccountRoute - DistributeLayoutUnderConstructionRoute: typeof DistributeLayoutUnderConstructionRoute - DistributeLayoutIndexRoute: typeof DistributeLayoutIndexRoute - DistributeLayoutGamesGameIdRoute: typeof DistributeLayoutGamesGameIdRoute - DistributeLayoutGamesAddRoute: typeof DistributeLayoutGamesAddRoute - DistributeLayoutGamesIndexRoute: typeof DistributeLayoutGamesIndexRoute - DistributeLayoutGamesGameIdEditRoute: typeof DistributeLayoutGamesGameIdEditRoute + DistributeLayoutAccountRoute: typeof DistributeLayoutAccountRoute; + DistributeLayoutUnderConstructionRoute: typeof DistributeLayoutUnderConstructionRoute; + DistributeLayoutIndexRoute: typeof DistributeLayoutIndexRoute; + DistributeLayoutGamesGameIdRoute: typeof DistributeLayoutGamesGameIdRoute; + DistributeLayoutGamesAddRoute: typeof DistributeLayoutGamesAddRoute; + DistributeLayoutGamesIndexRoute: typeof DistributeLayoutGamesIndexRoute; + DistributeLayoutGamesGameIdEditRoute: typeof DistributeLayoutGamesGameIdEditRoute; } const DistributeLayoutRouteChildren: DistributeLayoutRouteChildren = { @@ -382,190 +382,190 @@ const DistributeLayoutRouteChildren: DistributeLayoutRouteChildren = { DistributeLayoutGamesAddRoute: DistributeLayoutGamesAddRoute, DistributeLayoutGamesIndexRoute: DistributeLayoutGamesIndexRoute, DistributeLayoutGamesGameIdEditRoute: DistributeLayoutGamesGameIdEditRoute, -} +}; const DistributeLayoutRouteWithChildren = - DistributeLayoutRoute._addFileChildren(DistributeLayoutRouteChildren) + DistributeLayoutRoute._addFileChildren(DistributeLayoutRouteChildren); interface DistributeRouteChildren { - DistributeLayoutRoute: typeof DistributeLayoutRouteWithChildren - DistributeRegisterRoute: typeof DistributeRegisterRoute - DistributeSigninRoute: typeof DistributeSigninRoute + DistributeLayoutRoute: typeof DistributeLayoutRouteWithChildren; + DistributeRegisterRoute: typeof DistributeRegisterRoute; + DistributeSigninRoute: typeof DistributeSigninRoute; } const DistributeRouteChildren: DistributeRouteChildren = { DistributeLayoutRoute: DistributeLayoutRouteWithChildren, DistributeRegisterRoute: DistributeRegisterRoute, DistributeSigninRoute: DistributeSigninRoute, -} +}; const DistributeRouteWithChildren = DistributeRoute._addFileChildren( DistributeRouteChildren, -) +); export interface FileRoutesByFullPath { - '': typeof LayoutRouteWithChildren - '/account': typeof LayoutAccountRoute - '/browse': typeof LayoutBrowseRoute - '/cart': typeof LayoutCartRoute - '/cookiePolicy': typeof LayoutCookiePolicyRoute - '/privacyPolicy': typeof LayoutPrivacyPolicyRoute - '/register': typeof LayoutRegisterRoute - '/signin': typeof LayoutSigninRoute - '/termsService': typeof LayoutTermsServiceRoute - '/underConstruction': typeof LayoutUnderConstructionRoute - '/distribute': typeof DistributeLayoutRouteWithChildren - '/distribute/register': typeof DistributeRegisterRoute - '/distribute/signin': typeof DistributeSigninRoute - '/': typeof LayoutIndexRoute - '/games/$gameId': typeof LayoutGamesGameIdRoute - '/distribute/account': typeof DistributeLayoutAccountRoute - '/distribute/underConstruction': typeof DistributeLayoutUnderConstructionRoute - '/distribute/': typeof DistributeLayoutIndexRoute - '/distribute/games/$gameId': typeof DistributeLayoutGamesGameIdRoute - '/distribute/games/add': typeof DistributeLayoutGamesAddRoute - '/distribute/games': typeof DistributeLayoutGamesIndexRoute - '/distribute/games/$gameId/edit': typeof DistributeLayoutGamesGameIdEditRoute + "": typeof LayoutRouteWithChildren; + "/account": typeof LayoutAccountRoute; + "/browse": typeof LayoutBrowseRoute; + "/cart": typeof LayoutCartRoute; + "/cookiePolicy": typeof LayoutCookiePolicyRoute; + "/privacyPolicy": typeof LayoutPrivacyPolicyRoute; + "/register": typeof LayoutRegisterRoute; + "/signin": typeof LayoutSigninRoute; + "/termsService": typeof LayoutTermsServiceRoute; + "/underConstruction": typeof LayoutUnderConstructionRoute; + "/distribute": typeof DistributeLayoutRouteWithChildren; + "/distribute/register": typeof DistributeRegisterRoute; + "/distribute/signin": typeof DistributeSigninRoute; + "/": typeof LayoutIndexRoute; + "/games/$gameId": typeof LayoutGamesGameIdRoute; + "/distribute/account": typeof DistributeLayoutAccountRoute; + "/distribute/underConstruction": typeof DistributeLayoutUnderConstructionRoute; + "/distribute/": typeof DistributeLayoutIndexRoute; + "/distribute/games/$gameId": typeof DistributeLayoutGamesGameIdRoute; + "/distribute/games/add": typeof DistributeLayoutGamesAddRoute; + "/distribute/games": typeof DistributeLayoutGamesIndexRoute; + "/distribute/games/$gameId/edit": typeof DistributeLayoutGamesGameIdEditRoute; } export interface FileRoutesByTo { - '/account': typeof LayoutAccountRoute - '/browse': typeof LayoutBrowseRoute - '/cart': typeof LayoutCartRoute - '/cookiePolicy': typeof LayoutCookiePolicyRoute - '/privacyPolicy': typeof LayoutPrivacyPolicyRoute - '/register': typeof LayoutRegisterRoute - '/signin': typeof LayoutSigninRoute - '/termsService': typeof LayoutTermsServiceRoute - '/underConstruction': typeof LayoutUnderConstructionRoute - '/distribute': typeof DistributeLayoutIndexRoute - '/distribute/register': typeof DistributeRegisterRoute - '/distribute/signin': typeof DistributeSigninRoute - '/': typeof LayoutIndexRoute - '/games/$gameId': typeof LayoutGamesGameIdRoute - '/distribute/account': typeof DistributeLayoutAccountRoute - '/distribute/underConstruction': typeof DistributeLayoutUnderConstructionRoute - '/distribute/games/$gameId': typeof DistributeLayoutGamesGameIdRoute - '/distribute/games/add': typeof DistributeLayoutGamesAddRoute - '/distribute/games': typeof DistributeLayoutGamesIndexRoute - '/distribute/games/$gameId/edit': typeof DistributeLayoutGamesGameIdEditRoute + "/account": typeof LayoutAccountRoute; + "/browse": typeof LayoutBrowseRoute; + "/cart": typeof LayoutCartRoute; + "/cookiePolicy": typeof LayoutCookiePolicyRoute; + "/privacyPolicy": typeof LayoutPrivacyPolicyRoute; + "/register": typeof LayoutRegisterRoute; + "/signin": typeof LayoutSigninRoute; + "/termsService": typeof LayoutTermsServiceRoute; + "/underConstruction": typeof LayoutUnderConstructionRoute; + "/distribute": typeof DistributeLayoutIndexRoute; + "/distribute/register": typeof DistributeRegisterRoute; + "/distribute/signin": typeof DistributeSigninRoute; + "/": typeof LayoutIndexRoute; + "/games/$gameId": typeof LayoutGamesGameIdRoute; + "/distribute/account": typeof DistributeLayoutAccountRoute; + "/distribute/underConstruction": typeof DistributeLayoutUnderConstructionRoute; + "/distribute/games/$gameId": typeof DistributeLayoutGamesGameIdRoute; + "/distribute/games/add": typeof DistributeLayoutGamesAddRoute; + "/distribute/games": typeof DistributeLayoutGamesIndexRoute; + "/distribute/games/$gameId/edit": typeof DistributeLayoutGamesGameIdEditRoute; } export interface FileRoutesById { - __root__: typeof rootRoute - '/_layout': typeof LayoutRouteWithChildren - '/_layout/account': typeof LayoutAccountRoute - '/_layout/browse': typeof LayoutBrowseRoute - '/_layout/cart': typeof LayoutCartRoute - '/_layout/cookiePolicy': typeof LayoutCookiePolicyRoute - '/_layout/privacyPolicy': typeof LayoutPrivacyPolicyRoute - '/_layout/register': typeof LayoutRegisterRoute - '/_layout/signin': typeof LayoutSigninRoute - '/_layout/termsService': typeof LayoutTermsServiceRoute - '/_layout/underConstruction': typeof LayoutUnderConstructionRoute - '/distribute': typeof DistributeRouteWithChildren - '/distribute/_layout': typeof DistributeLayoutRouteWithChildren - '/distribute/register': typeof DistributeRegisterRoute - '/distribute/signin': typeof DistributeSigninRoute - '/_layout/': typeof LayoutIndexRoute - '/_layout/games/$gameId': typeof LayoutGamesGameIdRoute - '/distribute/_layout/account': typeof DistributeLayoutAccountRoute - '/distribute/_layout/underConstruction': typeof DistributeLayoutUnderConstructionRoute - '/distribute/_layout/': typeof DistributeLayoutIndexRoute - '/distribute/_layout/games/$gameId': typeof DistributeLayoutGamesGameIdRoute - '/distribute/_layout/games/add': typeof DistributeLayoutGamesAddRoute - '/distribute/_layout/games/': typeof DistributeLayoutGamesIndexRoute - '/distribute/_layout/games/$gameId/edit': typeof DistributeLayoutGamesGameIdEditRoute + __root__: typeof rootRoute; + "/_layout": typeof LayoutRouteWithChildren; + "/_layout/account": typeof LayoutAccountRoute; + "/_layout/browse": typeof LayoutBrowseRoute; + "/_layout/cart": typeof LayoutCartRoute; + "/_layout/cookiePolicy": typeof LayoutCookiePolicyRoute; + "/_layout/privacyPolicy": typeof LayoutPrivacyPolicyRoute; + "/_layout/register": typeof LayoutRegisterRoute; + "/_layout/signin": typeof LayoutSigninRoute; + "/_layout/termsService": typeof LayoutTermsServiceRoute; + "/_layout/underConstruction": typeof LayoutUnderConstructionRoute; + "/distribute": typeof DistributeRouteWithChildren; + "/distribute/_layout": typeof DistributeLayoutRouteWithChildren; + "/distribute/register": typeof DistributeRegisterRoute; + "/distribute/signin": typeof DistributeSigninRoute; + "/_layout/": typeof LayoutIndexRoute; + "/_layout/games/$gameId": typeof LayoutGamesGameIdRoute; + "/distribute/_layout/account": typeof DistributeLayoutAccountRoute; + "/distribute/_layout/underConstruction": typeof DistributeLayoutUnderConstructionRoute; + "/distribute/_layout/": typeof DistributeLayoutIndexRoute; + "/distribute/_layout/games/$gameId": typeof DistributeLayoutGamesGameIdRoute; + "/distribute/_layout/games/add": typeof DistributeLayoutGamesAddRoute; + "/distribute/_layout/games/": typeof DistributeLayoutGamesIndexRoute; + "/distribute/_layout/games/$gameId/edit": typeof DistributeLayoutGamesGameIdEditRoute; } export interface FileRouteTypes { - fileRoutesByFullPath: FileRoutesByFullPath + fileRoutesByFullPath: FileRoutesByFullPath; fullPaths: - | '' - | '/account' - | '/browse' - | '/cart' - | '/cookiePolicy' - | '/privacyPolicy' - | '/register' - | '/signin' - | '/termsService' - | '/underConstruction' - | '/distribute' - | '/distribute/register' - | '/distribute/signin' - | '/' - | '/games/$gameId' - | '/distribute/account' - | '/distribute/underConstruction' - | '/distribute/' - | '/distribute/games/$gameId' - | '/distribute/games/add' - | '/distribute/games' - | '/distribute/games/$gameId/edit' - fileRoutesByTo: FileRoutesByTo + | "" + | "/account" + | "/browse" + | "/cart" + | "/cookiePolicy" + | "/privacyPolicy" + | "/register" + | "/signin" + | "/termsService" + | "/underConstruction" + | "/distribute" + | "/distribute/register" + | "/distribute/signin" + | "/" + | "/games/$gameId" + | "/distribute/account" + | "/distribute/underConstruction" + | "/distribute/" + | "/distribute/games/$gameId" + | "/distribute/games/add" + | "/distribute/games" + | "/distribute/games/$gameId/edit"; + fileRoutesByTo: FileRoutesByTo; to: - | '/account' - | '/browse' - | '/cart' - | '/cookiePolicy' - | '/privacyPolicy' - | '/register' - | '/signin' - | '/termsService' - | '/underConstruction' - | '/distribute' - | '/distribute/register' - | '/distribute/signin' - | '/' - | '/games/$gameId' - | '/distribute/account' - | '/distribute/underConstruction' - | '/distribute/games/$gameId' - | '/distribute/games/add' - | '/distribute/games' - | '/distribute/games/$gameId/edit' + | "/account" + | "/browse" + | "/cart" + | "/cookiePolicy" + | "/privacyPolicy" + | "/register" + | "/signin" + | "/termsService" + | "/underConstruction" + | "/distribute" + | "/distribute/register" + | "/distribute/signin" + | "/" + | "/games/$gameId" + | "/distribute/account" + | "/distribute/underConstruction" + | "/distribute/games/$gameId" + | "/distribute/games/add" + | "/distribute/games" + | "/distribute/games/$gameId/edit"; id: - | '__root__' - | '/_layout' - | '/_layout/account' - | '/_layout/browse' - | '/_layout/cart' - | '/_layout/cookiePolicy' - | '/_layout/privacyPolicy' - | '/_layout/register' - | '/_layout/signin' - | '/_layout/termsService' - | '/_layout/underConstruction' - | '/distribute' - | '/distribute/_layout' - | '/distribute/register' - | '/distribute/signin' - | '/_layout/' - | '/_layout/games/$gameId' - | '/distribute/_layout/account' - | '/distribute/_layout/underConstruction' - | '/distribute/_layout/' - | '/distribute/_layout/games/$gameId' - | '/distribute/_layout/games/add' - | '/distribute/_layout/games/' - | '/distribute/_layout/games/$gameId/edit' - fileRoutesById: FileRoutesById + | "__root__" + | "/_layout" + | "/_layout/account" + | "/_layout/browse" + | "/_layout/cart" + | "/_layout/cookiePolicy" + | "/_layout/privacyPolicy" + | "/_layout/register" + | "/_layout/signin" + | "/_layout/termsService" + | "/_layout/underConstruction" + | "/distribute" + | "/distribute/_layout" + | "/distribute/register" + | "/distribute/signin" + | "/_layout/" + | "/_layout/games/$gameId" + | "/distribute/_layout/account" + | "/distribute/_layout/underConstruction" + | "/distribute/_layout/" + | "/distribute/_layout/games/$gameId" + | "/distribute/_layout/games/add" + | "/distribute/_layout/games/" + | "/distribute/_layout/games/$gameId/edit"; + fileRoutesById: FileRoutesById; } export interface RootRouteChildren { - LayoutRoute: typeof LayoutRouteWithChildren - DistributeRoute: typeof DistributeRouteWithChildren + LayoutRoute: typeof LayoutRouteWithChildren; + DistributeRoute: typeof DistributeRouteWithChildren; } const rootRouteChildren: RootRouteChildren = { LayoutRoute: LayoutRouteWithChildren, DistributeRoute: DistributeRouteWithChildren, -} +}; export const routeTree = rootRoute ._addFileChildren(rootRouteChildren) - ._addFileTypes() + ._addFileTypes(); /* prettier-ignore-end */ From a4e7802dfef8353d7ceb2691d9a1c5220a292f42 Mon Sep 17 00:00:00 2001 From: Goncalo-Marques <53789763+Goncalo-Marques@users.noreply.github.com> Date: Wed, 25 Dec 2024 15:19:23 +0000 Subject: [PATCH 19/42] fix_ lint --- web/src/routeTree.gen.ts | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/web/src/routeTree.gen.ts b/web/src/routeTree.gen.ts index 8ea45fe..41612c7 100644 --- a/web/src/routeTree.gen.ts +++ b/web/src/routeTree.gen.ts @@ -72,11 +72,6 @@ const DistributeLayoutRoute = DistributeLayoutImport.update({ getParentRoute: () => DistributeRoute, } as any); -const LayoutTermsServiceRoute = LayoutTermsServiceImport.update({ - path: "/termsService", - getParentRoute: () => LayoutRoute, -} as any); - const LayoutUnderConstructionRoute = LayoutUnderConstructionImport.update({ path: "/underConstruction", getParentRoute: () => LayoutRoute, @@ -107,16 +102,6 @@ const LayoutCookiePolicyRoute = LayoutCookiePolicyImport.update({ getParentRoute: () => LayoutRoute, } as any); -const LayoutPrivacyPolicyRoute = LayoutPrivacyPolicyImport.update({ - path: "/privacyPolicy", - getParentRoute: () => LayoutRoute, -} as any); - -const LayoutCookiePolicyRoute = LayoutCookiePolicyImport.update({ - path: "/cookiePolicy", - getParentRoute: () => LayoutRoute, -} as any); - const LayoutCartRoute = LayoutCartImport.update({ path: "/cart", getParentRoute: () => LayoutRoute, From 3abc1e881476aa81e8e2e945ef41eee3248e57e2 Mon Sep 17 00:00:00 2001 From: Goncalo-Marques <53789763+Goncalo-Marques@users.noreply.github.com> Date: Wed, 25 Dec 2024 16:41:50 +0000 Subject: [PATCH 20/42] feat: add missing footer links --- web/src/routes/_layout.tsx | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/web/src/routes/_layout.tsx b/web/src/routes/_layout.tsx index e34b066..67f7b1d 100644 --- a/web/src/routes/_layout.tsx +++ b/web/src/routes/_layout.tsx @@ -132,17 +132,24 @@ function Component() {

    Browse

    @@ -153,10 +188,10 @@ function Component() { } function Section(props: { - children: ReactNode; title: string; href: string; - id?: string; + id: string; + paginatedGames: PaginatedGames; }) { return (
    @@ -166,7 +201,16 @@ function Section(props: {
    - {props.children} + {props.paginatedGames.games.map((game) => ( + + + + ))}
    ); From 82a3fe41676e414a9b66b55e8f0c53afdd66ccb1 Mon Sep 17 00:00:00 2001 From: Goncalo-Marques <53789763+Goncalo-Marques@users.noreply.github.com> Date: Thu, 26 Dec 2024 11:46:37 +0000 Subject: [PATCH 26/42] refactor: optimize code --- web/src/routes/_layout.tsx | 5 ++--- web/src/routes/_layout/index.tsx | 10 ++++------ 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/web/src/routes/_layout.tsx b/web/src/routes/_layout.tsx index 67f7b1d..0a304e1 100644 --- a/web/src/routes/_layout.tsx +++ b/web/src/routes/_layout.tsx @@ -137,10 +137,9 @@ function Component() {
  • - {/* TODO: Is active true by default? */} Upcoming Releases @@ -148,7 +147,7 @@ function Component() {
  • Best Sellers diff --git a/web/src/routes/_layout/index.tsx b/web/src/routes/_layout/index.tsx index 108d31b..41bf93c 100644 --- a/web/src/routes/_layout/index.tsx +++ b/web/src/routes/_layout/index.tsx @@ -91,7 +91,7 @@ function Component() { // Maps the genre IDs by their label. const genreIds: Record = {}; - genres.map((genre) => { + genres.forEach((genre) => { const tag = tags.find( (tag) => tag.name.toLowerCase() === genre.label.toLowerCase(), ); @@ -141,14 +141,14 @@ function Component() { />
    - +
    Date: Thu, 26 Dec 2024 12:22:13 +0000 Subject: [PATCH 27/42] wip --- .../components/distribute/navbar/nav-link.tsx | 7 +- .../components/distribute/navbar/navbar.tsx | 14 +- ...onstruction.tsx => under-construction.tsx} | 18 +- web/src/routeTree.gen.ts | 828 +++++++++--------- web/src/routes/_layout.tsx | 46 +- web/src/routes/_layout/account.tsx | 4 +- web/src/routes/_layout/browse.tsx | 6 +- .../{cookiePolicy.tsx => cookie-policy.tsx} | 10 +- web/src/routes/_layout/games/$gameId.tsx | 2 +- .../{privacyPolicy.tsx => privacy-policy.tsx} | 10 +- .../{termsService.tsx => terms-service.tsx} | 2 +- ...onstruction.tsx => under-construction.tsx} | 4 +- web/src/routes/distribute/_layout.tsx | 8 +- .../distribute/_layout/under-construction.tsx | 16 + .../distribute/_layout/underConstruction.tsx | 11 - 15 files changed, 501 insertions(+), 485 deletions(-) rename web/src/components/{underConstruction.tsx => under-construction.tsx} (55%) rename web/src/routes/_layout/{cookiePolicy.tsx => cookie-policy.tsx} (94%) rename web/src/routes/_layout/{privacyPolicy.tsx => privacy-policy.tsx} (96%) rename web/src/routes/_layout/{termsService.tsx => terms-service.tsx} (98%) rename web/src/routes/_layout/{underConstruction.tsx => under-construction.tsx} (52%) create mode 100644 web/src/routes/distribute/_layout/under-construction.tsx delete mode 100644 web/src/routes/distribute/_layout/underConstruction.tsx diff --git a/web/src/components/distribute/navbar/nav-link.tsx b/web/src/components/distribute/navbar/nav-link.tsx index 91e46d5..44f1d82 100644 --- a/web/src/components/distribute/navbar/nav-link.tsx +++ b/web/src/components/distribute/navbar/nav-link.tsx @@ -1,23 +1,24 @@ import { MouseEvent } from "react"; import { Link } from "@tanstack/react-router"; +import { LinkProps } from "@tanstack/react-router"; import { cn } from "@/lib/utils"; export function NavLink({ - href, + to, children, active, onClick, }: { - href: string; + to: LinkProps["to"]; children: React.ReactNode; active: boolean; onClick?: (event: MouseEvent) => void; }) { return (
    - + GOOFR Gaming Store Logo
    - + GOOFR Gaming Store Logo - +

    Distribution Center

    @@ -132,7 +132,7 @@ export function DistributeNavbar(props: { variant: "simple" | "full" }) {
    - ) + ); } From 12da22620cffd29711c22f8c98fc2f4265fd7e27 Mon Sep 17 00:00:00 2001 From: Goncalo-Marques <53789763+Goncalo-Marques@users.noreply.github.com> Date: Thu, 26 Dec 2024 12:32:29 +0000 Subject: [PATCH 29/42] feat: optimize under construction page --- web/src/components/under-construction.tsx | 2 +- web/src/routes/_layout/under-construction.tsx | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/web/src/components/under-construction.tsx b/web/src/components/under-construction.tsx index 2be3185..e0587af 100644 --- a/web/src/components/under-construction.tsx +++ b/web/src/components/under-construction.tsx @@ -6,7 +6,7 @@ import { cn } from "@/lib/utils"; export function UnderConstructionPage(props: { showBack?: boolean }) { return ( -
    +

    Under Construction

    diff --git a/web/src/routes/_layout/under-construction.tsx b/web/src/routes/_layout/under-construction.tsx index 4e6fc39..96f9111 100644 --- a/web/src/routes/_layout/under-construction.tsx +++ b/web/src/routes/_layout/under-construction.tsx @@ -7,5 +7,9 @@ export const Route = createFileRoute("/_layout/under-construction")({ }); function Component() { - return ; + return ( +
    + +
    + ); } From 38518edb083cd5671157422d7eacdab53ffa4234 Mon Sep 17 00:00:00 2001 From: Goncalo-Marques <53789763+Goncalo-Marques@users.noreply.github.com> Date: Thu, 26 Dec 2024 12:43:26 +0000 Subject: [PATCH 30/42] fix: correct tooltip --- web/src/routes/_layout/games/$gameId.tsx | 19 ++++++++++--------- .../distribute/_layout/games/$gameId.tsx | 2 +- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/web/src/routes/_layout/games/$gameId.tsx b/web/src/routes/_layout/games/$gameId.tsx index ec54ae7..fe1c238 100644 --- a/web/src/routes/_layout/games/$gameId.tsx +++ b/web/src/routes/_layout/games/$gameId.tsx @@ -1,16 +1,16 @@ -import { - Tooltip, - TooltipContent, - TooltipTrigger, -} from "@radix-ui/react-tooltip"; import { createFileRoute, Link } from "@tanstack/react-router"; -import { ShoppingCart, Star } from "lucide-react"; +import { Heart, ShoppingCart, Star } from "lucide-react"; import { Carousel } from "@/components/carousel"; import { Game } from "@/components/game"; import { Badge } from "@/components/ui/badge"; import { Button } from "@/components/ui/button"; import { Card, CardContent } from "@/components/ui/card"; +import { + Tooltip, + TooltipContent, + TooltipTrigger, +} from "@/components/ui/tooltip"; export const Route = createFileRoute("/_layout/games/$gameId")({ component: Component, @@ -103,7 +103,7 @@ function Component() {
    @@ -113,11 +113,12 @@ function Component() { className="w-full text-lg py-6 mt-2" variant="secondary" > + Add to Wishlist - -

    This feature is under construction

    + + This feature is under construction

    diff --git a/web/src/routes/distribute/_layout/games/$gameId.tsx b/web/src/routes/distribute/_layout/games/$gameId.tsx index fb31e59..19fb484 100644 --- a/web/src/routes/distribute/_layout/games/$gameId.tsx +++ b/web/src/routes/distribute/_layout/games/$gameId.tsx @@ -101,7 +101,7 @@ function Component() { -

    Upload game files to enable downloading

    + Upload game files to enable downloading )} From 17ce92fd9c791e317d23aa2511b0dc4fd9545b35 Mon Sep 17 00:00:00 2001 From: Goncalo-Marques <53789763+Goncalo-Marques@users.noreply.github.com> Date: Thu, 26 Dec 2024 12:48:53 +0000 Subject: [PATCH 31/42] refactor: rename components --- web/src/components/error.tsx | 2 +- web/src/components/under-construction.tsx | 2 +- web/src/routes/_layout/account.tsx | 4 ++-- web/src/routes/_layout/under-construction.tsx | 4 ++-- web/src/routes/distribute/_layout/games/$gameId.tsx | 4 ++-- web/src/routes/distribute/_layout/games_/$gameId/edit.tsx | 4 ++-- web/src/routes/distribute/_layout/under-construction.tsx | 4 ++-- 7 files changed, 12 insertions(+), 12 deletions(-) diff --git a/web/src/components/error.tsx b/web/src/components/error.tsx index cb54d78..5f22826 100644 --- a/web/src/components/error.tsx +++ b/web/src/components/error.tsx @@ -4,7 +4,7 @@ import { ArrowLeft } from "lucide-react"; import { Button } from "@/components/ui/button"; import { Card, CardDescription, CardTitle } from "@/components/ui/card"; -export function ErrorPage(props: { +export function Error(props: { title: string; description: string; showBack?: boolean; diff --git a/web/src/components/under-construction.tsx b/web/src/components/under-construction.tsx index e0587af..85da6f7 100644 --- a/web/src/components/under-construction.tsx +++ b/web/src/components/under-construction.tsx @@ -4,7 +4,7 @@ import { ArrowLeft } from "lucide-react"; import { Button } from "@/components/ui/button"; import { cn } from "@/lib/utils"; -export function UnderConstructionPage(props: { showBack?: boolean }) { +export function UnderConstruction(props: { showBack?: boolean }) { return (

    diff --git a/web/src/routes/_layout/account.tsx b/web/src/routes/_layout/account.tsx index bc401aa..0318e7c 100644 --- a/web/src/routes/_layout/account.tsx +++ b/web/src/routes/_layout/account.tsx @@ -17,7 +17,7 @@ import { CardTitle, } from "@/components/ui/card"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; -import { UnderConstructionPage } from "@/components/under-construction"; +import { UnderConstruction } from "@/components/under-construction"; import { getUser } from "@/lib/api"; import { decodeTokenPayload, getToken } from "@/lib/auth"; import { MISSING_VALUE_SYMBOL } from "@/lib/constants"; @@ -141,7 +141,7 @@ function Component() { - + diff --git a/web/src/routes/_layout/under-construction.tsx b/web/src/routes/_layout/under-construction.tsx index 96f9111..7b8b170 100644 --- a/web/src/routes/_layout/under-construction.tsx +++ b/web/src/routes/_layout/under-construction.tsx @@ -1,6 +1,6 @@ import { createFileRoute } from "@tanstack/react-router"; -import { UnderConstructionPage } from "@/components/under-construction"; +import { UnderConstruction } from "@/components/under-construction"; export const Route = createFileRoute("/_layout/under-construction")({ component: Component, @@ -9,7 +9,7 @@ export const Route = createFileRoute("/_layout/under-construction")({ function Component() { return (
    - +
    ); } diff --git a/web/src/routes/distribute/_layout/games/$gameId.tsx b/web/src/routes/distribute/_layout/games/$gameId.tsx index 19fb484..66c4ec7 100644 --- a/web/src/routes/distribute/_layout/games/$gameId.tsx +++ b/web/src/routes/distribute/_layout/games/$gameId.tsx @@ -4,7 +4,7 @@ import { format } from "date-fns"; import { Download, Edit } from "lucide-react"; import { GamePreview } from "@/components/distribute/games/game-preview"; -import { ErrorPage } from "@/components/error"; +import { Error } from "@/components/error"; import { Badge } from "@/components/ui/badge"; import { Button } from "@/components/ui/button"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; @@ -55,7 +55,7 @@ export const Route = createFileRoute("/distribute/_layout/games/$gameId")({ errorProps.error instanceof NotFound ) { return ( - - + ); } From e7233e588b717e5ac516cbc892146901b2e92a2c Mon Sep 17 00:00:00 2001 From: Goncalo-Marques <53789763+Goncalo-Marques@users.noreply.github.com> Date: Thu, 26 Dec 2024 13:08:17 +0000 Subject: [PATCH 32/42] chore: keep link consistency --- web/src/routes/_layout.tsx | 8 +++--- web/src/routes/_layout/index.tsx | 43 ++++++++++++++++++++------------ 2 files changed, 32 insertions(+), 19 deletions(-) diff --git a/web/src/routes/_layout.tsx b/web/src/routes/_layout.tsx index a9da6f2..b8700e6 100644 --- a/web/src/routes/_layout.tsx +++ b/web/src/routes/_layout.tsx @@ -132,14 +132,15 @@ function Component() {

    Browse

    • - + Featured & Recommended
    • Upcoming Releases @@ -147,7 +148,8 @@ function Component() {
    • Best Sellers diff --git a/web/src/routes/_layout/index.tsx b/web/src/routes/_layout/index.tsx index 41bf93c..fa64b1c 100644 --- a/web/src/routes/_layout/index.tsx +++ b/web/src/routes/_layout/index.tsx @@ -1,10 +1,10 @@ import { queryOptions, useSuspenseQuery } from "@tanstack/react-query"; -import { createFileRoute, Link } from "@tanstack/react-router"; +import { createFileRoute, Link, LinkProps } from "@tanstack/react-router"; import { ChevronRight } from "lucide-react"; import { Game } from "@/components/game"; import { Button } from "@/components/ui/button"; -import { PaginatedGames } from "@/domain/game"; +import { Game as GameDomain } from "@/domain/game"; import { useTags } from "@/hooks/use-tags"; import { getGames, getRecommendedGames } from "@/lib/api"; import { decodeTokenPayload, getToken } from "@/lib/auth"; @@ -134,24 +134,26 @@ function Component() {