Ver código fonte

Create index.tsx

Stefan Pejcic 1 ano atrás
pai
commit
18552acfb9
1 arquivos alterados com 109 adições e 0 exclusões
  1. 109 0
      documentation/src/pages/install/index.tsx

+ 109 - 0
documentation/src/pages/install/index.tsx

@@ -0,0 +1,109 @@
+import React, { useState } from "react";
+import Head from "@docusaurus/Head";
+import { BlogFooter } from "@site/src/refine-theme/blog-footer";
+import { CommonHeader } from "@site/src/refine-theme/common-header";
+import { CommonLayout } from "@site/src/refine-theme/common-layout";
+import clsx from "clsx";
+
+const Install: React.FC = () => {
+  const [options, setOptions] = useState({
+    port: false,
+    lang: false,
+    hostname: false,
+    email: false,
+    password: false,
+    apache: true, // Default to true
+    phpfpm: true, // Default to true
+    // Add more options as needed
+  });
+
+  const [inputValues, setInputValues] = useState({
+    // Define initial input values if needed
+  });
+
+  const handleOptionChange = (option: string) => {
+    setOptions((prevOptions) => ({
+      ...prevOptions,
+      [option]: !prevOptions[option],
+    }));
+  };
+
+  const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {
+    const { name, value } = event.target;
+    setInputValues((prevInputValues) => ({
+      ...prevInputValues,
+      [name]: value,
+    }));
+  };
+
+  const generateInstallCommand = () => {
+    // Implement logic to generate the install command based on selected options and input values
+    let command = "Your install command here";
+    return command;
+  };
+
+  return (
+    <CommonLayout>
+      <Head title="Install | OpenPanel">
+        <html data-page="support" data-customized="true" />
+      </Head>
+      <div className="refine-prose">
+        <CommonHeader hasSticky={true} />
+
+        <div className="flex-1 flex flex-col pt-8 lg:pt-16 pb-32 max-w-[800px] w-full mx-auto px-2">
+          <h2 className="u-text-center">Installation instructions</h2>
+          <p className="u-mb10">
+            Log in to your server e.g.{" "}
+            <code>ssh root@your.server</code> then download the installation
+            script:
+          </p>
+          {/* Implement CopyToClipboardInput for first command */}
+
+          <p className="u-mb10">
+            Check you are running as the <code>root</code> user, configure the
+            options you want below, then run:
+          </p>
+          {/* Implement CopyToClipboardInput for second command */}
+
+          <h2 className="u-text-center">Configure options</h2>
+          <ul className="option-list">
+            {Object.keys(options).map((option) => (
+              <li
+                key={option}
+                className={clsx("option-item", "is-clickable", {
+                  "is-active": options[option],
+                })}
+              >
+                <div className="option-header">
+                  <div className="form-check">
+                    <input
+                      type="checkbox"
+                      className="form-check-input"
+                      id={option}
+                      checked={options[option]}
+                      onChange={() => handleOptionChange(option)}
+                    />
+                    <label htmlFor={option}>{option}</label>
+                  </div>
+                  {/* Implement tooltip icon */}
+                </div>
+              </li>
+            ))}
+          </ul>
+
+          {/* Implement input fields for additional input values */}
+          {/* Implement a button to generate the install command */}
+          <button
+            className="bg-blue-500 text-white px-4 py-2"
+            onClick={() => generateInstallCommand()}
+          >
+            Generate Install Command
+          </button>
+        </div>
+        <BlogFooter />
+      </div>
+    </CommonLayout>
+  );
+};
+
+export default Install;