From 8a4133c9c517556cd16c2bbc1cd20bf4ee8f52f0 Mon Sep 17 00:00:00 2001 From: HsiangNianian Date: Sat, 28 Feb 2026 10:55:26 +0800 Subject: chore(docs): Update README file --- .changes/chore.md | 5 +++++ README.CN.md | 50 ++++++++++++++++++++++++------------------------- README.md | 56 +++++++++++++++++++++++++++---------------------------- 3 files changed, 58 insertions(+), 53 deletions(-) create mode 100644 .changes/chore.md diff --git a/.changes/chore.md b/.changes/chore.md new file mode 100644 index 0000000..3d6fc0b --- /dev/null +++ b/.changes/chore.md @@ -0,0 +1,5 @@ +______________________________________________________________________ + +## dropout: "patch:chore" + +Update README file diff --git a/README.CN.md b/README.CN.md index 5017b66..a740055 100644 --- a/README.CN.md +++ b/README.CN.md @@ -14,7 +14,7 @@ DropOut 是一个现代的、可复现的、开发者级别的 Minecraft 启动器。 它不仅仅是为了启动 Minecraft 而设计的,而是将 Minecraft 环境作为确定性的、版本化的工作空间进行管理。 -DropOut 使用 Tauri v2 构建,DropOut 提供原生性能和最小资源使用,并配有现代响应式 Web UI(目前使用 Svelte 5,正在迁移到 React)。 +DropOut 使用 Tauri v2 构建,DropOut 提供原生性能和最小资源使用,并配有现代响应式 Web UI。 > Minecraft 环境是一个复杂的系统。 > DropOut 将它们视为软件项目。 @@ -29,20 +29,20 @@ DropOut 使用 Tauri v2 构建,DropOut 提供原生性能和最小资源使用 DropOut 专注于保持你的游戏稳定、可调试和可重现。 - 整合包昨天还能游玩,今天却坏了? -→ DropOut 让它可追溯。 + → DropOut 让它可追溯。 - 分享模组包意味着压缩数 GB 的文件? -→ DropOut 分享精确的依赖清单。 + → DropOut 分享精确的依赖清单。 - Java、加载器、模组、配置不同步? -→ DropOut 将它们锁定在一起。 + → DropOut 将它们锁定在一起。 这个启动器是为重视控制、透明度和长期稳定性的玩家构建的。 ## 功能特性 - **高性能**:使用 Rust 和 Tauri 构建,实现最小资源使用和快速启动时间。 -- **现代工业 UI**:使用 **Svelte 5** 和 **Tailwind CSS 4** 设计的干净、无干扰界面。 +- **现代工业 UI**:使用 **React** 和 **Tailwind CSS 4** 设计的干净、无干扰界面。 - **Microsoft 认证**:通过官方 Xbox Live 和 Microsoft OAuth 流程(设备代码流程)提供安全登录支持。 - **模组加载器支持**: - **Fabric**:内置安装程序和版本管理。 @@ -58,14 +58,14 @@ DropOut 专注于保持你的游戏稳定、可调试和可重现。 ## 路线图 -- [X] **账户持久化** — 在会话之间保存登录状态 -- [X] **令牌刷新** — 自动刷新过期的 Microsoft 令牌 -- [X] **JVM 参数解析** — 完全支持 `arguments.jvm` 和 `arguments.game` 解析 -- [X] **Java 自动检测和下载** — 扫描系统并下载 Java 运行时 -- [X] **Fabric 加载器支持** — 使用 Fabric 安装和启动 -- [X] **Forge 加载器支持** — 使用 Forge 安装和启动 -- [X] **GitHub 发布集成** — 在应用内查看变更日志 -- [ ] **实例/配置文件系统** — 多个隔离的游戏目录,具有不同的版本/模组 +- [x] **账户持久化** — 在会话之间保存登录状态 +- [x] **令牌刷新** — 自动刷新过期的 Microsoft 令牌 +- [x] **JVM 参数解析** — 完全支持 `arguments.jvm` 和 `arguments.game` 解析 +- [x] **Java 自动检测和下载** — 扫描系统并下载 Java 运行时 +- [x] **Fabric 加载器支持** — 使用 Fabric 安装和启动 +- [x] **Forge 加载器支持** — 使用 Forge 安装和启动 +- [x] **GitHub 发布集成** — 在应用内查看变更日志 +- [ ] **[WIP]实例/配置文件系统** — 多个隔离的游戏目录,具有不同的版本/模组 - [ ] **多账户支持** — 在多个账户之间无缝切换 - [ ] **自定义游戏目录** — 允许用户选择游戏文件位置 - [ ] **启动器自动更新** — 通过 Tauri 更新插件的自更新机制 @@ -76,21 +76,21 @@ DropOut 专注于保持你的游戏稳定、可调试和可重现。 从 [Releases](https://github.com/HsiangNianian/DropOut/releases) 页面下载适用于您平台的最新版本。 -| 平台 | 文件 | -| -------------- | ----------------------- | -| Linux x86_64 | `.deb`, `.AppImage` | -| Linux ARM64 | `.deb`, `.AppImage` | -| macOS ARM64 | `.dmg` | -| Windows x86_64 | `.msi`, `.exe` | -| Windows ARM64 | `.msi`, `.exe` | +| 平台 | 文件 | +| -------------- | ------------------- | +| Linux x86_64 | `.deb`, `.AppImage` | +| Linux ARM64 | `.deb`, `.AppImage` | +| macOS ARM64 | `.dmg` | +| Windows x86_64 | `.msi`, `.exe` | +| Windows ARM64 | `.msi`, `.exe` | ## 从源码构建 ### 先决条件 1. **Rust**:从 [rustup.rs](https://rustup.rs/) 安装。 -2. **Node.js** 和 **pnpm**:用于前端依赖。 -3. **系统依赖**:按照您的操作系统遵循 [Tauri 先决条件](https://v2.tauri.app/start/prerequisites/)。 +1. **Node.js** 和 **pnpm**:用于前端依赖。 +1. **系统依赖**:按照您的操作系统遵循 [Tauri 先决条件](https://v2.tauri.app/start/prerequisites/)。 ### 步骤 @@ -101,7 +101,7 @@ DropOut 专注于保持你的游戏稳定、可调试和可重现。 cd DropOut ``` -2. **安装前端依赖** +1. **安装前端依赖** ```bash cd ui @@ -109,14 +109,14 @@ DropOut 专注于保持你的游戏稳定、可调试和可重现。 cd .. ``` -3. **运行开发模式** +1. **运行开发模式** ```bash # 这将启动前端服务器和 Tauri 应用窗口 cargo tauri dev ``` -4. **构建发布版本** +1. **构建发布版本** ```bash cargo tauri build diff --git a/README.md b/README.md index 6d0eac0..4a0172a 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ English | [中文](README.CN.md) DropOut is a modern, reproducible, and developer-grade Minecraft launcher. It is designed not just to launch Minecraft, but to manage Minecraft environments as deterministic, versioned workspaces. -Built with Tauri v2 and Rust, DropOut delivers native performance and minimal resource usage, paired with a modern reactive web UI (currently Svelte 5, migrating to React). +Built with Tauri v2 and Rust, DropOut delivers native performance and minimal resource usage, paired with a modern reactive web UI. > Minecraft environments are complex systems. > DropOut treats them like software projects. @@ -28,21 +28,21 @@ Built with Tauri v2 and Rust, DropOut delivers native performance and minimal re Most Minecraft launchers focus on getting you into the game. DropOut focuses on keeping your game stable, debuggable, and reproducible. -- Your instance worked yesterday but broke today? -→ DropOut makes it traceable. +- Your instance worked yesterday but broke today?\ + → DropOut makes it traceable. -- Sharing a modpack means zipping gigabytes? -→ DropOut shares exact dependency manifests. +- Sharing a modpack means zipping gigabytes?\ + → DropOut shares exact dependency manifests. -- Java, loader, mods, configs drift out of sync? -→ DropOut locks them together. +- Java, loader, mods, configs drift out of sync?\ + → DropOut locks them together. This launcher is built for players who value control, transparency, and long-term stability. ## Features - **High Performance**: Built with Rust and Tauri for minimal resource usage and fast startup times. -- **Modern Industrial UI**: A clean, distraction-free interface designed with **Svelte 5** and **Tailwind CSS 4**. +- **Modern Industrial UI**: A clean, distraction-free interface designed with **React** and **Tailwind CSS 4**. - **Microsoft Authentication**: Secure login support via official Xbox Live & Microsoft OAuth flows (Device Code Flow). - **Mod Loader Support**: - **Fabric**: Built-in installer and version management. @@ -60,14 +60,14 @@ This launcher is built for players who value control, transparency, and long-ter Check our full roadmap at: -- [X] **Account Persistence** — Save login state between sessions -- [X] **Token Refresh** — Auto-refresh expired Microsoft tokens -- [X] **JVM Arguments Parsing** — Full support for `arguments.jvm` and `arguments.game` parsing -- [X] **Java Auto-detection & Download** — Scan system and download Java runtimes -- [X] **Fabric Loader Support** — Install and launch with Fabric -- [X] **Forge Loader Support** — Install and launch with Forge -- [X] **GitHub Releases Integration** — View changelogs in-app -- [ ] **Instance/Profile System** — Multiple isolated game directories with different versions/mods +- [x] **Account Persistence** — Save login state between sessions +- [x] **Token Refresh** — Auto-refresh expired Microsoft tokens +- [x] **JVM Arguments Parsing** — Full support for `arguments.jvm` and `arguments.game` parsing +- [x] **Java Auto-detection & Download** — Scan system and download Java runtimes +- [x] **Fabric Loader Support** — Install and launch with Fabric +- [x] **Forge Loader Support** — Install and launch with Forge +- [x] **GitHub Releases Integration** — View changelogs in-app +- [ ] **[WIP]Instance/Profile System** — Multiple isolated game directories with different versions/mods - [ ] **Multi-account Support** — Switch between multiple accounts seamlessly - [ ] **Custom Game Directory** — Allow users to choose game files location - [ ] **Launcher Auto-updater** — Self-update mechanism via Tauri updater plugin @@ -78,21 +78,21 @@ Check our full roadmap at: Download the latest release for your platform from the [Releases](https://github.com/HsiangNianian/DropOut/releases) page. -| Platform | Files | -| -------------- | ----------------------- | -| Linux x86_64 | `.deb`, `.AppImage` | -| Linux ARM64 | `.deb`, `.AppImage` | -| macOS ARM64 | `.dmg` | -| Windows x86_64 | `.msi`, `.exe` | -| Windows ARM64 | `.msi`, `.exe` | +| Platform | Files | +| -------------- | ------------------- | +| Linux x86_64 | `.deb`, `.AppImage` | +| Linux ARM64 | `.deb`, `.AppImage` | +| macOS ARM64 | `.dmg` | +| Windows x86_64 | `.msi`, `.exe` | +| Windows ARM64 | `.msi`, `.exe` | ## Building from Source ### Prerequisites 1. **Rust**: Install from [rustup.rs](https://rustup.rs/). -2. **Node.js** & **pnpm**: Used for the frontend dependencies. -3. **System Dependencies**: Follow the [Tauri Prerequisites](https://v2.tauri.app/start/prerequisites/) for your OS. +1. **Node.js** & **pnpm**: Used for the frontend dependencies. +1. **System Dependencies**: Follow the [Tauri Prerequisites](https://v2.tauri.app/start/prerequisites/) for your OS. ### Steps @@ -103,7 +103,7 @@ Download the latest release for your platform from the [Releases](https://github cd DropOut ``` -2. **Install Frontend Dependencies** +1. **Install Frontend Dependencies** ```bash cd ui @@ -111,14 +111,14 @@ Download the latest release for your platform from the [Releases](https://github cd .. ``` -3. **Run in Development Mode** +1. **Run in Development Mode** ```bash # This will start the frontend server and the Tauri app window cargo tauri dev ``` -4. **Build Release Version** +1. **Build Release Version** ```bash cargo tauri build -- cgit v1.2.3-70-g09d2 From e1cec45bc7240585215802cf1e9a6e7dc59b8f20 Mon Sep 17 00:00:00 2001 From: HsiangNianian Date: Sat, 28 Feb 2026 10:59:39 +0800 Subject: chore(changes): Revert changset format --- .changes/chore.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.changes/chore.md b/.changes/chore.md index 3d6fc0b..da2bcc6 100644 --- a/.changes/chore.md +++ b/.changes/chore.md @@ -1,5 +1,5 @@ -______________________________________________________________________ - -## dropout: "patch:chore" +--- +dropout: "patch:chore" +--- Update README file -- cgit v1.2.3-70-g09d2 From 4455ca810c2994b4408e40297897d5ec9ae60c3c Mon Sep 17 00:00:00 2001 From: HsiangNianian Date: Sat, 28 Feb 2026 11:08:09 +0800 Subject: chore(.vscode): remove svelte --- .vscode/extensions.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/extensions.json b/.vscode/extensions.json index bdef820..c2d945b 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,3 +1,3 @@ { - "recommendations": ["svelte.svelte-vscode"] + "recommendations": [""] } -- cgit v1.2.3-70-g09d2 From 0ffa00eb79f06d877c74925b3da4abb0e25370ec Mon Sep 17 00:00:00 2001 From: HsiangNianian Date: Sat, 28 Feb 2026 11:08:34 +0800 Subject: chore: upload .changes file for `4455ca81` --- .changes/chore-vsc-extensions.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changes/chore-vsc-extensions.md diff --git a/.changes/chore-vsc-extensions.md b/.changes/chore-vsc-extensions.md new file mode 100644 index 0000000..f887a70 --- /dev/null +++ b/.changes/chore-vsc-extensions.md @@ -0,0 +1,5 @@ +--- +dropout: "patch:chore" +--- + +Remove unnecessary vsc extension svelte -- cgit v1.2.3-70-g09d2 From 8217588547bf5568dd959df87027c3e44b7397f3 Mon Sep 17 00:00:00 2001 From: Natsuu Date: Sat, 28 Feb 2026 19:58:23 +0800 Subject: chore: update describtion of front-end in readme (#113) ## Summary by Sourcery Update README documentation to reflect the current React-based frontend stack and simplify dependency installation steps. Documentation: - Update English and Chinese READMEs to describe the frontend as built with React 19, Shadcn UI, and Tailwind CSS 4 instead of Svelte 5. - Simplify setup instructions in both READMEs by generalizing the dependency installation step without changing into a separate UI directory. --- README.CN.md | 8 +++----- README.md | 8 +++----- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/README.CN.md b/README.CN.md index a740055..c6f64a0 100644 --- a/README.CN.md +++ b/README.CN.md @@ -14,7 +14,7 @@ DropOut 是一个现代的、可复现的、开发者级别的 Minecraft 启动器。 它不仅仅是为了启动 Minecraft 而设计的,而是将 Minecraft 环境作为确定性的、版本化的工作空间进行管理。 -DropOut 使用 Tauri v2 构建,DropOut 提供原生性能和最小资源使用,并配有现代响应式 Web UI。 +DropOut 使用 Tauri v2 构建,DropOut 提供原生性能和最小资源使用,并配有现代响应式 Web UI(基于 React 19、shadcn/ui 和 Tailwind CSS 4 构建)。 > Minecraft 环境是一个复杂的系统。 > DropOut 将它们视为软件项目。 @@ -42,7 +42,7 @@ DropOut 专注于保持你的游戏稳定、可调试和可重现。 ## 功能特性 - **高性能**:使用 Rust 和 Tauri 构建,实现最小资源使用和快速启动时间。 -- **现代工业 UI**:使用 **React** 和 **Tailwind CSS 4** 设计的干净、无干扰界面。 +- **现代工业 UI**:使用 **React 19**、**shadcn/ui** 和 **Tailwind CSS 4** 设计的干净、无干扰界面。 - **Microsoft 认证**:通过官方 Xbox Live 和 Microsoft OAuth 流程(设备代码流程)提供安全登录支持。 - **模组加载器支持**: - **Fabric**:内置安装程序和版本管理。 @@ -101,12 +101,10 @@ DropOut 专注于保持你的游戏稳定、可调试和可重现。 cd DropOut ``` -1. **安装前端依赖** +2. **安装依赖** ```bash - cd ui pnpm install - cd .. ``` 1. **运行开发模式** diff --git a/README.md b/README.md index 4a0172a..de4e26c 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ English | [中文](README.CN.md) DropOut is a modern, reproducible, and developer-grade Minecraft launcher. It is designed not just to launch Minecraft, but to manage Minecraft environments as deterministic, versioned workspaces. -Built with Tauri v2 and Rust, DropOut delivers native performance and minimal resource usage, paired with a modern reactive web UI. +Built with Tauri v2, DropOut delivers native performance and minimal resource usage, paired with a modern reactive web UI built with React 19, shadcn/ui, and Tailwind CSS 4. > Minecraft environments are complex systems. > DropOut treats them like software projects. @@ -42,7 +42,7 @@ This launcher is built for players who value control, transparency, and long-ter ## Features - **High Performance**: Built with Rust and Tauri for minimal resource usage and fast startup times. -- **Modern Industrial UI**: A clean, distraction-free interface designed with **React** and **Tailwind CSS 4**. +- **Modern Industrial UI**: A clean, distraction-free interface designed with **React 19**, **shadcn/ui**, and **Tailwind CSS 4**. - **Microsoft Authentication**: Secure login support via official Xbox Live & Microsoft OAuth flows (Device Code Flow). - **Mod Loader Support**: - **Fabric**: Built-in installer and version management. @@ -103,12 +103,10 @@ Download the latest release for your platform from the [Releases](https://github cd DropOut ``` -1. **Install Frontend Dependencies** +2. **Install Dependencies** ```bash - cd ui pnpm install - cd .. ``` 1. **Run in Development Mode** -- cgit v1.2.3-70-g09d2 From 47aeabf5d44d7483101d30d289cb4c56761e3faa Mon Sep 17 00:00:00 2001 From: 苏向夜 Date: Mon, 2 Mar 2026 08:42:22 +0800 Subject: feat: improve toast and logo --- .changes/logo.md | 5 +++ .changes/toast.md | 6 +++ packages/ui/src/main.tsx | 2 +- src-tauri/icons/128x128.png | Bin 6188 -> 3488 bytes src-tauri/icons/128x128@2x.png | Bin 15146 -> 7652 bytes src-tauri/icons/32x32.png | Bin 1338 -> 1016 bytes src-tauri/icons/64x64.png | Bin 2953 -> 1707 bytes src-tauri/icons/Square107x107Logo.png | Bin 7025 -> 3559 bytes src-tauri/icons/Square142x142Logo.png | Bin 9641 -> 4398 bytes src-tauri/icons/Square150x150Logo.png | Bin 10549 -> 4866 bytes src-tauri/icons/Square284x284Logo.png | Bin 21937 -> 9097 bytes src-tauri/icons/Square30x30Logo.png | Bin 1375 -> 730 bytes src-tauri/icons/Square310x310Logo.png | Bin 24443 -> 10267 bytes src-tauri/icons/Square44x44Logo.png | Bin 2202 -> 1304 bytes src-tauri/icons/Square71x71Logo.png | Bin 4059 -> 2397 bytes src-tauri/icons/Square89x89Logo.png | Bin 5279 -> 2930 bytes src-tauri/icons/StoreLogo.png | Bin 2679 -> 1528 bytes .../android/mipmap-anydpi-v26/ic_launcher.xml | 5 +++ .../icons/android/mipmap-hdpi/ic_launcher.png | Bin 0 -> 2769 bytes .../android/mipmap-hdpi/ic_launcher_foreground.png | Bin 0 -> 5185 bytes .../android/mipmap-hdpi/ic_launcher_round.png | Bin 0 -> 2943 bytes .../icons/android/mipmap-mdpi/ic_launcher.png | Bin 0 -> 1891 bytes .../android/mipmap-mdpi/ic_launcher_foreground.png | Bin 0 -> 2901 bytes .../android/mipmap-mdpi/ic_launcher_round.png | Bin 0 -> 2236 bytes .../icons/android/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 4038 bytes .../mipmap-xhdpi/ic_launcher_foreground.png | Bin 0 -> 7106 bytes .../android/mipmap-xhdpi/ic_launcher_round.png | Bin 0 -> 5031 bytes .../icons/android/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 8346 bytes .../mipmap-xxhdpi/ic_launcher_foreground.png | Bin 0 -> 10894 bytes .../android/mipmap-xxhdpi/ic_launcher_round.png | Bin 0 -> 9870 bytes .../icons/android/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 9868 bytes .../mipmap-xxxhdpi/ic_launcher_foreground.png | Bin 0 -> 15489 bytes .../android/mipmap-xxxhdpi/ic_launcher_round.png | Bin 0 -> 12716 bytes .../android/values/ic_launcher_background.xml | 4 ++ src-tauri/icons/icon.icns | Bin 208048 -> 96515 bytes src-tauri/icons/icon.ico | Bin 27104 -> 17164 bytes src-tauri/icons/icon.png | Bin 22699 -> 16666 bytes src-tauri/icons/icon.svg | 50 --------------------- src-tauri/icons/ios/AppIcon-20x20@1x.png | Bin 0 -> 437 bytes src-tauri/icons/ios/AppIcon-20x20@2x-1.png | Bin 0 -> 1105 bytes src-tauri/icons/ios/AppIcon-20x20@2x.png | Bin 0 -> 1105 bytes src-tauri/icons/ios/AppIcon-20x20@3x.png | Bin 0 -> 1539 bytes src-tauri/icons/ios/AppIcon-29x29@1x.png | Bin 0 -> 786 bytes src-tauri/icons/ios/AppIcon-29x29@2x-1.png | Bin 0 -> 1794 bytes src-tauri/icons/ios/AppIcon-29x29@2x.png | Bin 0 -> 1794 bytes src-tauri/icons/ios/AppIcon-29x29@3x.png | Bin 0 -> 2810 bytes src-tauri/icons/ios/AppIcon-40x40@1x.png | Bin 0 -> 1105 bytes src-tauri/icons/ios/AppIcon-40x40@2x-1.png | Bin 0 -> 2259 bytes src-tauri/icons/ios/AppIcon-40x40@2x.png | Bin 0 -> 2259 bytes src-tauri/icons/ios/AppIcon-40x40@3x.png | Bin 0 -> 3431 bytes src-tauri/icons/ios/AppIcon-512@2x.png | Bin 0 -> 36729 bytes src-tauri/icons/ios/AppIcon-60x60@2x.png | Bin 0 -> 3431 bytes src-tauri/icons/ios/AppIcon-60x60@3x.png | Bin 0 -> 5328 bytes src-tauri/icons/ios/AppIcon-76x76@1x.png | Bin 0 -> 2321 bytes src-tauri/icons/ios/AppIcon-76x76@2x.png | Bin 0 -> 4530 bytes src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png | Bin 0 -> 5384 bytes 56 files changed, 21 insertions(+), 51 deletions(-) create mode 100644 .changes/logo.md create mode 100644 .changes/toast.md create mode 100644 src-tauri/icons/android/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 src-tauri/icons/android/mipmap-hdpi/ic_launcher.png create mode 100644 src-tauri/icons/android/mipmap-hdpi/ic_launcher_foreground.png create mode 100644 src-tauri/icons/android/mipmap-hdpi/ic_launcher_round.png create mode 100644 src-tauri/icons/android/mipmap-mdpi/ic_launcher.png create mode 100644 src-tauri/icons/android/mipmap-mdpi/ic_launcher_foreground.png create mode 100644 src-tauri/icons/android/mipmap-mdpi/ic_launcher_round.png create mode 100644 src-tauri/icons/android/mipmap-xhdpi/ic_launcher.png create mode 100644 src-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.png create mode 100644 src-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.png create mode 100644 src-tauri/icons/android/mipmap-xxhdpi/ic_launcher.png create mode 100644 src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png create mode 100644 src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png create mode 100644 src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png create mode 100644 src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_round.png create mode 100644 src-tauri/icons/android/values/ic_launcher_background.xml delete mode 100644 src-tauri/icons/icon.svg create mode 100644 src-tauri/icons/ios/AppIcon-20x20@1x.png create mode 100644 src-tauri/icons/ios/AppIcon-20x20@2x-1.png create mode 100644 src-tauri/icons/ios/AppIcon-20x20@2x.png create mode 100644 src-tauri/icons/ios/AppIcon-20x20@3x.png create mode 100644 src-tauri/icons/ios/AppIcon-29x29@1x.png create mode 100644 src-tauri/icons/ios/AppIcon-29x29@2x-1.png create mode 100644 src-tauri/icons/ios/AppIcon-29x29@2x.png create mode 100644 src-tauri/icons/ios/AppIcon-29x29@3x.png create mode 100644 src-tauri/icons/ios/AppIcon-40x40@1x.png create mode 100644 src-tauri/icons/ios/AppIcon-40x40@2x-1.png create mode 100644 src-tauri/icons/ios/AppIcon-40x40@2x.png create mode 100644 src-tauri/icons/ios/AppIcon-40x40@3x.png create mode 100644 src-tauri/icons/ios/AppIcon-512@2x.png create mode 100644 src-tauri/icons/ios/AppIcon-60x60@2x.png create mode 100644 src-tauri/icons/ios/AppIcon-60x60@3x.png create mode 100644 src-tauri/icons/ios/AppIcon-76x76@1x.png create mode 100644 src-tauri/icons/ios/AppIcon-76x76@2x.png create mode 100644 src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png diff --git a/.changes/logo.md b/.changes/logo.md new file mode 100644 index 0000000..ab8ef7d --- /dev/null +++ b/.changes/logo.md @@ -0,0 +1,5 @@ +--- +dropout: "patch:fix" +--- + +Fix logo on Linux and MacOS. diff --git a/.changes/toast.md b/.changes/toast.md new file mode 100644 index 0000000..ee28372 --- /dev/null +++ b/.changes/toast.md @@ -0,0 +1,6 @@ +--- +"@dropout/ui": "patch:feat" +dropout: "patch:feat" +--- + +Improve position and colors of the UI toast. diff --git a/packages/ui/src/main.tsx b/packages/ui/src/main.tsx index a3157bd..c5cbfc8 100644 --- a/packages/ui/src/main.tsx +++ b/packages/ui/src/main.tsx @@ -33,6 +33,6 @@ const root = createRoot(document.getElementById("root") as HTMLElement); root.render( - + , ); diff --git a/src-tauri/icons/128x128.png b/src-tauri/icons/128x128.png index ff83086..0355e6c 100644 Binary files a/src-tauri/icons/128x128.png and b/src-tauri/icons/128x128.png differ diff --git a/src-tauri/icons/128x128@2x.png b/src-tauri/icons/128x128@2x.png index d2945bc..072f818 100644 Binary files a/src-tauri/icons/128x128@2x.png and b/src-tauri/icons/128x128@2x.png differ diff --git a/src-tauri/icons/32x32.png b/src-tauri/icons/32x32.png index 0450dbc..9ac999c 100644 Binary files a/src-tauri/icons/32x32.png and b/src-tauri/icons/32x32.png differ diff --git a/src-tauri/icons/64x64.png b/src-tauri/icons/64x64.png index dd57cf5..d846039 100644 Binary files a/src-tauri/icons/64x64.png and b/src-tauri/icons/64x64.png differ diff --git a/src-tauri/icons/Square107x107Logo.png b/src-tauri/icons/Square107x107Logo.png index 3d69d32..667383f 100644 Binary files a/src-tauri/icons/Square107x107Logo.png and b/src-tauri/icons/Square107x107Logo.png differ diff --git a/src-tauri/icons/Square142x142Logo.png b/src-tauri/icons/Square142x142Logo.png index 1fe00e0..c113bc2 100644 Binary files a/src-tauri/icons/Square142x142Logo.png and b/src-tauri/icons/Square142x142Logo.png differ diff --git a/src-tauri/icons/Square150x150Logo.png b/src-tauri/icons/Square150x150Logo.png index 42c10c2..491dbac 100644 Binary files a/src-tauri/icons/Square150x150Logo.png and b/src-tauri/icons/Square150x150Logo.png differ diff --git a/src-tauri/icons/Square284x284Logo.png b/src-tauri/icons/Square284x284Logo.png index 6acb9fa..75f7ada 100644 Binary files a/src-tauri/icons/Square284x284Logo.png and b/src-tauri/icons/Square284x284Logo.png differ diff --git a/src-tauri/icons/Square30x30Logo.png b/src-tauri/icons/Square30x30Logo.png index 7ca72b4..e6510c4 100644 Binary files a/src-tauri/icons/Square30x30Logo.png and b/src-tauri/icons/Square30x30Logo.png differ diff --git a/src-tauri/icons/Square310x310Logo.png b/src-tauri/icons/Square310x310Logo.png index 2733c71..c280413 100644 Binary files a/src-tauri/icons/Square310x310Logo.png and b/src-tauri/icons/Square310x310Logo.png differ diff --git a/src-tauri/icons/Square44x44Logo.png b/src-tauri/icons/Square44x44Logo.png index fe734cc..887afd1 100644 Binary files a/src-tauri/icons/Square44x44Logo.png and b/src-tauri/icons/Square44x44Logo.png differ diff --git a/src-tauri/icons/Square71x71Logo.png b/src-tauri/icons/Square71x71Logo.png index c1e42ae..ca3d7cf 100644 Binary files a/src-tauri/icons/Square71x71Logo.png and b/src-tauri/icons/Square71x71Logo.png differ diff --git a/src-tauri/icons/Square89x89Logo.png b/src-tauri/icons/Square89x89Logo.png index 7803afd..93cffc9 100644 Binary files a/src-tauri/icons/Square89x89Logo.png and b/src-tauri/icons/Square89x89Logo.png differ diff --git a/src-tauri/icons/StoreLogo.png b/src-tauri/icons/StoreLogo.png index 1032810..72bd926 100644 Binary files a/src-tauri/icons/StoreLogo.png and b/src-tauri/icons/StoreLogo.png differ diff --git a/src-tauri/icons/android/mipmap-anydpi-v26/ic_launcher.xml b/src-tauri/icons/android/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000..03f0660 --- /dev/null +++ b/src-tauri/icons/android/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/src-tauri/icons/android/mipmap-hdpi/ic_launcher.png b/src-tauri/icons/android/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000..55295ee Binary files /dev/null and b/src-tauri/icons/android/mipmap-hdpi/ic_launcher.png differ diff --git a/src-tauri/icons/android/mipmap-hdpi/ic_launcher_foreground.png b/src-tauri/icons/android/mipmap-hdpi/ic_launcher_foreground.png new file mode 100644 index 0000000..36af393 Binary files /dev/null and b/src-tauri/icons/android/mipmap-hdpi/ic_launcher_foreground.png differ diff --git a/src-tauri/icons/android/mipmap-hdpi/ic_launcher_round.png b/src-tauri/icons/android/mipmap-hdpi/ic_launcher_round.png new file mode 100644 index 0000000..9838f21 Binary files /dev/null and b/src-tauri/icons/android/mipmap-hdpi/ic_launcher_round.png differ diff --git a/src-tauri/icons/android/mipmap-mdpi/ic_launcher.png b/src-tauri/icons/android/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000..d266d84 Binary files /dev/null and b/src-tauri/icons/android/mipmap-mdpi/ic_launcher.png differ diff --git a/src-tauri/icons/android/mipmap-mdpi/ic_launcher_foreground.png b/src-tauri/icons/android/mipmap-mdpi/ic_launcher_foreground.png new file mode 100644 index 0000000..588180b Binary files /dev/null and b/src-tauri/icons/android/mipmap-mdpi/ic_launcher_foreground.png differ diff --git a/src-tauri/icons/android/mipmap-mdpi/ic_launcher_round.png b/src-tauri/icons/android/mipmap-mdpi/ic_launcher_round.png new file mode 100644 index 0000000..5bb8398 Binary files /dev/null and b/src-tauri/icons/android/mipmap-mdpi/ic_launcher_round.png differ diff --git a/src-tauri/icons/android/mipmap-xhdpi/ic_launcher.png b/src-tauri/icons/android/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000..aa3d140 Binary files /dev/null and b/src-tauri/icons/android/mipmap-xhdpi/ic_launcher.png differ diff --git a/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.png b/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000..c95d18e Binary files /dev/null and b/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.png differ diff --git a/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.png b/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.png new file mode 100644 index 0000000..4b35f34 Binary files /dev/null and b/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.png differ diff --git a/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher.png b/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000..d916842 Binary files /dev/null and b/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher.png differ diff --git a/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png b/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000..107d4e0 Binary files /dev/null and b/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png differ diff --git a/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png b/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png new file mode 100644 index 0000000..dd535ef Binary files /dev/null and b/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png differ diff --git a/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png b/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000..9c46477 Binary files /dev/null and b/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png b/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000..0697dcc Binary files /dev/null and b/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png differ diff --git a/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_round.png b/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_round.png new file mode 100644 index 0000000..2e1e41f Binary files /dev/null and b/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_round.png differ diff --git a/src-tauri/icons/android/values/ic_launcher_background.xml b/src-tauri/icons/android/values/ic_launcher_background.xml new file mode 100644 index 0000000..3024847 --- /dev/null +++ b/src-tauri/icons/android/values/ic_launcher_background.xml @@ -0,0 +1,4 @@ + + + #fff + diff --git a/src-tauri/icons/icon.icns b/src-tauri/icons/icon.icns index c2324db..c3c7971 100644 Binary files a/src-tauri/icons/icon.icns and b/src-tauri/icons/icon.icns differ diff --git a/src-tauri/icons/icon.ico b/src-tauri/icons/icon.ico index be3c285..3a276d9 100644 Binary files a/src-tauri/icons/icon.ico and b/src-tauri/icons/icon.ico differ diff --git a/src-tauri/icons/icon.png b/src-tauri/icons/icon.png index 2466203..620bf79 100644 Binary files a/src-tauri/icons/icon.png and b/src-tauri/icons/icon.png differ diff --git a/src-tauri/icons/icon.svg b/src-tauri/icons/icon.svg deleted file mode 100644 index 0baf00f..0000000 --- a/src-tauri/icons/icon.svg +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src-tauri/icons/ios/AppIcon-20x20@1x.png b/src-tauri/icons/ios/AppIcon-20x20@1x.png new file mode 100644 index 0000000..413fb23 Binary files /dev/null and b/src-tauri/icons/ios/AppIcon-20x20@1x.png differ diff --git a/src-tauri/icons/ios/AppIcon-20x20@2x-1.png b/src-tauri/icons/ios/AppIcon-20x20@2x-1.png new file mode 100644 index 0000000..1303e1f Binary files /dev/null and b/src-tauri/icons/ios/AppIcon-20x20@2x-1.png differ diff --git a/src-tauri/icons/ios/AppIcon-20x20@2x.png b/src-tauri/icons/ios/AppIcon-20x20@2x.png new file mode 100644 index 0000000..1303e1f Binary files /dev/null and b/src-tauri/icons/ios/AppIcon-20x20@2x.png differ diff --git a/src-tauri/icons/ios/AppIcon-20x20@3x.png b/src-tauri/icons/ios/AppIcon-20x20@3x.png new file mode 100644 index 0000000..db36923 Binary files /dev/null and b/src-tauri/icons/ios/AppIcon-20x20@3x.png differ diff --git a/src-tauri/icons/ios/AppIcon-29x29@1x.png b/src-tauri/icons/ios/AppIcon-29x29@1x.png new file mode 100644 index 0000000..7867663 Binary files /dev/null and b/src-tauri/icons/ios/AppIcon-29x29@1x.png differ diff --git a/src-tauri/icons/ios/AppIcon-29x29@2x-1.png b/src-tauri/icons/ios/AppIcon-29x29@2x-1.png new file mode 100644 index 0000000..e4ea45e Binary files /dev/null and b/src-tauri/icons/ios/AppIcon-29x29@2x-1.png differ diff --git a/src-tauri/icons/ios/AppIcon-29x29@2x.png b/src-tauri/icons/ios/AppIcon-29x29@2x.png new file mode 100644 index 0000000..e4ea45e Binary files /dev/null and b/src-tauri/icons/ios/AppIcon-29x29@2x.png differ diff --git a/src-tauri/icons/ios/AppIcon-29x29@3x.png b/src-tauri/icons/ios/AppIcon-29x29@3x.png new file mode 100644 index 0000000..9c4b0e1 Binary files /dev/null and b/src-tauri/icons/ios/AppIcon-29x29@3x.png differ diff --git a/src-tauri/icons/ios/AppIcon-40x40@1x.png b/src-tauri/icons/ios/AppIcon-40x40@1x.png new file mode 100644 index 0000000..1303e1f Binary files /dev/null and b/src-tauri/icons/ios/AppIcon-40x40@1x.png differ diff --git a/src-tauri/icons/ios/AppIcon-40x40@2x-1.png b/src-tauri/icons/ios/AppIcon-40x40@2x-1.png new file mode 100644 index 0000000..b690f0e Binary files /dev/null and b/src-tauri/icons/ios/AppIcon-40x40@2x-1.png differ diff --git a/src-tauri/icons/ios/AppIcon-40x40@2x.png b/src-tauri/icons/ios/AppIcon-40x40@2x.png new file mode 100644 index 0000000..b690f0e Binary files /dev/null and b/src-tauri/icons/ios/AppIcon-40x40@2x.png differ diff --git a/src-tauri/icons/ios/AppIcon-40x40@3x.png b/src-tauri/icons/ios/AppIcon-40x40@3x.png new file mode 100644 index 0000000..7180dc4 Binary files /dev/null and b/src-tauri/icons/ios/AppIcon-40x40@3x.png differ diff --git a/src-tauri/icons/ios/AppIcon-512@2x.png b/src-tauri/icons/ios/AppIcon-512@2x.png new file mode 100644 index 0000000..95d749a Binary files /dev/null and b/src-tauri/icons/ios/AppIcon-512@2x.png differ diff --git a/src-tauri/icons/ios/AppIcon-60x60@2x.png b/src-tauri/icons/ios/AppIcon-60x60@2x.png new file mode 100644 index 0000000..7180dc4 Binary files /dev/null and b/src-tauri/icons/ios/AppIcon-60x60@2x.png differ diff --git a/src-tauri/icons/ios/AppIcon-60x60@3x.png b/src-tauri/icons/ios/AppIcon-60x60@3x.png new file mode 100644 index 0000000..097bddd Binary files /dev/null and b/src-tauri/icons/ios/AppIcon-60x60@3x.png differ diff --git a/src-tauri/icons/ios/AppIcon-76x76@1x.png b/src-tauri/icons/ios/AppIcon-76x76@1x.png new file mode 100644 index 0000000..8836adf Binary files /dev/null and b/src-tauri/icons/ios/AppIcon-76x76@1x.png differ diff --git a/src-tauri/icons/ios/AppIcon-76x76@2x.png b/src-tauri/icons/ios/AppIcon-76x76@2x.png new file mode 100644 index 0000000..d0b4089 Binary files /dev/null and b/src-tauri/icons/ios/AppIcon-76x76@2x.png differ diff --git a/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png b/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png new file mode 100644 index 0000000..b3fe311 Binary files /dev/null and b/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png differ -- cgit v1.2.3-70-g09d2 From 9e40b5b7bea60e6802a4b448ef315b14fba4de7f Mon Sep 17 00:00:00 2001 From: 苏向夜 Date: Mon, 2 Mar 2026 10:26:21 +0800 Subject: feat(ui): java config --- .changes/settings-java.md | 6 ++ .changes/version-select.md | 6 ++ packages/ui/src/components/bottom-bar.tsx | 19 ++---- packages/ui/src/components/ui/radio-group.tsx | 36 +++++++++++ packages/ui/src/models/java.ts | 25 ++++++++ packages/ui/src/pages/settings.tsx | 90 ++++++++++++++++++++++++++- packages/ui/vite.config.ts | 2 +- 7 files changed, 167 insertions(+), 17 deletions(-) create mode 100644 .changes/settings-java.md create mode 100644 .changes/version-select.md create mode 100644 packages/ui/src/components/ui/radio-group.tsx create mode 100644 packages/ui/src/models/java.ts diff --git a/.changes/settings-java.md b/.changes/settings-java.md new file mode 100644 index 0000000..7f13302 --- /dev/null +++ b/.changes/settings-java.md @@ -0,0 +1,6 @@ +--- +"@dropout/ui": "patch:feat" +dropout: "patch:feat" +--- + +Support detect and select java path. diff --git a/.changes/version-select.md b/.changes/version-select.md new file mode 100644 index 0000000..0f6ce83 --- /dev/null +++ b/.changes/version-select.md @@ -0,0 +1,6 @@ +--- +"@dropout/ui": "patch:fix" +dropout: "patch:fix" +--- + +Auto select game version if version is unique. diff --git a/packages/ui/src/components/bottom-bar.tsx b/packages/ui/src/components/bottom-bar.tsx index 5489675..0710c3a 100644 --- a/packages/ui/src/components/bottom-bar.tsx +++ b/packages/ui/src/components/bottom-bar.tsx @@ -6,7 +6,6 @@ import { listInstalledVersions, startGame } from "@/client"; import { cn } from "@/lib/utils"; import { useAuthStore } from "@/models/auth"; import { useInstanceStore } from "@/models/instance"; -import { useGameStore } from "@/stores/game-store"; import { LoginModal } from "./login-modal"; import { Button } from "./ui/button"; import { @@ -26,7 +25,6 @@ interface InstalledVersion { export function BottomBar() { const authStore = useAuthStore(); - const gameStore = useGameStore(); const instancesStore = useInstanceStore(); const [isLaunched, setIsLaunched] = useState(false); @@ -51,24 +49,18 @@ export function BottomBar() { const versions = await listInstalledVersions( instancesStore.activeInstance.id, ); - - const installed = versions || []; - setInstalledVersions(installed); + setInstalledVersions(versions); // If no version is selected but we have installed versions, select the first one - if (!gameStore.selectedVersion && installed.length > 0) { - gameStore.setSelectedVersion(installed[0].id); + if (!selectedVersion && versions.length > 0) { + setSelectedVersion(versions[0].id); } } catch (error) { console.error("Failed to load installed versions:", error); } finally { setIsLoadingVersions(false); } - }, [ - instancesStore.activeInstance, - gameStore.selectedVersion, - gameStore.setSelectedVersion, - ]); + }, [instancesStore.activeInstance, selectedVersion]); useEffect(() => { loadInstalledVersions(); @@ -225,6 +217,7 @@ export function BottomBar() { { + settings.merge({ + javaPath: e.target.value, + }); + }} + onBlur={() => { + settings.save(); + }} + /> + +
+ Java Installations + {javaStore.installations ? ( + { + settings.merge({ + javaPath: value, + }); + settings.save(); + }} + > + {javaStore.installations?.map((installation) => ( + + + + + {installation.vendor} ({installation.version}) + + + {installation.path} + + + + + + ))} + + ) : ( +
+ +
+ )} +
+ + diff --git a/packages/ui/vite.config.ts b/packages/ui/vite.config.ts index 27ce1ff..8c90267 100644 --- a/packages/ui/vite.config.ts +++ b/packages/ui/vite.config.ts @@ -1,6 +1,6 @@ +import path from "node:path"; import tailwindcss from "@tailwindcss/vite"; import react from "@vitejs/plugin-react"; -import path from "path"; import { defineConfig } from "vite"; // https://vite.dev/config/ -- cgit v1.2.3-70-g09d2 From 0ac743f6d126d047352e6b247ea1ee513361d240 Mon Sep 17 00:00:00 2001 From: 苏向夜 Date: Mon, 2 Mar 2026 11:01:12 +0800 Subject: feat(ui): improve sidebar avatar --- .changes/sidebar-avatar.md | 6 ++++++ packages/ui/src/components/sidebar.tsx | 27 ++++++++++++++++++++++++--- 2 files changed, 30 insertions(+), 3 deletions(-) create mode 100644 .changes/sidebar-avatar.md diff --git a/.changes/sidebar-avatar.md b/.changes/sidebar-avatar.md new file mode 100644 index 0000000..a6042fd --- /dev/null +++ b/.changes/sidebar-avatar.md @@ -0,0 +1,6 @@ +--- +"@dropout/ui": "patch:feat" +dropout: "patch:feat" +--- + +Improve sidebar avatar on large and small screens. diff --git a/packages/ui/src/components/sidebar.tsx b/packages/ui/src/components/sidebar.tsx index 0147b0a..54a2f33 100644 --- a/packages/ui/src/components/sidebar.tsx +++ b/packages/ui/src/components/sidebar.tsx @@ -49,12 +49,33 @@ function NavItem({ Icon, label, to }: NavItemProps) { export function Sidebar() { const authStore = useAuthStore(); + const renderUserAvatar = () => { + return ( +
+
+ +
+
+ +
+

+ {authStore.account?.username} +

+

+ {authStore.account?.type === "microsoft" ? "Online" : "Offline"} +

+
+
+
+ ); + }; + return (