refactor: show banner when the server is disabled

This commit is contained in:
Mauricio Siu
2024-10-21 02:19:10 -06:00
parent 53edf06476
commit c0afcaf3f6
8 changed files with 632 additions and 492 deletions

View File

@@ -35,7 +35,7 @@ import { appRouter } from "@/server/api/root";
import { api } from "@/utils/api"; import { api } from "@/utils/api";
import { validateRequest } from "@dokploy/server"; import { validateRequest } from "@dokploy/server";
import { createServerSideHelpers } from "@trpc/react-query/server"; import { createServerSideHelpers } from "@trpc/react-query/server";
import { GlobeIcon, HelpCircle } from "lucide-react"; import { GlobeIcon, HelpCircle, ServerOff } from "lucide-react";
import type { import type {
GetServerSidePropsContext, GetServerSidePropsContext,
InferGetServerSidePropsType, InferGetServerSidePropsType,
@@ -156,6 +156,26 @@ const Service = (
</div> </div>
</header> </header>
</div> </div>
{data?.server?.serverStatus === "inactive" ? (
<div className="flex h-[55vh] border-2 rounded-xl border-dashed p-4">
<div className="max-w-3xl mx-auto flex flex-col items-center justify-center self-center gap-3">
<ServerOff className="size-10 text-muted-foreground self-center" />
<span className="text-center text-base text-muted-foreground">
This service is hosted on the server {data.server.name}, but this
server has been disabled because your current plan doesn't include
enough servers. Please purchase more servers to regain access to
this application.
</span>
<span className="text-center text-base text-muted-foreground">
Go to{" "}
<Link href="/dashboard/settings/billing" className="text-primary">
Billing
</Link>
</span>
</div>
</div>
) : (
<Tabs <Tabs
value={tab} value={tab}
defaultValue="general" defaultValue="general"
@@ -240,6 +260,7 @@ const Service = (
</div> </div>
</TabsContent> </TabsContent>
</Tabs> </Tabs>
)}
</div> </div>
); );
}; };

View File

@@ -29,7 +29,7 @@ import { appRouter } from "@/server/api/root";
import { api } from "@/utils/api"; import { api } from "@/utils/api";
import { validateRequest } from "@dokploy/server"; import { validateRequest } from "@dokploy/server";
import { createServerSideHelpers } from "@trpc/react-query/server"; import { createServerSideHelpers } from "@trpc/react-query/server";
import { CircuitBoard } from "lucide-react"; import { CircuitBoard, ServerOff } from "lucide-react";
import { HelpCircle } from "lucide-react"; import { HelpCircle } from "lucide-react";
import type { import type {
GetServerSidePropsContext, GetServerSidePropsContext,
@@ -151,6 +151,25 @@ const Service = (
</div> </div>
</header> </header>
</div> </div>
{data?.server?.serverStatus === "inactive" ? (
<div className="flex h-[55vh] border-2 rounded-xl border-dashed p-4">
<div className="max-w-3xl mx-auto flex flex-col items-center justify-center self-center gap-3">
<ServerOff className="size-10 text-muted-foreground self-center" />
<span className="text-center text-base text-muted-foreground">
This service is hosted on the server {data.server.name}, but this
server has been disabled because your current plan doesn't include
enough servers. Please purchase more servers to regain access to
this application.
</span>
<span className="text-center text-base text-muted-foreground">
Go to{" "}
<Link href="/dashboard/settings/billing" className="text-primary">
Billing
</Link>
</span>
</div>
</div>
) : (
<Tabs <Tabs
value={tab} value={tab}
defaultValue="general" defaultValue="general"
@@ -243,6 +262,7 @@ const Service = (
</div> </div>
</TabsContent> </TabsContent>
</Tabs> </Tabs>
)}
</div> </div>
); );
}; };

View File

@@ -30,7 +30,7 @@ import { appRouter } from "@/server/api/root";
import { api } from "@/utils/api"; import { api } from "@/utils/api";
import { validateRequest } from "@dokploy/server"; import { validateRequest } from "@dokploy/server";
import { createServerSideHelpers } from "@trpc/react-query/server"; import { createServerSideHelpers } from "@trpc/react-query/server";
import { HelpCircle } from "lucide-react"; import { HelpCircle, ServerOff } from "lucide-react";
import type { import type {
GetServerSidePropsContext, GetServerSidePropsContext,
InferGetServerSidePropsType, InferGetServerSidePropsType,
@@ -137,6 +137,25 @@ const Mariadb = (
</div> </div>
</header> </header>
</div> </div>
{data?.server?.serverStatus === "inactive" ? (
<div className="flex h-[55vh] border-2 rounded-xl border-dashed p-4">
<div className="max-w-3xl mx-auto flex flex-col items-center justify-center self-center gap-3">
<ServerOff className="size-10 text-muted-foreground self-center" />
<span className="text-center text-base text-muted-foreground">
This service is hosted on the server {data.server.name}, but this
server has been disabled because your current plan doesn't include
enough servers. Please purchase more servers to regain access to
this application.
</span>
<span className="text-center text-base text-muted-foreground">
Go to{" "}
<Link href="/dashboard/settings/billing" className="text-primary">
Billing
</Link>
</span>
</div>
</div>
) : (
<Tabs <Tabs
value={tab} value={tab}
defaultValue="general" defaultValue="general"
@@ -210,6 +229,7 @@ const Mariadb = (
</div> </div>
</TabsContent> </TabsContent>
</Tabs> </Tabs>
)}
</div> </div>
); );
}; };

View File

@@ -30,7 +30,7 @@ import { appRouter } from "@/server/api/root";
import { api } from "@/utils/api"; import { api } from "@/utils/api";
import { validateRequest } from "@dokploy/server"; import { validateRequest } from "@dokploy/server";
import { createServerSideHelpers } from "@trpc/react-query/server"; import { createServerSideHelpers } from "@trpc/react-query/server";
import { HelpCircle } from "lucide-react"; import { HelpCircle, ServerOff } from "lucide-react";
import type { import type {
GetServerSidePropsContext, GetServerSidePropsContext,
InferGetServerSidePropsType, InferGetServerSidePropsType,
@@ -138,6 +138,25 @@ const Mongo = (
</div> </div>
</header> </header>
</div> </div>
{data?.server?.serverStatus === "inactive" ? (
<div className="flex h-[55vh] border-2 rounded-xl border-dashed p-4">
<div className="max-w-3xl mx-auto flex flex-col items-center justify-center self-center gap-3">
<ServerOff className="size-10 text-muted-foreground self-center" />
<span className="text-center text-base text-muted-foreground">
This service is hosted on the server {data.server.name}, but this
server has been disabled because your current plan doesn't include
enough servers. Please purchase more servers to regain access to
this application.
</span>
<span className="text-center text-base text-muted-foreground">
Go to{" "}
<Link href="/dashboard/settings/billing" className="text-primary">
Billing
</Link>
</span>
</div>
</div>
) : (
<Tabs <Tabs
value={tab} value={tab}
defaultValue="general" defaultValue="general"
@@ -212,6 +231,7 @@ const Mongo = (
</div> </div>
</TabsContent> </TabsContent>
</Tabs> </Tabs>
)}
</div> </div>
); );
}; };

View File

@@ -30,7 +30,7 @@ import { appRouter } from "@/server/api/root";
import { api } from "@/utils/api"; import { api } from "@/utils/api";
import { validateRequest } from "@dokploy/server"; import { validateRequest } from "@dokploy/server";
import { createServerSideHelpers } from "@trpc/react-query/server"; import { createServerSideHelpers } from "@trpc/react-query/server";
import { HelpCircle } from "lucide-react"; import { HelpCircle, ServerOff } from "lucide-react";
import type { import type {
GetServerSidePropsContext, GetServerSidePropsContext,
InferGetServerSidePropsType, InferGetServerSidePropsType,
@@ -137,6 +137,25 @@ const MySql = (
</div> </div>
</header> </header>
</div> </div>
{data?.server?.serverStatus === "inactive" ? (
<div className="flex h-[55vh] border-2 rounded-xl border-dashed p-4">
<div className="max-w-3xl mx-auto flex flex-col items-center justify-center self-center gap-3">
<ServerOff className="size-10 text-muted-foreground self-center" />
<span className="text-center text-base text-muted-foreground">
This service is hosted on the server {data.server.name}, but this
server has been disabled because your current plan doesn't include
enough servers. Please purchase more servers to regain access to
this application.
</span>
<span className="text-center text-base text-muted-foreground">
Go to{" "}
<Link href="/dashboard/settings/billing" className="text-primary">
Billing
</Link>
</span>
</div>
</div>
) : (
<Tabs <Tabs
value={tab} value={tab}
defaultValue="general" defaultValue="general"
@@ -211,6 +230,7 @@ const MySql = (
</div> </div>
</TabsContent> </TabsContent>
</Tabs> </Tabs>
)}
</div> </div>
); );
}; };

View File

@@ -30,7 +30,7 @@ import { appRouter } from "@/server/api/root";
import { api } from "@/utils/api"; import { api } from "@/utils/api";
import { validateRequest } from "@dokploy/server"; import { validateRequest } from "@dokploy/server";
import { createServerSideHelpers } from "@trpc/react-query/server"; import { createServerSideHelpers } from "@trpc/react-query/server";
import { HelpCircle } from "lucide-react"; import { HelpCircle, ServerOff } from "lucide-react";
import type { import type {
GetServerSidePropsContext, GetServerSidePropsContext,
InferGetServerSidePropsType, InferGetServerSidePropsType,
@@ -138,6 +138,25 @@ const Postgresql = (
</div> </div>
</header> </header>
</div> </div>
{data?.server?.serverStatus === "inactive" ? (
<div className="flex h-[55vh] border-2 rounded-xl border-dashed p-4">
<div className="max-w-3xl mx-auto flex flex-col items-center justify-center self-center gap-3">
<ServerOff className="size-10 text-muted-foreground self-center" />
<span className="text-center text-base text-muted-foreground">
This service is hosted on the server {data.server.name}, but this
server has been disabled because your current plan doesn't include
enough servers. Please purchase more servers to regain access to
this application.
</span>
<span className="text-center text-base text-muted-foreground">
Go to{" "}
<Link href="/dashboard/settings/billing" className="text-primary">
Billing
</Link>
</span>
</div>
</div>
) : (
<Tabs <Tabs
value={tab} value={tab}
defaultValue="general" defaultValue="general"
@@ -212,6 +231,7 @@ const Postgresql = (
</div> </div>
</TabsContent> </TabsContent>
</Tabs> </Tabs>
)}
</div> </div>
); );
}; };

View File

@@ -29,7 +29,7 @@ import { appRouter } from "@/server/api/root";
import { api } from "@/utils/api"; import { api } from "@/utils/api";
import { validateRequest } from "@dokploy/server"; import { validateRequest } from "@dokploy/server";
import { createServerSideHelpers } from "@trpc/react-query/server"; import { createServerSideHelpers } from "@trpc/react-query/server";
import { HelpCircle } from "lucide-react"; import { HelpCircle, ServerOff } from "lucide-react";
import type { import type {
GetServerSidePropsContext, GetServerSidePropsContext,
InferGetServerSidePropsType, InferGetServerSidePropsType,
@@ -137,6 +137,25 @@ const Redis = (
</div> </div>
</header> </header>
</div> </div>
{data?.server?.serverStatus === "inactive" ? (
<div className="flex h-[55vh] border-2 rounded-xl border-dashed p-4">
<div className="max-w-3xl mx-auto flex flex-col items-center justify-center self-center gap-3">
<ServerOff className="size-10 text-muted-foreground self-center" />
<span className="text-center text-base text-muted-foreground">
This service is hosted on the server {data.server.name}, but this
server has been disabled because your current plan doesn't include
enough servers. Please purchase more servers to regain access to
this application.
</span>
<span className="text-center text-base text-muted-foreground">
Go to{" "}
<Link href="/dashboard/settings/billing" className="text-primary">
Billing
</Link>
</span>
</div>
</div>
) : (
<Tabs <Tabs
value={tab} value={tab}
defaultValue="general" defaultValue="general"
@@ -205,6 +224,7 @@ const Redis = (
</div> </div>
</TabsContent> </TabsContent>
</Tabs> </Tabs>
)}
</div> </div>
); );
}; };

View File

@@ -252,7 +252,6 @@ export const composeRouter = createTRPCRouter({
descriptionLog: "", descriptionLog: "",
server: !!compose.serverId, server: !!compose.serverId,
}; };
console.log(jobData);
if (IS_CLOUD && compose.serverId) { if (IS_CLOUD && compose.serverId) {
jobData.serverId = compose.serverId; jobData.serverId = compose.serverId;