dev-prepare #2
@@ -1,50 +1,19 @@
|
|||||||
"use client"
|
"use client"
|
||||||
|
|
||||||
import Nav from "@/components/window/Nav"
|
import Nav from "@/components/window/Nav"
|
||||||
import { Button } from "@heroui/react"
|
import { Prepare } from "@/components/cstb/Prepare"
|
||||||
// import { open } from "@tauri-apps/plugin-dialog"
|
|
||||||
import { useRouter } from "next/navigation"
|
|
||||||
import React from "react"
|
|
||||||
|
|
||||||
const Home = () => {
|
const Home = () => {
|
||||||
const router = useRouter()
|
|
||||||
// const [file, setFile] = React.useState<string | null>("")
|
|
||||||
|
|
||||||
// const openFile = async () => {
|
|
||||||
// const filePath = await open({
|
|
||||||
// multiple: true,
|
|
||||||
// directory: false,
|
|
||||||
// })
|
|
||||||
|
|
||||||
// setFile(filePath?.join("\n") || " ")
|
|
||||||
// }
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Nav />
|
<Nav />
|
||||||
<main
|
<main className="flex flex-col items-center justify-center w-full h-screen gap-6" data-tauri-drag-region>
|
||||||
className="flex flex-col items-center justify-center w-full h-screen gap-6"
|
|
||||||
data-tauri-drag-region
|
|
||||||
>
|
|
||||||
<h1 className="text-4xl font-bold tracking-wide">CS 工具箱</h1>
|
<h1 className="text-4xl font-bold tracking-wide">CS 工具箱</h1>
|
||||||
<Button
|
<Prepare />
|
||||||
onPress={() => router.push("/home")}
|
|
||||||
variant="solid"
|
|
||||||
color="primary"
|
|
||||||
size="sm"
|
|
||||||
>
|
|
||||||
进入
|
|
||||||
</Button>
|
|
||||||
{/* <button
|
|
||||||
type="button"
|
|
||||||
onClick={openFile}
|
|
||||||
className="px-4 py-1 text-white bg-blue-500 rounded"
|
|
||||||
>
|
|
||||||
选择文件
|
|
||||||
</button>
|
|
||||||
<p className="text-center bg-zinc-50">{file}</p> */}
|
|
||||||
</main>
|
</main>
|
||||||
</>
|
</>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
export default Home
|
export default Home
|
||||||
95
src/components/cstb/Prepare.tsx
Normal file
95
src/components/cstb/Prepare.tsx
Normal file
@@ -0,0 +1,95 @@
|
|||||||
|
import { Button, Spinner } from "@heroui/react"
|
||||||
|
import { useRouter } from "next/navigation"
|
||||||
|
import React, { useEffect, useState } from "react"
|
||||||
|
import { useSnapshot } from "valtio"
|
||||||
|
import { steamStore } from "@/store/steam"
|
||||||
|
import { open } from "@tauri-apps/plugin-dialog"
|
||||||
|
|
||||||
|
export function Prepare() {
|
||||||
|
const router = useRouter()
|
||||||
|
const steam = useSnapshot(steamStore.state)
|
||||||
|
const [loading, setLoading] = useState(true)
|
||||||
|
const [steamDir, setSteamDir] = useState(steam.dir)
|
||||||
|
const [cs2Dir, setCs2Dir] = useState(steam.csDir)
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
const checkPaths = async () => {
|
||||||
|
if (steam.dir && steam.csDir) {
|
||||||
|
router.push("/home")
|
||||||
|
} else {
|
||||||
|
setLoading(false)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
checkPaths()
|
||||||
|
}, [steam.dir, steam.csDir, router])
|
||||||
|
|
||||||
|
const handleSelectSteamDir = async () => {
|
||||||
|
const selected = await open({
|
||||||
|
title: "选择 Steam.exe 文件",
|
||||||
|
filters: [{ name: "Steam", extensions: ["exe"] }],
|
||||||
|
})
|
||||||
|
if (selected) {
|
||||||
|
const dir = selected.replace(/\\[^\\]+$/, "")
|
||||||
|
setSteamDir(dir)
|
||||||
|
steamStore.state.dir = dir
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const handleSelectCs2Dir = async () => {
|
||||||
|
const selected = await open({
|
||||||
|
title: "选择 CS2 文件夹",
|
||||||
|
directory: true,
|
||||||
|
})
|
||||||
|
if (selected) {
|
||||||
|
setCs2Dir(selected)
|
||||||
|
steamStore.state.csDir = selected
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (loading) {
|
||||||
|
return (
|
||||||
|
<div className="flex flex-col items-center justify-center w-full h-screen gap-6">
|
||||||
|
<Spinner size="lg" />
|
||||||
|
<p>正在检查路径...</p>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div className="flex flex-col w-full max-w-3xl gap-2 p-5">
|
||||||
|
<p className="text-center">当前路径等设置有待确认</p>
|
||||||
|
<br />
|
||||||
|
<p>Steam所在文件夹</p>
|
||||||
|
<div className="flex gap-2">
|
||||||
|
<input
|
||||||
|
className="flex-grow px-2 py-1 mb-2 rounded-lg"
|
||||||
|
value={steamDir}
|
||||||
|
onChange={(e) => setSteamDir(e.target.value)}
|
||||||
|
/>
|
||||||
|
<Button onPress={handleSelectSteamDir} variant="solid" color="primary" size="sm">
|
||||||
|
选择
|
||||||
|
</Button>
|
||||||
|
</div>
|
||||||
|
<p>CS2所在文件夹</p>
|
||||||
|
<div className="flex gap-2">
|
||||||
|
<input
|
||||||
|
className="flex-grow px-2 py-1 mb-2 rounded-lg"
|
||||||
|
value={cs2Dir}
|
||||||
|
onChange={(e) => setCs2Dir(e.target.value)}
|
||||||
|
/>
|
||||||
|
<Button onPress={handleSelectCs2Dir} variant="solid" color="primary" size="sm">
|
||||||
|
选择
|
||||||
|
</Button>
|
||||||
|
</div>
|
||||||
|
<Button
|
||||||
|
onPress={() => router.push("/home")}
|
||||||
|
variant="solid"
|
||||||
|
color="primary"
|
||||||
|
size="sm"
|
||||||
|
isDisabled={!steamDir || !cs2Dir}
|
||||||
|
>
|
||||||
|
进入
|
||||||
|
</Button>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user