mirror of
https://github.com/Dokploy/dokploy
synced 2025-06-26 18:27:59 +00:00
refactor: delete modals
This commit is contained in:
parent
ecb919e109
commit
dde799f510
@ -1,79 +0,0 @@
|
|||||||
import { Button } from "@/components/ui/button";
|
|
||||||
import {
|
|
||||||
Dialog,
|
|
||||||
DialogContent,
|
|
||||||
DialogDescription,
|
|
||||||
DialogHeader,
|
|
||||||
DialogTitle,
|
|
||||||
DialogTrigger,
|
|
||||||
} from "@/components/ui/dialog";
|
|
||||||
import { api } from "@/utils/api";
|
|
||||||
import { RefreshCcw } from "lucide-react";
|
|
||||||
import Link from "next/link";
|
|
||||||
import { GenerateTraefikMe } from "./generate-traefikme";
|
|
||||||
import { GenerateWildCard } from "./generate-wildcard";
|
|
||||||
|
|
||||||
interface Props {
|
|
||||||
applicationId: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
export const GenerateDomain = ({ applicationId }: Props) => {
|
|
||||||
return (
|
|
||||||
<Dialog>
|
|
||||||
<DialogTrigger className="" asChild>
|
|
||||||
<Button variant="secondary">
|
|
||||||
Generate Domain
|
|
||||||
<RefreshCcw className="size-4 text-muted-foreground " />
|
|
||||||
</Button>
|
|
||||||
</DialogTrigger>
|
|
||||||
<DialogContent className="max-h-screen overflow-y-auto sm:max-w-2xl">
|
|
||||||
<DialogHeader>
|
|
||||||
<DialogTitle>Generate Domain</DialogTitle>
|
|
||||||
<DialogDescription>
|
|
||||||
Generate Domains for your applications
|
|
||||||
</DialogDescription>
|
|
||||||
</DialogHeader>
|
|
||||||
|
|
||||||
<div className="flex flex-col gap-4 w-full">
|
|
||||||
<ul className="flex flex-col gap-4">
|
|
||||||
<li className="flex flex-row items-center gap-4">
|
|
||||||
<div className="flex flex-col gap-2">
|
|
||||||
<div className="text-base font-bold">
|
|
||||||
1. Generate TraefikMe Domain
|
|
||||||
</div>
|
|
||||||
<div className="text-sm text-muted-foreground">
|
|
||||||
This option generates a free domain provided by{" "}
|
|
||||||
<Link
|
|
||||||
href="https://traefik.me"
|
|
||||||
className="text-primary"
|
|
||||||
target="_blank"
|
|
||||||
>
|
|
||||||
TraefikMe
|
|
||||||
</Link>
|
|
||||||
. We recommend using this for quick domain testing or if you
|
|
||||||
don't have a domain yet.
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
{/* <li className="flex flex-row items-center gap-4">
|
|
||||||
<div className="flex flex-col gap-2">
|
|
||||||
<div className="text-base font-bold">
|
|
||||||
2. Use Wildcard Domain
|
|
||||||
</div>
|
|
||||||
<div className="text-sm text-muted-foreground">
|
|
||||||
To use this option, you need to set up an 'A' record in your
|
|
||||||
domain provider. For example, create a record for
|
|
||||||
*.yourdomain.com.
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</li> */}
|
|
||||||
</ul>
|
|
||||||
<div className="flex flex-row gap-4 w-full">
|
|
||||||
<GenerateTraefikMe applicationId={applicationId} />
|
|
||||||
{/* <GenerateWildCard applicationId={applicationId} /> */}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</DialogContent>
|
|
||||||
</Dialog>
|
|
||||||
);
|
|
||||||
};
|
|
@ -1,69 +0,0 @@
|
|||||||
import {
|
|
||||||
AlertDialog,
|
|
||||||
AlertDialogAction,
|
|
||||||
AlertDialogCancel,
|
|
||||||
AlertDialogContent,
|
|
||||||
AlertDialogDescription,
|
|
||||||
AlertDialogFooter,
|
|
||||||
AlertDialogHeader,
|
|
||||||
AlertDialogTitle,
|
|
||||||
AlertDialogTrigger,
|
|
||||||
} from "@/components/ui/alert-dialog";
|
|
||||||
import { Button } from "@/components/ui/button";
|
|
||||||
import { api } from "@/utils/api";
|
|
||||||
import { RefreshCcw } from "lucide-react";
|
|
||||||
import React from "react";
|
|
||||||
import { toast } from "sonner";
|
|
||||||
|
|
||||||
interface Props {
|
|
||||||
applicationId: string;
|
|
||||||
}
|
|
||||||
export const GenerateTraefikMe = ({ applicationId }: Props) => {
|
|
||||||
const { mutateAsync, isLoading } = api.domain.generateDomain.useMutation();
|
|
||||||
const utils = api.useUtils();
|
|
||||||
return (
|
|
||||||
<AlertDialog>
|
|
||||||
<AlertDialogTrigger asChild>
|
|
||||||
<Button variant="secondary" isLoading={isLoading}>
|
|
||||||
Generate Domain
|
|
||||||
<RefreshCcw className="size-4 text-muted-foreground " />
|
|
||||||
</Button>
|
|
||||||
</AlertDialogTrigger>
|
|
||||||
<AlertDialogContent>
|
|
||||||
<AlertDialogHeader>
|
|
||||||
<AlertDialogTitle>
|
|
||||||
Are you sure to generate a new domain?
|
|
||||||
</AlertDialogTitle>
|
|
||||||
<AlertDialogDescription>
|
|
||||||
This will generate a new domain and will be used to access to the
|
|
||||||
application
|
|
||||||
</AlertDialogDescription>
|
|
||||||
</AlertDialogHeader>
|
|
||||||
<AlertDialogFooter>
|
|
||||||
<AlertDialogCancel>Cancel</AlertDialogCancel>
|
|
||||||
<AlertDialogAction
|
|
||||||
onClick={async () => {
|
|
||||||
await mutateAsync({
|
|
||||||
applicationId,
|
|
||||||
})
|
|
||||||
.then((data) => {
|
|
||||||
utils.domain.byApplicationId.invalidate({
|
|
||||||
applicationId: applicationId,
|
|
||||||
});
|
|
||||||
utils.application.readTraefikConfig.invalidate({
|
|
||||||
applicationId: applicationId,
|
|
||||||
});
|
|
||||||
toast.success("Generated Domain succesfully");
|
|
||||||
})
|
|
||||||
.catch(() => {
|
|
||||||
toast.error("Error to generate Domain");
|
|
||||||
});
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
Confirm
|
|
||||||
</AlertDialogAction>
|
|
||||||
</AlertDialogFooter>
|
|
||||||
</AlertDialogContent>
|
|
||||||
</AlertDialog>
|
|
||||||
);
|
|
||||||
};
|
|
@ -12,7 +12,6 @@ import { ExternalLink, GlobeIcon, PenBoxIcon } from "lucide-react";
|
|||||||
import Link from "next/link";
|
import Link from "next/link";
|
||||||
import { AddDomain } from "./add-domain";
|
import { AddDomain } from "./add-domain";
|
||||||
import { DeleteDomain } from "./delete-domain";
|
import { DeleteDomain } from "./delete-domain";
|
||||||
import { GenerateDomain } from "./generate-domain";
|
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
applicationId: string;
|
applicationId: string;
|
||||||
@ -46,9 +45,6 @@ export const ShowDomains = ({ applicationId }: Props) => {
|
|||||||
</Button>
|
</Button>
|
||||||
</AddDomain>
|
</AddDomain>
|
||||||
)}
|
)}
|
||||||
{data && data?.length > 0 && (
|
|
||||||
<GenerateDomain applicationId={applicationId} />
|
|
||||||
)}
|
|
||||||
</div>
|
</div>
|
||||||
</CardHeader>
|
</CardHeader>
|
||||||
<CardContent className="flex w-full flex-row gap-4">
|
<CardContent className="flex w-full flex-row gap-4">
|
||||||
@ -65,8 +61,6 @@ export const ShowDomains = ({ applicationId }: Props) => {
|
|||||||
<GlobeIcon className="size-4" /> Add Domain
|
<GlobeIcon className="size-4" /> Add Domain
|
||||||
</Button>
|
</Button>
|
||||||
</AddDomain>
|
</AddDomain>
|
||||||
|
|
||||||
<GenerateDomain applicationId={applicationId} />
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
) : (
|
) : (
|
||||||
|
Loading…
Reference in New Issue
Block a user