FIX: fix bug about checking version

This commit is contained in:
2025-07-26 22:07:28 +07:00
parent 461dfd93ba
commit fb1cd82434
5 changed files with 107 additions and 96 deletions

View File

@@ -55,7 +55,7 @@ export default function LauncherPage() {
useEffect(() => {
const check = async () => {
if (!serverPath || !proxyPath || !serverVersion || !proxyVersion) {
if (!serverVersion || !proxyVersion) {
setServerReady(false)
setProxyReady(false)
return
@@ -74,17 +74,11 @@ export default function LauncherPage() {
const checkStartUp = async (): Promise<void> => {
const [_, version] = await AppService.GetCurrentLauncherVersion()
setLauncherVersion(version)
let isExists = false
if (serverPath && proxyPath && serverVersion && proxyVersion) {
isExists = true
setServerReady(true)
setProxyReady(true)
}
const launcherData = await CheckUpdateLauncher()
if (launcherData.isUpdate) {
setUpdateData({
server: { isUpdate: false, version: "" },
proxy: { isUpdate: false, version: "" },
server: { isUpdate: false, isExists: false, version: "" },
proxy: { isUpdate: false, isExists: false, version: "" },
launcher: launcherData
})
setIsOpenSelfUpdateModal(true)
@@ -92,29 +86,33 @@ export default function LauncherPage() {
}
const serverData = await CheckUpdateServer(serverPath, serverVersion)
const proxyData = await CheckUpdateProxy(proxyPath, proxyVersion)
setUpdateData({
server: serverData,
proxy: proxyData,
launcher: launcherData
})
const exitGame = await FSService.FileExists(gamePath)
if (!exitGame) {
setGameRunning(false)
setGamePath("")
setGameDir("")
}
if (!serverData.isUpdate && !proxyData.isUpdate) {
setServerReady(true)
setProxyReady(true)
return
}
if (!isExists) {
setUpdateData({
server: serverData,
proxy: proxyData,
launcher: launcherData
})
if (!serverData.isExists || !proxyData.isExists) {
setServerReady(false)
setProxyReady(false)
setIsOpenDownloadDataModal(true)
return
}
setIsOpenUpdateDataModal(true)
if (serverData.isUpdate || proxyData.isUpdate) {
setServerReady(true)
setProxyReady(true)
setIsOpenUpdateDataModal(true)
return
}
setServerReady(true)
setProxyReady(true)
}
checkStartUp()
}, []);
@@ -196,31 +194,30 @@ export default function LauncherPage() {
}
}
const handlerUpdateServer = async () => {
const handlerUpdateData = async () => {
setIsDownloading(true)
for (const [key, value] of Object.entries(updateData)) {
if (!value.isUpdate) {
if (key === "server") {
setServerReady(true)
} else if (key === "proxy") {
setProxyReady(true)
}
continue
}
if (key === "server") {
await UpdateServer(value.version)
setServerReady(true)
} else if (key === "proxy") {
await UpdateProxy(value.version)
setProxyReady(true)
} else if (key === "launcher") {
await UpdateLauncher(value.version)
}
if (updateData.launcher.isUpdate) {
await UpdateLauncher(updateData.launcher.version)
setUpdateData({...updateData, launcher: { isUpdate: false, isExists: true, version: updateData.launcher.version }})
setIsOpenSelfUpdateModal(true)
}
if (updateData.server.isUpdate || !updateData.server.isExists) {
await UpdateServer(updateData.server.version)
setServerReady(true)
setUpdateData({...updateData, server: { isUpdate: false, isExists: true, version: updateData.server.version }})
}
if (updateData.proxy.isUpdate || !updateData.proxy.isExists) {
await UpdateProxy(updateData.proxy.version)
setProxyReady(true)
setUpdateData({...updateData, proxy: { isUpdate: false, isExists: true, version: updateData.proxy.version }})
}
setDownloadType("")
setIsDownloading(false)
}
// Handle ESC key to close modal
useEffect(() => {
const handleEscKey = (event: KeyboardEvent) => {
@@ -352,16 +349,24 @@ export default function LauncherPage() {
const serverData = await CheckUpdateServer(serverPath, serverVersion)
const proxyData = await CheckUpdateProxy(proxyPath, proxyVersion)
const launcherData = await CheckUpdateLauncher()
if (serverData.isUpdate || proxyData.isUpdate || launcherData.isUpdate) {
setUpdateData({
server: serverData,
proxy: proxyData,
launcher: launcherData
})
setIsOpenUpdateDataModal(true)
} else {
toast.success("No updates available")
setUpdateData({
server: serverData,
proxy: proxyData,
launcher: launcherData
})
if (launcherData.isUpdate) {
setIsOpenSelfUpdateModal(true)
return
}
if (!serverData.isExists || !proxyData.isExists) {
setIsOpenDownloadDataModal(true)
return
}
if (serverData.isUpdate || proxyData.isUpdate) {
setIsOpenUpdateDataModal(true)
return
}
toast.success("No updates available")
}}>
Check for Updates
</button></li>
@@ -388,7 +393,12 @@ export default function LauncherPage() {
)}
{/* Downloading */}
{isDownloading && (updateData.proxy.isUpdate || updateData.server.isUpdate) && (
{isDownloading && (
updateData.proxy.isUpdate
|| updateData.server.isUpdate
|| !updateData.proxy.isExists
|| !updateData.server.isExists
) && (
<div className="fixed bottom-4 left-1/2 transform -translate-x-1/2 z-10 w-[60vw] bg-black/20 backdrop-blur-sm rounded-lg p-4 shadow-lg">
<div className="space-y-3">
<div className="flex justify-center items-center text-sm text-white/80">
@@ -505,7 +515,7 @@ export default function LauncherPage() {
className="btn btn-primary bg-gradient-to-r from-orange-200 to-red-400 border-none"
onClick={async () => {
setIsOpenUpdateDataModal(false)
await handlerUpdateServer()
await handlerUpdateData()
}}
>
Yes
@@ -539,7 +549,7 @@ export default function LauncherPage() {
className="btn btn-primary bg-gradient-to-r from-orange-200 to-red-400 border-none"
onClick={async () => {
setIsOpenDownloadDataModal(false)
await handlerUpdateServer()
await handlerUpdateData()
}}
>
Download
@@ -590,7 +600,7 @@ export default function LauncherPage() {
className="btn btn-primary bg-gradient-to-r from-orange-200 to-red-400 border-none"
onClick={async () => {
setIsOpenSelfUpdateModal(false)
await handlerUpdateServer()
await handlerUpdateData()
}}
>
Yes