"use client";
import { useCallback, useState } from "react";
import {
Dialog,
DialogContent,
DialogDescription,
DialogFooter,
DialogHeader,
DialogTitle,
} from "@kandev/ui/dialog";
import { Input } from "@kandev/ui/input";
import { Button } from "@kandev/ui/button";
import { Label } from "@kandev/ui/label";
import { RepoFilterCombobox } from "./repo-filter-combobox";
import { useTranslation } from "react-i18next";
type SavePresetDialogProps = {
open: boolean;
onOpenChange: (open: boolean) => void;
kind: "pr" | "issue";
customQuery: string;
repoFilter: string;
repoOptions: string[];
suggestedLabel: string;
onSave: (label: string, repoFilter: string) => void;
};
function SavePresetForm({
kind,
customQuery,
repoFilter,
repoOptions,
suggestedLabel,
onSave,
onClose,
}: {
kind: "pr" | "issue";
customQuery: string;
repoFilter: string;
repoOptions: string[];
suggestedLabel: string;
onSave: (label: string, repoFilter: string) => void;
onClose: () => void;
}) {
const { t } = useTranslation();
const [value, setValue] = useState(suggestedLabel);
const [defaultRepoFilter, setDefaultRepoFilter] = useState(repoFilter);
const trimmed = value.trim();
const canSubmit = trimmed.length > 0;
const handleSubmit = useCallback(() => {
if (!canSubmit) return;
onSave(trimmed, defaultRepoFilter);
onClose();
}, [canSubmit, trimmed, defaultRepoFilter, onSave, onClose]);
return (
<>
{customQuery}
{t("github:thisRepositoryOpensByDefaultYou")}