"use client"; import React from "react"; import { useState, useEffect } from "react"; import { useRouter } from "next/navigation"; import { Button, Input, Textarea, Select, SelectItem, Tooltip, Listbox, ListboxItem, Divider, Selection, DropdownTrigger, Dropdown, DropdownMenu, DropdownItem, } from "@nextui-org/react"; import { Save, ArrowLeft, Folder, ChevronDown, CopyPlus, CopyMinus, } from "lucide-react"; import TestCaseSelector from "./TestCaseSelector"; import { testRunStatus } from "@/config/selection"; import { RunType } from "@/types/run"; import { FolderType } from "@/types/folder"; import { fetchRun, updateRun } from "../runsControl"; import { fetchFolders } from "../../folders/foldersControl"; import { fetchCases } from "../../folders/[folderId]/cases/caseControl"; const defaultTestRun = { id: 0, name: "", configurations: 0, description: "", state: 0, projectId: 0, }; type Props = { projectId: string; runId: string; }; export default function RunEditor({ projectId, runId }: Props) { const [testRun, setTestRun] = useState(defaultTestRun); const [folders, setFolders] = useState([]); const [selectedKeys, setSelectedKeys] = useState(new Set([])); const [selectedFolder, setSelectedFolder] = useState({}); const [testcases, setTestCases] = useState([]); const [isNameInvalid, setIsNameInvalid] = useState(false); const [isUpdating, setIsUpdating] = useState(false); const router = useRouter(); useEffect(() => { async function fetchDataEffect() { try { const caseData = await fetchRun(runId); setTestRun(caseData); const foldersData = await fetchFolders(projectId); setFolders(foldersData); } catch (error) { console.error("Error in effect:", error.message); } } fetchDataEffect(); }, []); useEffect(() => { async function fetchCasesData() { if (selectedFolder && selectedFolder.id) { try { const testCasesData = await fetchCases(selectedFolder.id); setTestCases(testCasesData); } catch (error) { console.error("Error fetching cases data:", error.message); } } } fetchCasesData(); }, [selectedFolder]); const onIncludeExcludeClick = async (mode: string) => { console.log(mode) if (selectedKeys === "all") { const allKeys = testcases.map((item) => item.id); console.log(allKeys); } else { console.log([...selectedKeys]); } setSelectedKeys(new Set([])); }; const baseClass = ""; const selectedClass = `${baseClass} bg-neutral-200 dark:bg-neutral-700`; return ( <>

{testRun.name}

Basic
{ setTestRun({ ...testRun, name: e.target.value }); }} className="mt-3" />