add new repo, complete resource adding options

This commit is contained in:
karamvir
2023-08-03 17:04:54 -07:00
parent c1a6f2b957
commit cc54725011
3 changed files with 51 additions and 0 deletions

View File

@@ -9,6 +9,7 @@ import { NewServer } from "@resources/server/new";
import { NewBuild } from "@resources/build/new";
import { NewBuilder } from "@resources/builder/new";
import { NewAlerter } from "@resources/alerter/new";
import { NewRepo } from "@resources/repo/new";
export const Resources = ({
type,
@@ -54,6 +55,7 @@ export const Resources = ({
{type === "Build" && <NewBuild open={open} set={setOpen} />}
{type === "Builder" && <NewBuilder open={open} set={setOpen} />}
{type === "Alerter" && <NewAlerter open={open} set={setOpen} />}
{type === "Repo" && <NewRepo open={open} set={setOpen} />}
</div>
}
>

View File

@@ -16,6 +16,9 @@ import { NewDeployment } from "@resources/deployment/new";
import { PlusCircle, ChevronDown } from "lucide-react";
import { useState } from "react";
import { RESOURCE_TYPES } from "@util/config";
import { NewServer } from "@resources/server/new";
import { NewAlerter } from "@resources/alerter/new";
import { NewRepo } from "@resources/repo/new";
export const CreateResource = () => {
const [open, set] = useState<Types.ResourceTarget["type"] | false>(false);
@@ -54,8 +57,11 @@ export const CreateResource = () => {
</DropdownMenuContent>
</DropdownMenu>
<NewDeployment open={open === "Deployment"} set={set} />
<NewServer open={open === "Server"} set={set} />
<NewBuild open={open === "Build"} set={set} />
<NewBuilder open={open === "Builder"} set={set} />
<NewAlerter open={open === "Alerter"} set={set} />
<NewRepo open={open === "Repo"} set={set} />
</>
);
};

View File

@@ -0,0 +1,43 @@
import { useState } from "react";
import { useWrite } from "@hooks";
import { Input } from "@ui/input";
import { NewResource } from "@components/new-resource";
import { useNavigate } from "react-router-dom";
export const NewRepo = ({
open,
set,
}: {
open: boolean;
set: (b: false) => void;
}) => {
const nav = useNavigate();
const { mutate, isLoading } = useWrite("CreateDeployment", {
onSuccess: (d) => {
set(false);
nav(`/deployments/${d._id?.$oid}`);
},
});
const [name, setName] = useState("");
return (
<NewResource
type="Repo"
open={open}
loading={isLoading}
set={set}
onSuccess={() => mutate({ name, config: {} })}
>
<div className="flex items-center justify-between">
<div>Repo Name</div>
<Input
className="max-w-[50%]"
placeholder="Repo Name"
name={name}
onChange={(e) => setName(e.target.value)}
/>
</div>
</NewResource>
);
};