forked from github-starred/komodo
add new repo, complete resource adding options
This commit is contained in:
@@ -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>
|
||||
}
|
||||
>
|
||||
|
||||
@@ -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} />
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
43
frontend/src/resources/repo/new.tsx
Normal file
43
frontend/src/resources/repo/new.tsx
Normal 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>
|
||||
);
|
||||
};
|
||||
Reference in New Issue
Block a user