diff --git a/documentation/src/pages/install/index.tsx b/documentation/src/pages/install/index.tsx index 60a6f76d..3d900b0e 100644 --- a/documentation/src/pages/install/index.tsx +++ b/documentation/src/pages/install/index.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import React, { useState, useEffect } 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"; @@ -23,11 +23,32 @@ const Install: React.FC = () => { enableFTP: false, enableMail: false, postInstall: "", - screenshots: "", + screenshots: "local", debug: false, repair: false, }); + const [availableVersions, setAvailableVersions] = useState([]); + + useEffect(() => { + fetch("https://update.openpanel.co/") + .then(response => response.json()) + .then(data => { + // Extract the latest version and versions below it + const latestVersion = data.latest_version; + const versionsBelow = data.versions_below.slice(0, 5); + // Combine the latest version and versions below it + const allVersions = [latestVersion, ...versionsBelow]; + setAvailableVersions(allVersions); + // Set default version to the latest version + setInstallOptions(prevState => ({ + ...prevState, + version: latestVersion, + })); + }) + .catch(error => console.error("Error fetching available versions:", error)); + }, []); + const handleInputChange = (e: React.ChangeEvent) => { const { name, value, type, checked } = e.target; setInstallOptions(prevState => ({ @@ -73,14 +94,47 @@ const Install: React.FC = () => { {Object.entries(installOptions).map(([key, value]) => (
- + {key === "version" && ( + + )} + {key === "screenshots" && ( + + )} + {typeof value === "boolean" ? ( + + ) : ( + + )}
))}