"use client"
import { resetAppStore } from "@/store/app"
import { resetToolStore } from "@/store/tool"
import { addToast } from "@heroui/react"
import {
  Close,
  Minus,
  Moon,
  Refresh,
  RocketOne,
  Square,
  SunOne,
} from "@icon-park/react"
import { getCurrentWindow } from "@tauri-apps/api/window"
import { /* relaunch,  */ exit } from "@tauri-apps/plugin-process"
import { useTheme } from "next-themes"
// import { platform } from "@tauri-apps/plugin-os"
import { usePathname, useRouter } from "next/navigation"
import { saveAllNow } from "tauri-plugin-valtio"

const Nav = () => {
  const { theme, setTheme } = useTheme()

  const close = async () => {
    // (await window.hideOnClose) ? getCurrent().hide() : exit();
    await saveAllNow()
    await exit()
  }

  const minimize = async () => {
    await saveAllNow()
    await getCurrentWindow().minimize()
  }

  const toggleMaximize = async () => {
    const current = getCurrentWindow()
    const maximized = await current.isMaximized()
    await (maximized ? current.unmaximize() : current.maximize())
  }

  // const reset = async () => {
  //   await relaunch()
  // }
  const router = useRouter()
  const pathname = usePathname()

  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 active:scale-95"
        onClick={() => {
          resetAppStore()
          resetToolStore()
          addToast({
            title: "重置成功",
            color: "success",
            // description: "已重置所有设置",
          })
        }}
      >
        <Refresh size={16} />
      </button>

      <button
        type="button"
        className="px-2 py-0 transition duration-150 rounded hover:bg-zinc-200/80 active:scale-95"
        onClick={() =>
          pathname !== "/prepare" ? router.push("/prepare") : router.back()
        }
      >
        <RocketOne size={16} />
      </button>

      <button
        type="button"
        className="px-2 py-0 transition duration-150 rounded hover:bg-zinc-200/80 active:scale-95"
        onClick={() =>
          theme === "light" ? setTheme("dark") : setTheme("light")
        }
      >
        {theme === "light" ? <SunOne size={16} /> : <Moon size={16} />}
      </button>

      {/* { platform() === "windows" && ( */}
      <>
        <button
          type="button"
          className="px-2 py-0 transition duration-150 rounded hover:bg-zinc-200/80 active:scale-95"
          onClick={minimize}
        >
          <Minus size={16} />
        </button>
        <button
          type="button"
          className="px-2 py-0 transition duration-150 rounded hover:bg-zinc-200/80 active:scale-95"
          onClick={toggleMaximize}
        >
          <Square size={16} />
        </button>
        <button
          type="button"
          className="px-2 py-0 transition duration-150 rounded hover:bg-zinc-200/80 active:scale-95"
          onClick={close}
        >
          <Close size={16} />
        </button>
      </>
      {/* )} */}
    </nav>
  )
}

export default Nav
