import { useState, useEffect } from "react"; import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter, } from "@/components/ui/dialog"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { createDockerBuildConfig } from "@/pages/repos/store/build"; import { usePackageStore } from "../../store"; import { useShallow } from "zustand/shallow"; interface AddDockerDialogProps { open: boolean; onOpenChange: (open: boolean) => void; slug: string; } export function AddDockerDialog({ open, onOpenChange, slug }: AddDockerDialogProps) { const [repo, setRepo] = useState(() => { return slug; }); const [dockerImage, setDockerImage] = useState(() => { return localStorage.getItem("add-docker-image") || ""; }); useEffect(() => { localStorage.setItem("add-docker-image", dockerImage); }, [dockerImage]); const cnbPackageSore = usePackageStore(useShallow((state) => ({ repo: state.repo, dockerBuild: state.dockerBuild }))); const handleConfirm = async () => { console.log("repo:", repo, "docker image:", dockerImage); onOpenChange(false); const config = createDockerBuildConfig({ repo, image: dockerImage }); await cnbPackageSore.dockerBuild({ repo, config }); }; return ( 添加 Docker 镜像
setRepo(e.target.value)} />
setDockerImage(e.target.value)} />
); }