From e38da24dc2b451980995a464173f51bc9a5a3e22 Mon Sep 17 00:00:00 2001
From: Wx-2025 <351320169@qq.com>
Date: Tue, 8 Jul 2025 11:05:42 +0800
Subject: [PATCH] Update drawer.js
---
ui/drawer.js | 119 +++++++++++++++++++++++++++------------------------
1 file changed, 64 insertions(+), 55 deletions(-)
diff --git a/ui/drawer.js b/ui/drawer.js
index 08ffbd5..3d5e700 100644
--- a/ui/drawer.js
+++ b/ui/drawer.js
@@ -1,3 +1,6 @@
+
+import { getSlideToggleOptions } from '/script.js';
+import { slideToggle } from '/lib.js';
import { extension_settings } from "/scripts/extensions.js";
import { extensionName, defaultSettings } from "../utils/settings.js";
import {
@@ -62,70 +65,76 @@ async function loadSettings() {
export function createDrawer() {
if ($("#amily2-main-drawer").length > 0) return;
- const amily2DrawerHtml = `
-
- `;
+const amily2DrawerHtml = `
+
+ `;
$("#sys-settings-button").after(amily2DrawerHtml);
- $(document).on(
- "mousedown",
- "#amily2-main-drawer .drawer-toggle",
- async function (e) {
- e.preventDefault();
- e.stopPropagation();
+$(document).on(
+ "mousedown",
+ "#amily2_drawer_icon",
+ async function (e) {
+ e.preventDefault();
+ e.stopPropagation();
- const drawerIcon = $("#amily2-drawer-icon");
- const contentPanel = $("#amily2-drawer-content");
- const isOpening = drawerIcon.hasClass("closedIcon");
+ const drawerIcon = $(this);
+ const contentPanel = $("#amily2_drawer_content");
- $(".openIcon")
- .not(drawerIcon)
- .removeClass("openIcon")
- .addClass("closedIcon");
- $(".openDrawer")
- .not(contentPanel)
- .removeClass("openDrawer")
- .slideUp({ duration: 200, easing: "swing" });
+
+ $('.openDrawer').not(contentPanel).not('.pinnedOpen').addClass('resizing').each((_, el) => {
+ slideToggle(el, {
+ ...getSlideToggleOptions(),
+ onAnimationEnd: function (el) {
+ el.closest('.drawer-content').classList.remove('resizing');
+ },
+ });
+ });
+
+ $('.openIcon').not(drawerIcon).not('.drawerPinnedOpen').toggleClass('closedIcon openIcon');
+ $('.openDrawer').not(contentPanel).not('.pinnedOpen').toggleClass('closedDrawer openDrawer');
+
+ drawerIcon.toggleClass('closedIcon openIcon');
+ contentPanel.toggleClass('closedDrawer openDrawer');
- drawerIcon.toggleClass("closedIcon openIcon");
- contentPanel.toggleClass("openDrawer");
- contentPanel.slideToggle({
- duration: 200,
- easing: "swing",
- });
+ contentPanel.addClass('resizing').each((_, el) => {
+ slideToggle(el, {
+ ...getSlideToggleOptions(),
+ onAnimationEnd: function (el) {
+ el.closest('.drawer-content').classList.remove('resizing');
+ },
+ });
+ });
- const isInitialized = contentPanel.data("initialized");
- if (isOpening && !isInitialized) {
- try {
- const modalContent = await $.get(
- `${extensionFolderPath}/assets/amily2-modal.html`,
- );
- contentPanel.html(modalContent);
- await loadSettings();
- bindModalEvents();
- contentPanel.data("initialized", true);
-
- console.log("[Amily2号-建设部] 宫殿内室已根据最高指令激活。");
- } catch (error) {
-
- console.error("[Amily2号-建设部] 加载宫殿内部HTML失败:", error);
- contentPanel.html(
- '紧急报告:无法加载Amily2号府邸内饰。
',
- );
- }
+ const isInitialized = contentPanel.data("initialized");
+ if (drawerIcon.hasClass("openIcon") && !isInitialized) {
+ try {
+ const extensionFolderPath = `scripts/extensions/third-party/${extensionName}`;
+ const modalContent = await $.get(
+ `${extensionFolderPath}/assets/amily2-modal.html`,
+ );
+ contentPanel.html(modalContent);
+ await loadSettings();
+ bindModalEvents();
+ contentPanel.data("initialized", true);
+ console.log("[Amily2号-建设部] 宫殿内室已根据最高指令激活。");
+ } catch (error) {
+ console.error("[Amily2号-建设部] 加载宫殿内部HTML失败:", error);
+ contentPanel.html(
+ '紧急报告:无法加载Amily2号府邸内饰。
',
+ );
}
-
- },
- );
+ }
+ },
+);
}