import { jsxs, jsx } from "react/jsx-runtime";
import { I as InputError } from "./input-error-D1JIzedA.js";
import { B as Button } from "./button-CdJZJLGw.js";
import { I as Input } from "./input-BsvJqbcd.js";
import { L as Label } from "./label-0rIIfpX0.js";
import { S as Select, a as SelectTrigger, b as SelectValue, c as SelectContent, d as SelectItem } from "./select-BYx0MCUK.js";
import { c as cn } from "./utils-DLCPGU0v.js";
import { useForm, Link, router } from "@inertiajs/react";
import Layout from "./Layout-BabR1Av6.js";
import Message from "./Message-DFXOluuJ.js";
import StepNavigator from "./StepNavigator-CGLKG6iW.js";
import "react";
import "@radix-ui/react-slot";
import "class-variance-authority";
import "@radix-ui/react-label";
import "@radix-ui/react-select";
import "lucide-react";
import "clsx";
import "tailwind-merge";
const Step3 = (props) => {
  const { DB_HOST, DB_PORT, DB_DATABASE, DB_USERNAME, DB_PASSWORD, DB_CONNECTION, DB_CONNECTION_STATUS, flash } = props;
  const { data, errors, post, setData } = useForm({
    db_connection: DB_CONNECTION || "mysql",
    db_host: DB_HOST || "",
    db_port: DB_PORT || "",
    db_database: DB_DATABASE || "",
    db_username: DB_USERNAME || "",
    db_password: DB_PASSWORD || ""
  });
  const dbConnectionStatus = Boolean(parseInt(DB_CONNECTION_STATUS));
  const onHandleChange = (event) => {
    const target = event.target;
    setData({
      ...data,
      [target.name]: target.value
    });
  };
  const testDBConnection = async (e) => {
    e.preventDefault();
    router.post(route("check-database"), data);
  };
  const handleSubmit = (e) => {
    e.preventDefault();
    post(route("install.store-step3"));
  };
  return /* @__PURE__ */ jsxs("div", { children: [
    /* @__PURE__ */ jsx(StepNavigator, { step1: "fill", step2: "fill", step3: "active" }),
    /* @__PURE__ */ jsxs("form", { id: "dataForm", onSubmit: handleSubmit, children: [
      /* @__PURE__ */ jsx(Message, { error: flash.error, success: flash.success }),
      /* @__PURE__ */ jsxs("div", { className: "mb-6", children: [
        /* @__PURE__ */ jsx(Label, { children: "Select Database Type" }),
        /* @__PURE__ */ jsxs(Select, { name: "db_connection", value: data.db_connection, onValueChange: (value) => setData("db_connection", value), children: [
          /* @__PURE__ */ jsx(SelectTrigger, { children: /* @__PURE__ */ jsx(SelectValue, { placeholder: "Select Database Type" }) }),
          /* @__PURE__ */ jsx(SelectContent, { children: /* @__PURE__ */ jsx(SelectItem, { value: "mysql", children: "MySQL" }) })
        ] })
      ] }),
      /* @__PURE__ */ jsxs("div", { className: "mb-6", children: [
        /* @__PURE__ */ jsx(Label, { children: "DB Host" }),
        /* @__PURE__ */ jsx(Input, { id: "db_host", type: "text", name: "db_host", value: data.db_host, onChange: onHandleChange, placeholder: "127.0.0.1" }),
        /* @__PURE__ */ jsx(InputError, { message: errors.db_host })
      ] }),
      /* @__PURE__ */ jsxs("div", { className: "mb-6", children: [
        /* @__PURE__ */ jsx(Label, { children: "DB Port" }),
        /* @__PURE__ */ jsx(Input, { id: "db_port", type: "text", name: "db_port", value: data.db_port, onChange: onHandleChange, placeholder: "3306" }),
        /* @__PURE__ */ jsx(InputError, { message: errors.db_port })
      ] }),
      /* @__PURE__ */ jsxs("div", { className: "mb-6", children: [
        /* @__PURE__ */ jsx(Label, { children: "DB Database" }),
        /* @__PURE__ */ jsx(
          Input,
          {
            id: "db_database",
            type: "text",
            name: "db_database",
            value: data.db_database,
            onChange: onHandleChange,
            placeholder: "Database Name"
          }
        ),
        /* @__PURE__ */ jsx(InputError, { message: errors.db_database })
      ] }),
      /* @__PURE__ */ jsxs("div", { className: "mb-6", children: [
        /* @__PURE__ */ jsx(Label, { children: "DB Username" }),
        /* @__PURE__ */ jsx(Input, { id: "db_username", type: "text", name: "db_username", value: data.db_username, onChange: onHandleChange, placeholder: "Username" }),
        /* @__PURE__ */ jsx(InputError, { message: errors.db_username })
      ] }),
      /* @__PURE__ */ jsxs("div", { className: "mb-6", children: [
        /* @__PURE__ */ jsx(Label, { children: "DB Password" }),
        /* @__PURE__ */ jsx(Input, { id: "db_password", type: "password", name: "db_password", value: data.db_password, onChange: onHandleChange, placeholder: "Password" }),
        /* @__PURE__ */ jsx(InputError, { message: errors.db_password })
      ] }),
      /* @__PURE__ */ jsx(
        Button,
        {
          type: "button",
          className: cn("w-full", dbConnectionStatus && "bg-green-500", flash.error && "bg-red-500"),
          onClick: testDBConnection,
          disabled: dbConnectionStatus,
          children: "Test Connection"
        }
      ),
      /* @__PURE__ */ jsxs("div", { className: "mt-12 flex items-center justify-end gap-4", children: [
        /* @__PURE__ */ jsx(Link, { href: route("install.show-step2"), children: /* @__PURE__ */ jsx(Button, { type: "button", variant: "outline", className: "border border-orange-500 !bg-transparent !text-orange-500 uppercase", children: "Previous Step" }) }),
        dbConnectionStatus && /* @__PURE__ */ jsx(Button, { type: "submit", className: "bg-orange-500 px-6 py-3 text-white uppercase hover:bg-orange-600/90", children: "Next Step" })
      ] })
    ] })
  ] });
};
Step3.layout = (page) => /* @__PURE__ */ jsx(Layout, { children: page });
export {
  Step3 as default
};
