[feat] reset modal + basic auto get path + basic wrap err try

This commit is contained in:
Purp1e
2025-03-20 14:13:03 +08:00
parent 60782669ea
commit a9a48d2aba
12 changed files with 163 additions and 62 deletions

View File

@@ -2,7 +2,7 @@
import { setTheme as setTauriTheme } from "@/hooks/tauri/theme"
import { useAppStore } from "@/store/app"
import { useToolStore } from "@/store/tool"
import { addToast } from "@heroui/react"
import { addToast, Button, useDisclosure } from "@heroui/react"
import { Close, Minus, Moon, Refresh, RocketOne, Square, SunOne } from "@icon-park/react"
import { type Theme, getCurrentWindow } from "@tauri-apps/api/window"
import { /* relaunch, */ exit } from "@tauri-apps/plugin-process"
@@ -10,11 +10,9 @@ import { useTheme } from "next-themes"
import { usePathname, useRouter } from "next/navigation"
import { saveAllNow } from "@tauri-store/valtio"
import { useSteamStore } from "@/store/steam"
import { Modal, ModalContent, ModalHeader, ModalBody, ModalFooter } from "@heroui/react"
const Nav = () => {
const app = useAppStore()
const tool = useToolStore()
const steam = useSteamStore()
const { theme, setTheme } = useTheme()
const setAppTheme = async (theme: Theme) => {
setTheme(theme)
@@ -46,23 +44,7 @@ const Nav = () => {
return (
<nav className="absolute top-0 right-0 flex flex-row h-16 gap-0.5 p-4" data-tauri-drag-region>
<button
type="button"
className="px-2 py-0 transition duration-150 rounded hover:bg-zinc-200/80 dark:hover:bg-zinc-100/10 active:scale-95"
onClick={() => {
app.resetAppStore()
tool.resetToolStore()
steam.resetSteamStore()
addToast({
title: "重置成功",
color: "success",
// description: "已重置所有设置",
})
router.push("/")
}}
>
<Refresh size={16} />
</button>
<ResetModal />
{pathname !== "/" && (
<button
@@ -111,4 +93,64 @@ const Nav = () => {
)
}
function ResetModal() {
const app = useAppStore()
const tool = useToolStore()
const steam = useSteamStore()
const router = useRouter()
const { isOpen, onOpen, onOpenChange } = useDisclosure()
function reset() {
app.resetAppStore()
tool.resetToolStore()
steam.resetSteamStore()
addToast({
title: "重置成功",
color: "success",
// description: "已重置所有设置",
})
router.push("/")
}
return (
<>
<button
type="button"
className="px-2 py-0 transition duration-150 rounded hover:bg-zinc-200/80 dark:hover:bg-zinc-100/10 active:scale-95"
onClick={onOpen}
>
<Refresh size={16} />
</button>
<Modal isOpen={isOpen} onOpenChange={onOpenChange}>
<ModalContent>
{(onClose) => (
<>
<ModalHeader className="flex flex-col gap-1"></ModalHeader>
<ModalBody>
<p>
CS工具箱的偏好设置为默认设置
</p>
</ModalBody>
<ModalFooter>
<Button color="danger" variant="light" onPress={onClose}>
</Button>
<Button
color="primary"
onPress={() => {
reset()
onClose()
}}
>
</Button>
</ModalFooter>
</>
)}
</ModalContent>
</Modal>
</>
)
}
export default Nav