From 22e42b62ad2b7163898eb117b15879815d40e299 Mon Sep 17 00:00:00 2001
From: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Date: Mon, 21 Oct 2024 22:38:23 -0600
Subject: [PATCH] feat: add is cloud in ssr
---
apps/dokploy/pages/dashboard/projects.tsx | 24 +++++++++++++++--
.../pages/dashboard/settings/appearance.tsx | 26 ++++++++++++++++---
.../pages/dashboard/settings/billing.tsx | 24 +++++++++++++++--
.../pages/dashboard/settings/certificates.tsx | 25 +++++++++++++++---
.../pages/dashboard/settings/destinations.tsx | 24 +++++++++++++++--
.../dashboard/settings/git-providers.tsx | 1 +
.../dashboard/settings/notifications.tsx | 25 +++++++++++++++---
.../pages/dashboard/settings/profile.tsx | 24 +++++++++++++++--
.../pages/dashboard/settings/registry.tsx | 23 ++++++++++++++--
.../pages/dashboard/settings/servers.tsx | 24 +++++++++++++++--
.../pages/dashboard/settings/ssh-keys.tsx | 2 ++
.../pages/dashboard/settings/users.tsx | 24 +++++++++++++++--
12 files changed, 223 insertions(+), 23 deletions(-)
diff --git a/apps/dokploy/pages/dashboard/projects.tsx b/apps/dokploy/pages/dashboard/projects.tsx
index c4ca6720..b14c9e32 100644
--- a/apps/dokploy/pages/dashboard/projects.tsx
+++ b/apps/dokploy/pages/dashboard/projects.tsx
@@ -1,8 +1,11 @@
import { ShowProjects } from "@/components/dashboard/projects/show";
import { DashboardLayout } from "@/components/layouts/dashboard-layout";
+import { appRouter } from "@/server/api/root";
import { validateRequest } from "@dokploy/server";
+import { createServerSideHelpers } from "@trpc/react-query/server";
import type { GetServerSidePropsContext } from "next";
import React, { type ReactElement } from "react";
+import superjson from "superjson";
const Dashboard = () => {
return ;
@@ -16,7 +19,22 @@ Dashboard.getLayout = (page: ReactElement) => {
export async function getServerSideProps(
ctx: GetServerSidePropsContext<{ serviceId: string }>,
) {
- const { user } = await validateRequest(ctx.req, ctx.res);
+ const { req, res } = ctx;
+ const { user, session } = await validateRequest(req, res);
+
+ const helpers = createServerSideHelpers({
+ router: appRouter,
+ ctx: {
+ req: req as any,
+ res: res as any,
+ db: null as any,
+ session: session,
+ user: user,
+ },
+ transformer: superjson,
+ });
+
+ await helpers.settings.isCloud.prefetch();
if (!user) {
return {
@@ -27,6 +45,8 @@ export async function getServerSideProps(
};
}
return {
- props: {},
+ props: {
+ trpcState: helpers.dehydrate(),
+ },
};
}
diff --git a/apps/dokploy/pages/dashboard/settings/appearance.tsx b/apps/dokploy/pages/dashboard/settings/appearance.tsx
index 27c6075b..69ab7109 100644
--- a/apps/dokploy/pages/dashboard/settings/appearance.tsx
+++ b/apps/dokploy/pages/dashboard/settings/appearance.tsx
@@ -1,9 +1,12 @@
import { AppearanceForm } from "@/components/dashboard/settings/appearance-form";
import { DashboardLayout } from "@/components/layouts/dashboard-layout";
import { SettingsLayout } from "@/components/layouts/settings-layout";
+import { appRouter } from "@/server/api/root";
import { validateRequest } from "@dokploy/server";
+import { createServerSideHelpers } from "@trpc/react-query/server";
import type { GetServerSidePropsContext } from "next";
import React, { type ReactElement } from "react";
+import superjson from "superjson";
const Page = () => {
return (
@@ -25,7 +28,23 @@ Page.getLayout = (page: ReactElement) => {
export async function getServerSideProps(
ctx: GetServerSidePropsContext<{ serviceId: string }>,
) {
- const { user } = await validateRequest(ctx.req, ctx.res);
+ const { req, res } = ctx;
+ const { user, session } = await validateRequest(req, res);
+
+ const helpers = createServerSideHelpers({
+ router: appRouter,
+ ctx: {
+ req: req as any,
+ res: res as any,
+ db: null as any,
+ session: session,
+ user: user,
+ },
+ transformer: superjson,
+ });
+
+ await helpers.settings.isCloud.prefetch();
+
if (!user) {
return {
redirect: {
@@ -34,8 +53,9 @@ export async function getServerSideProps(
},
};
}
-
return {
- props: {},
+ props: {
+ trpcState: helpers.dehydrate(),
+ },
};
}
diff --git a/apps/dokploy/pages/dashboard/settings/billing.tsx b/apps/dokploy/pages/dashboard/settings/billing.tsx
index 5cc708b1..7e27af39 100644
--- a/apps/dokploy/pages/dashboard/settings/billing.tsx
+++ b/apps/dokploy/pages/dashboard/settings/billing.tsx
@@ -1,9 +1,12 @@
import { ShowBilling } from "@/components/dashboard/settings/billing/show-billing";
import { DashboardLayout } from "@/components/layouts/dashboard-layout";
import { SettingsLayout } from "@/components/layouts/settings-layout";
+import { appRouter } from "@/server/api/root";
import { IS_CLOUD, validateRequest } from "@dokploy/server";
+import { createServerSideHelpers } from "@trpc/react-query/server";
import type { GetServerSidePropsContext } from "next";
import React, { type ReactElement } from "react";
+import superjson from "superjson";
const Page = () => {
return ;
@@ -29,7 +32,8 @@ export async function getServerSideProps(
},
};
}
- const { user, session } = await validateRequest(ctx.req, ctx.res);
+ const { req, res } = ctx;
+ const { user, session } = await validateRequest(req, res);
if (!user || user.rol === "user") {
return {
redirect: {
@@ -39,7 +43,23 @@ export async function getServerSideProps(
};
}
+ const helpers = createServerSideHelpers({
+ router: appRouter,
+ ctx: {
+ req: req as any,
+ res: res as any,
+ db: null as any,
+ session: session,
+ user: user,
+ },
+ transformer: superjson,
+ });
+
+ await helpers.settings.isCloud.prefetch();
+
return {
- props: {},
+ props: {
+ trpcState: helpers.dehydrate(),
+ },
};
}
diff --git a/apps/dokploy/pages/dashboard/settings/certificates.tsx b/apps/dokploy/pages/dashboard/settings/certificates.tsx
index 95f58d9b..488eb733 100644
--- a/apps/dokploy/pages/dashboard/settings/certificates.tsx
+++ b/apps/dokploy/pages/dashboard/settings/certificates.tsx
@@ -1,10 +1,12 @@
import { ShowCertificates } from "@/components/dashboard/settings/certificates/show-certificates";
import { DashboardLayout } from "@/components/layouts/dashboard-layout";
import { SettingsLayout } from "@/components/layouts/settings-layout";
+import { appRouter } from "@/server/api/root";
import { validateRequest } from "@dokploy/server";
+import { createServerSideHelpers } from "@trpc/react-query/server";
import type { GetServerSidePropsContext } from "next";
import React, { type ReactElement } from "react";
-
+import superjson from "superjson";
const Page = () => {
return (
@@ -25,7 +27,8 @@ Page.getLayout = (page: ReactElement) => {
export async function getServerSideProps(
ctx: GetServerSidePropsContext<{ serviceId: string }>,
) {
- const { user, session } = await validateRequest(ctx.req, ctx.res);
+ const { req, res } = ctx;
+ const { user, session } = await validateRequest(req, res);
if (!user || user.rol === "user") {
return {
redirect: {
@@ -35,7 +38,23 @@ export async function getServerSideProps(
};
}
+ const helpers = createServerSideHelpers({
+ router: appRouter,
+ ctx: {
+ req: req as any,
+ res: res as any,
+ db: null as any,
+ session: session,
+ user: user,
+ },
+ transformer: superjson,
+ });
+
+ await helpers.settings.isCloud.prefetch();
+
return {
- props: {},
+ props: {
+ trpcState: helpers.dehydrate(),
+ },
};
}
diff --git a/apps/dokploy/pages/dashboard/settings/destinations.tsx b/apps/dokploy/pages/dashboard/settings/destinations.tsx
index b40ca040..5e5c9c13 100644
--- a/apps/dokploy/pages/dashboard/settings/destinations.tsx
+++ b/apps/dokploy/pages/dashboard/settings/destinations.tsx
@@ -1,9 +1,12 @@
import { ShowDestinations } from "@/components/dashboard/settings/destination/show-destinations";
import { DashboardLayout } from "@/components/layouts/dashboard-layout";
import { SettingsLayout } from "@/components/layouts/settings-layout";
+import { appRouter } from "@/server/api/root";
import { validateRequest } from "@dokploy/server";
+import { createServerSideHelpers } from "@trpc/react-query/server";
import type { GetServerSidePropsContext } from "next";
import React, { type ReactElement } from "react";
+import superjson from "superjson";
const Page = () => {
return (
@@ -25,7 +28,8 @@ Page.getLayout = (page: ReactElement) => {
export async function getServerSideProps(
ctx: GetServerSidePropsContext<{ serviceId: string }>,
) {
- const { user, session } = await validateRequest(ctx.req, ctx.res);
+ const { req, res } = ctx;
+ const { user, session } = await validateRequest(req, res);
if (!user || user.rol === "user") {
return {
redirect: {
@@ -35,7 +39,23 @@ export async function getServerSideProps(
};
}
+ const helpers = createServerSideHelpers({
+ router: appRouter,
+ ctx: {
+ req: req as any,
+ res: res as any,
+ db: null as any,
+ session: session,
+ user: user,
+ },
+ transformer: superjson,
+ });
+
+ await helpers.settings.isCloud.prefetch();
+
return {
- props: {},
+ props: {
+ trpcState: helpers.dehydrate(),
+ },
};
}
diff --git a/apps/dokploy/pages/dashboard/settings/git-providers.tsx b/apps/dokploy/pages/dashboard/settings/git-providers.tsx
index fc4601ad..37144b56 100644
--- a/apps/dokploy/pages/dashboard/settings/git-providers.tsx
+++ b/apps/dokploy/pages/dashboard/settings/git-providers.tsx
@@ -52,6 +52,7 @@ export async function getServerSideProps(
try {
await helpers.project.all.prefetch();
+ await helpers.settings.isCloud.prefetch();
const auth = await helpers.auth.get.fetch();
if (auth.rol === "user") {
diff --git a/apps/dokploy/pages/dashboard/settings/notifications.tsx b/apps/dokploy/pages/dashboard/settings/notifications.tsx
index 956413ae..2e3cf044 100644
--- a/apps/dokploy/pages/dashboard/settings/notifications.tsx
+++ b/apps/dokploy/pages/dashboard/settings/notifications.tsx
@@ -1,10 +1,12 @@
-import { ShowDestinations } from "@/components/dashboard/settings/destination/show-destinations";
import { ShowNotifications } from "@/components/dashboard/settings/notifications/show-notifications";
import { DashboardLayout } from "@/components/layouts/dashboard-layout";
import { SettingsLayout } from "@/components/layouts/settings-layout";
+import { appRouter } from "@/server/api/root";
import { validateRequest } from "@dokploy/server";
+import { createServerSideHelpers } from "@trpc/react-query/server";
import type { GetServerSidePropsContext } from "next";
import React, { type ReactElement } from "react";
+import superjson from "superjson";
const Page = () => {
return (
@@ -26,7 +28,8 @@ Page.getLayout = (page: ReactElement) => {
export async function getServerSideProps(
ctx: GetServerSidePropsContext<{ serviceId: string }>,
) {
- const { user, session } = await validateRequest(ctx.req, ctx.res);
+ const { req, res } = ctx;
+ const { user, session } = await validateRequest(req, res);
if (!user || user.rol === "user") {
return {
redirect: {
@@ -36,7 +39,23 @@ export async function getServerSideProps(
};
}
+ const helpers = createServerSideHelpers({
+ router: appRouter,
+ ctx: {
+ req: req as any,
+ res: res as any,
+ db: null as any,
+ session: session,
+ user: user,
+ },
+ transformer: superjson,
+ });
+
+ await helpers.settings.isCloud.prefetch();
+
return {
- props: {},
+ props: {
+ trpcState: helpers.dehydrate(),
+ },
};
}
diff --git a/apps/dokploy/pages/dashboard/settings/profile.tsx b/apps/dokploy/pages/dashboard/settings/profile.tsx
index 8ea6ba3b..140deeb6 100644
--- a/apps/dokploy/pages/dashboard/settings/profile.tsx
+++ b/apps/dokploy/pages/dashboard/settings/profile.tsx
@@ -2,10 +2,13 @@ import { GenerateToken } from "@/components/dashboard/settings/profile/generate-
import { ProfileForm } from "@/components/dashboard/settings/profile/profile-form";
import { DashboardLayout } from "@/components/layouts/dashboard-layout";
import { SettingsLayout } from "@/components/layouts/settings-layout";
+import { appRouter } from "@/server/api/root";
import { api } from "@/utils/api";
import { validateRequest } from "@dokploy/server";
+import { createServerSideHelpers } from "@trpc/react-query/server";
import type { GetServerSidePropsContext } from "next";
import React, { type ReactElement } from "react";
+import superjson from "superjson";
const Page = () => {
const { data } = api.auth.get.useQuery();
@@ -37,7 +40,22 @@ Page.getLayout = (page: ReactElement) => {
export async function getServerSideProps(
ctx: GetServerSidePropsContext<{ serviceId: string }>,
) {
- const { user } = await validateRequest(ctx.req, ctx.res);
+ const { req, res } = ctx;
+ const { user, session } = await validateRequest(req, res);
+
+ const helpers = createServerSideHelpers({
+ router: appRouter,
+ ctx: {
+ req: req as any,
+ res: res as any,
+ db: null as any,
+ session: session,
+ user: user,
+ },
+ transformer: superjson,
+ });
+
+ await helpers.settings.isCloud.prefetch();
if (!user) {
return {
redirect: {
@@ -48,6 +66,8 @@ export async function getServerSideProps(
}
return {
- props: {},
+ props: {
+ trpcState: helpers.dehydrate(),
+ },
};
}
diff --git a/apps/dokploy/pages/dashboard/settings/registry.tsx b/apps/dokploy/pages/dashboard/settings/registry.tsx
index db8b1bd5..0e434b4e 100644
--- a/apps/dokploy/pages/dashboard/settings/registry.tsx
+++ b/apps/dokploy/pages/dashboard/settings/registry.tsx
@@ -1,9 +1,12 @@
import { ShowRegistry } from "@/components/dashboard/settings/cluster/registry/show-registry";
import { DashboardLayout } from "@/components/layouts/dashboard-layout";
import { SettingsLayout } from "@/components/layouts/settings-layout";
+import { appRouter } from "@/server/api/root";
import { validateRequest } from "@dokploy/server";
+import { createServerSideHelpers } from "@trpc/react-query/server";
import type { GetServerSidePropsContext } from "next";
import React, { type ReactElement } from "react";
+import superjson from "superjson";
const Page = () => {
return (
@@ -25,7 +28,8 @@ Page.getLayout = (page: ReactElement) => {
export async function getServerSideProps(
ctx: GetServerSidePropsContext<{ serviceId: string }>,
) {
- const { user, session } = await validateRequest(ctx.req, ctx.res);
+ const { req, res } = ctx;
+ const { user, session } = await validateRequest(req, res);
if (!user || user.rol === "user") {
return {
redirect: {
@@ -34,8 +38,23 @@ export async function getServerSideProps(
},
};
}
+ const helpers = createServerSideHelpers({
+ router: appRouter,
+ ctx: {
+ req: req as any,
+ res: res as any,
+ db: null as any,
+ session: session,
+ user: user,
+ },
+ transformer: superjson,
+ });
+
+ await helpers.settings.isCloud.prefetch();
return {
- props: {},
+ props: {
+ trpcState: helpers.dehydrate(),
+ },
};
}
diff --git a/apps/dokploy/pages/dashboard/settings/servers.tsx b/apps/dokploy/pages/dashboard/settings/servers.tsx
index d7f9940d..58a90b79 100644
--- a/apps/dokploy/pages/dashboard/settings/servers.tsx
+++ b/apps/dokploy/pages/dashboard/settings/servers.tsx
@@ -1,9 +1,12 @@
import { ShowServers } from "@/components/dashboard/settings/servers/show-servers";
import { DashboardLayout } from "@/components/layouts/dashboard-layout";
import { SettingsLayout } from "@/components/layouts/settings-layout";
+import { appRouter } from "@/server/api/root";
import { validateRequest } from "@dokploy/server";
+import { createServerSideHelpers } from "@trpc/react-query/server";
import type { GetServerSidePropsContext } from "next";
import React, { type ReactElement } from "react";
+import superjson from "superjson";
const Page = () => {
return (
@@ -25,7 +28,8 @@ Page.getLayout = (page: ReactElement) => {
export async function getServerSideProps(
ctx: GetServerSidePropsContext<{ serviceId: string }>,
) {
- const { user } = await validateRequest(ctx.req, ctx.res);
+ const { req, res } = ctx;
+ const { user, session } = await validateRequest(req, res);
if (!user) {
return {
redirect: {
@@ -43,7 +47,23 @@ export async function getServerSideProps(
};
}
+ const helpers = createServerSideHelpers({
+ router: appRouter,
+ ctx: {
+ req: req as any,
+ res: res as any,
+ db: null as any,
+ session: session,
+ user: user,
+ },
+ transformer: superjson,
+ });
+
+ await helpers.settings.isCloud.prefetch();
+
return {
- props: {},
+ props: {
+ trpcState: helpers.dehydrate(),
+ },
};
}
diff --git a/apps/dokploy/pages/dashboard/settings/ssh-keys.tsx b/apps/dokploy/pages/dashboard/settings/ssh-keys.tsx
index da1d5818..6a1ab1d9 100644
--- a/apps/dokploy/pages/dashboard/settings/ssh-keys.tsx
+++ b/apps/dokploy/pages/dashboard/settings/ssh-keys.tsx
@@ -52,7 +52,9 @@ export async function getServerSideProps(
try {
await helpers.project.all.prefetch();
+
const auth = await helpers.auth.get.fetch();
+ await helpers.settings.isCloud.prefetch();
if (auth.rol === "user") {
const user = await helpers.user.byAuthId.fetch({
diff --git a/apps/dokploy/pages/dashboard/settings/users.tsx b/apps/dokploy/pages/dashboard/settings/users.tsx
index 715acc30..aa29e2a5 100644
--- a/apps/dokploy/pages/dashboard/settings/users.tsx
+++ b/apps/dokploy/pages/dashboard/settings/users.tsx
@@ -1,9 +1,12 @@
import { ShowUsers } from "@/components/dashboard/settings/users/show-users";
import { DashboardLayout } from "@/components/layouts/dashboard-layout";
import { SettingsLayout } from "@/components/layouts/settings-layout";
+import { appRouter } from "@/server/api/root";
import { validateRequest } from "@dokploy/server";
+import { createServerSideHelpers } from "@trpc/react-query/server";
import type { GetServerSidePropsContext } from "next";
import React, { type ReactElement } from "react";
+import superjson from "superjson";
const Page = () => {
return (
@@ -25,7 +28,8 @@ Page.getLayout = (page: ReactElement) => {
export async function getServerSideProps(
ctx: GetServerSidePropsContext<{ serviceId: string }>,
) {
- const { user } = await validateRequest(ctx.req, ctx.res);
+ const { req, res } = ctx;
+ const { user, session } = await validateRequest(req, res);
if (!user || user.rol === "user") {
return {
redirect: {
@@ -35,7 +39,23 @@ export async function getServerSideProps(
};
}
+ const helpers = createServerSideHelpers({
+ router: appRouter,
+ ctx: {
+ req: req as any,
+ res: res as any,
+ db: null as any,
+ session: session,
+ user: user,
+ },
+ transformer: superjson,
+ });
+
+ await helpers.settings.isCloud.prefetch();
+
return {
- props: {},
+ props: {
+ trpcState: helpers.dehydrate(),
+ },
};
}