diff --git a/src/locales/ach-UG/translation.json b/src/locales/ach-UG/translation.json index 7b984f867..139220493 100644 --- a/src/locales/ach-UG/translation.json +++ b/src/locales/ach-UG/translation.json @@ -516,8 +516,6 @@ "editor_config_format_error": "crwdns10834:0crwdne10834:0", "editor_type_definition_reset": "crwdns10836:0crwdne10836:0", "editor_type_definition_saved": "crwdns10838:0crwdne10838:0", - "layout": "crwdns12780:0crwdne12780:0", - "hide_script_list": "crwdns12782:0crwdne12782:0", "script_list": { "sidebar": { "stopped": "crwdns12794:0crwdne12794:0", @@ -549,5 +547,9 @@ "subscribe_update": "crwdns12854:0{{subscribeName}}crwdne12854:0", "subscribe_update_desc": "crwdns12856:0{{newScripts}}crwdnd12856:0{{deletedScripts}}crwdne12856:0" }, - "loading": "crwdns12870:0crwdne12870:0" + "loading": "crwdns12870:0crwdne12870:0", + "editor": { + "show_script_list": "Show Script List", + "hide_script_list": "Hide Script List" + } } \ No newline at end of file diff --git a/src/locales/de-DE/translation.json b/src/locales/de-DE/translation.json index dc389e7ea..2f77838fc 100644 --- a/src/locales/de-DE/translation.json +++ b/src/locales/de-DE/translation.json @@ -530,8 +530,6 @@ "editor_config_format_error": "Editor-Konfiguration Formatfehler", "editor_type_definition_reset": "Editor-Typdefinitionen wurden zurückgesetzt", "editor_type_definition_saved": "Editor-Typdefinitionen wurden gespeichert", - "layout": "Layout", - "hide_script_list": "Skriptliste ausblenden", "script_list": { "sidebar": { "stopped": "Gestoppt", @@ -576,5 +574,9 @@ "enable_now": "Jetzt aktivieren", "maybe_later": "Vielleicht später", "settings_hint": "Sie können diese Option jederzeit in den Einstellungen ändern." + }, + "editor": { + "show_script_list": "Skriptliste anzeigen", + "hide_script_list": "Skriptliste ausblenden" } } \ No newline at end of file diff --git a/src/locales/en-US/translation.json b/src/locales/en-US/translation.json index 006a3af2d..e55cdd949 100644 --- a/src/locales/en-US/translation.json +++ b/src/locales/en-US/translation.json @@ -530,8 +530,6 @@ "editor_config_format_error": "Editor Configuration Format Error", "editor_type_definition_reset": "Editor Type Definition Reset", "editor_type_definition_saved": "Editor Type Definition Saved", - "layout": "Layout", - "hide_script_list": "Hide Script List", "script_list": { "sidebar": { "stopped": "Stopped", @@ -576,5 +574,9 @@ "enable_now": "Enable Now", "maybe_later": "Maybe Later", "settings_hint": "You can change this option in settings at any time." + }, + "editor": { + "show_script_list": "Show Script List", + "hide_script_list": "Hide Script List" } } \ No newline at end of file diff --git a/src/locales/ja-JP/translation.json b/src/locales/ja-JP/translation.json index 68a3db516..1e3cee58e 100644 --- a/src/locales/ja-JP/translation.json +++ b/src/locales/ja-JP/translation.json @@ -530,8 +530,6 @@ "editor_config_format_error": "エディタ設定のフォーマットエラー", "editor_type_definition_reset": "エディタ型定義がリセットされました", "editor_type_definition_saved": "エディタ型定義が保存されました", - "layout": "レイアウト", - "hide_script_list": "スクリプトリストを非表示", "script_list": { "sidebar": { "stopped": "停止済み", @@ -576,5 +574,9 @@ "enable_now": "今すぐ有効にする", "maybe_later": "後で", "settings_hint": "設定ページでいつでも変更できます。" + }, + "editor": { + "show_script_list": "スクリプトリストを表示", + "hide_script_list": "スクリプトリストを非表示" } } \ No newline at end of file diff --git a/src/locales/ru-RU/translation.json b/src/locales/ru-RU/translation.json index f3da00dc2..038eb00d9 100644 --- a/src/locales/ru-RU/translation.json +++ b/src/locales/ru-RU/translation.json @@ -530,8 +530,6 @@ "editor_config_format_error": "Ошибка формата конфигурации редактора", "editor_type_definition_reset": "Определения типов редактора сброшены", "editor_type_definition_saved": "Определения типов редактора сохранены", - "layout": "Макет", - "hide_script_list": "Скрыть список скриптов", "script_list": { "sidebar": { "stopped": "Остановлено", @@ -576,5 +574,9 @@ "enable_now": "Включить сейчас", "maybe_later": "Может быть позже", "settings_hint": "Вы можете изменить эту опцию в настройках в любое время." + }, + "editor": { + "show_script_list": "Показать список скриптов", + "hide_script_list": "Скрыть список скриптов" } } \ No newline at end of file diff --git a/src/locales/vi-VN/translation.json b/src/locales/vi-VN/translation.json index ed482f3ed..9da54ee74 100644 --- a/src/locales/vi-VN/translation.json +++ b/src/locales/vi-VN/translation.json @@ -530,8 +530,6 @@ "editor_config_format_error": "Lỗi định dạng cấu hình trình soạn thảo", "editor_type_definition_reset": "Định nghĩa kiểu trình soạn thảo đã được đặt lại", "editor_type_definition_saved": "Định nghĩa kiểu trình soạn thảo đã được lưu", - "layout": "Bố cục", - "hide_script_list": "Ẩn danh sách script", "script_list": { "sidebar": { "stopped": "Đã dừng", @@ -576,5 +574,9 @@ "enable_now": "Bật ngay", "maybe_later": "Để sau", "settings_hint": "Bạn có thể thay đổi tùy chọn này trong cài đặt bất kỳ lúc nào." + }, + "editor": { + "show_script_list": "Hiển thị danh sách script", + "hide_script_list": "Ẩn danh sách script" } } \ No newline at end of file diff --git a/src/locales/zh-CN/translation.json b/src/locales/zh-CN/translation.json index 80be7c663..ca7fe2dc8 100644 --- a/src/locales/zh-CN/translation.json +++ b/src/locales/zh-CN/translation.json @@ -530,8 +530,6 @@ "editor_config_format_error": "编辑器配置格式错误", "editor_type_definition_reset": "编辑器类型定义已重置", "editor_type_definition_saved": "编辑器类型定义已保存", - "layout": "布局", - "hide_script_list": "隐藏脚本列表", "script_list": { "sidebar": { "stopped": "停止", @@ -576,5 +574,9 @@ "enable_now": "立即启用", "maybe_later": "暂不启用", "settings_hint": "你可以随时在设置中修改此选项。" + }, + "editor": { + "show_script_list": "显示脚本列表", + "hide_script_list": "隐藏脚本列表" } } \ No newline at end of file diff --git a/src/locales/zh-TW/translation.json b/src/locales/zh-TW/translation.json index c384e2ab4..6b50bf11a 100644 --- a/src/locales/zh-TW/translation.json +++ b/src/locales/zh-TW/translation.json @@ -530,8 +530,6 @@ "editor_config_format_error": "編輯器配置格式錯誤", "editor_type_definition_reset": "編輯器類型定義已重設", "editor_type_definition_saved": "編輯器類型定義已儲存", - "layout": "佈局", - "hide_script_list": "隱藏腳本列表", "script_list": { "sidebar": { "stopped": "停止", @@ -576,5 +574,9 @@ "enable_now": "立即啟用", "maybe_later": "暫不啟用", "settings_hint": "你可以隨時在設定中修改此選項。" + }, + "editor": { + "show_script_list": "顯示腳本列表", + "hide_script_list": "隱藏腳本列表" } } \ No newline at end of file diff --git a/src/pages/options/routes/script/ScriptEditor.tsx b/src/pages/options/routes/script/ScriptEditor.tsx index 08120b226..8fc3322d8 100644 --- a/src/pages/options/routes/script/ScriptEditor.tsx +++ b/src/pages/options/routes/script/ScriptEditor.tsx @@ -5,7 +5,7 @@ import React, { useCallback, useEffect, useMemo, useState } from "react"; import { useParams, useSearchParams } from "react-router-dom"; import type { editor } from "monaco-editor"; import { KeyCode, KeyMod } from "monaco-editor"; -import { Button, Dropdown, Grid, Input, Menu, Message, Modal, Tabs, Tooltip } from "@arco-design/web-react"; +import { Button, Dropdown, Grid, Input, Menu, Message, Modal, Space, Tabs, Tooltip } from "@arco-design/web-react"; import TabPane from "@arco-design/web-react/es/Tabs/tab-pane"; import normalTpl from "@App/template/normal.tpl"; import crontabTpl from "@App/template/crontab.tpl"; @@ -24,6 +24,7 @@ import { useTranslation } from "react-i18next"; import { IconDelete, IconSearch } from "@arco-design/web-react/icon"; import { lazyScriptName } from "@App/pkg/config/config"; import { makeBlobURL } from "@App/pkg/utils/utils"; +import { VscLayoutSidebarLeft, VscLayoutSidebarLeftOff } from "react-icons/vsc"; const { Row, Col } = Grid; @@ -205,12 +206,15 @@ function ScriptEditor() { }>(); const [pageInit, setPageInit] = useState(false); const [canLoadScript, setCanLoadScript] = useState(false); - const [hiddenScriptList, setHiddenScriptList] = useState(false); + const [hiddenScriptList, setHiddenScriptList] = useState(() => { + return localStorage.getItem("hiddenEditorScriptList") === "true"; + }); const pageUrlParams = useParams(); const [pageUrlSearchParams, setPageUrlSearchParams] = useSearchParams(); const { t } = useTranslation(); + const scriptDAO = new ScriptDAO(); const scriptCodeDAO = new ScriptCodeDAO(); @@ -413,18 +417,6 @@ function ScriptEditor() { }, ], }, - { - title: t("layout"), - items: [ - { - id: "hideScriptList", - title: (hiddenScriptList ? "✓ " : "") + t("hide_script_list"), - action() { - setHiddenScriptList(!hiddenScriptList); - }, - }, - ], - }, { title: t("settings"), tooltip: t("script_setting_tooltip"), @@ -1022,95 +1014,118 @@ function ScriptEditor() { )} - { - setEditors((prev) => - prev.map((editor, i) => - `${i}` === index - ? { - ...editor, - active: - (setSelectSciptButtonAndTab(editor.script.uuid), // 需要用 microTask 推遲嗎? - true), - } - : { - ...editor, - active: false, - } - ) - ); - }} - onAddTab={() => { - const template = pageUrlSearchParams.get("template") || ""; - emptyScript(template || "", hotKeys, "blank").then((e) => { - setEditors((prev) => { - prev.forEach((item) => { - item.active = false; +
+ { + setEditors((prev) => + prev.map((editor, i) => + `${i}` === index + ? { + ...editor, + active: + (setSelectSciptButtonAndTab(editor.script.uuid), // 需要用 microTask 推遲嗎? + true), + } + : { + ...editor, + active: false, + } + ) + ); + }} + onAddTab={() => { + const template = pageUrlSearchParams.get("template") || ""; + emptyScript(template || "", hotKeys, "blank").then((e) => { + setEditors((prev) => { + prev.forEach((item) => { + item.active = false; + }); + setSelectSciptButtonAndTab(e.script.uuid); + return [...prev, e]; }); - setSelectSciptButtonAndTab(e.script.uuid); - return [...prev, e]; }); - }); - }} - onDeleteTab={(index: string) => { - const i = parseInt(index, 10); - const targetUuid = editors[i]?.script.uuid; - if (targetUuid) { - handleDeleteEditor(targetUuid, true); - } - }} - > - {editors.map((e, index) => ( - { - setRightOperationTab({ - ...rightOperationTab, - key, - uuid: e.script.uuid, - selectSciptButtonAndTab, - }); + }} + onDeleteTab={(index: string) => { + const i = parseInt(index, 10); + const targetUuid = editors[i]?.script.uuid; + if (targetUuid) { + handleDeleteEditor(targetUuid, true); + } + }} + > + {editors.map((e, index) => ( + { + setRightOperationTab({ + ...rightOperationTab, + key, + uuid: e.script.uuid, + selectSciptButtonAndTab, + }); + }} + > + {t("close_current_tab")} + {t("close_other_tabs")} + {t("close_left_tabs")} + {t("close_right_tabs")} + + } + > + - {t("close_current_tab")} - {t("close_other_tabs")} - {t("close_left_tabs")} - {t("close_right_tabs")} - - } - > - - {e.script.name} - - - } - /> - ))} - + {e.script.name} + + + } + /> + ))} + + + +
{editors.map((item) => { if (item.active) {