diff --git a/app/appearance/langs/en_US.json b/app/appearance/langs/en_US.json index e603cdaf5..b819c4d76 100644 --- a/app/appearance/langs/en_US.json +++ b/app/appearance/langs/en_US.json @@ -1,4 +1,6 @@ { + "goForward": "Go forward", + "goBack": "Go back", "docNameAndContent": "Doc Name and Content", "breadcrumb": "Breadcrumb", "embedBlockBreadcrumb": "Embed Block Breadcrumb", diff --git a/app/appearance/langs/es_ES.json b/app/appearance/langs/es_ES.json index a0fc214ed..a5f8aeafe 100644 --- a/app/appearance/langs/es_ES.json +++ b/app/appearance/langs/es_ES.json @@ -1,4 +1,6 @@ { + "goForward": "Ir hacia adelante", + "goBack": "Ir hacia atrás", "docNameAndContent": "Nombre y contenido del documento", "miga de pan": "Miga de pan", "embedBlockBreadcrumb": "Incrustar migas de pan de bloque", diff --git a/app/appearance/langs/fr_FR.json b/app/appearance/langs/fr_FR.json index 9b8b37579..13aca0b42 100644 --- a/app/appearance/langs/fr_FR.json +++ b/app/appearance/langs/fr_FR.json @@ -1,4 +1,6 @@ { + "goForward": "Suivant", + "goBack": "Retour", "docNameAndContent": "Nom et contenu du document", "fil d'Ariane": "Fil d'Ariane", "embedBlockBreadcrumb": "Intégrer le fil d'Ariane du bloc", diff --git a/app/appearance/langs/zh_CHT.json b/app/appearance/langs/zh_CHT.json index 991f44294..b8c66f329 100644 --- a/app/appearance/langs/zh_CHT.json +++ b/app/appearance/langs/zh_CHT.json @@ -1,4 +1,6 @@ { + "goForward": "前進", + "goBack": "後退", "docNameAndContent": "文檔名和內容", "breadcrumb": "麵包屑", "embedBlockBreadcrumb": "嵌入塊麵包屑", diff --git a/app/appearance/langs/zh_CN.json b/app/appearance/langs/zh_CN.json index 0714507d9..713265c03 100644 --- a/app/appearance/langs/zh_CN.json +++ b/app/appearance/langs/zh_CN.json @@ -1,4 +1,6 @@ { + "goForward": "前进", + "goBack": "后退", "docNameAndContent": "文档名和内容", "breadcrumb": "面包屑", "embedBlockBreadcrumb": "嵌入块面包屑", diff --git a/app/src/assets/scss/base.scss b/app/src/assets/scss/base.scss index 7b94ee422..7c4ac33fb 100644 --- a/app/src/assets/scss/base.scss +++ b/app/src/assets/scss/base.scss @@ -201,7 +201,7 @@ progressLoading: 400 background-color: transparent; border: 0; - &:hover, + &:not(.toolbar__item--disabled):hover, &--active { color: var(--b3-theme-on-background); background-color: var(--b3-theme-background-light); @@ -212,9 +212,8 @@ progressLoading: 400 width: 14px; } - &--disabled, - &--disabled:hover { - color: var(--b3-theme-surface-lighter); + &--disabled { + opacity: .54; cursor: not-allowed; } diff --git a/app/src/util/backForward.ts b/app/src/util/backForward.ts index e603f8b34..b931d8c1f 100644 --- a/app/src/util/backForward.ts +++ b/app/src/util/backForward.ts @@ -187,7 +187,7 @@ export const goBack = async () => { } return; } - + document.querySelector("#barForward").classList.remove("toolbar__item--disabled"); if (!previousIsBack) { forwardStack.push(window.siyuan.backStack.pop()); } @@ -202,6 +202,9 @@ export const goBack = async () => { } } previousIsBack = true; + if (window.siyuan.backStack.length === 0) { + document.querySelector("#barBack").classList.add("toolbar__item--disabled"); + } }; export const goForward = async () => { @@ -211,6 +214,7 @@ export const goForward = async () => { } return; } + document.querySelector("#barBack").classList.remove("toolbar__item--disabled"); if (previousIsBack) { window.siyuan.backStack.push(forwardStack.pop()); } @@ -226,6 +230,9 @@ export const goForward = async () => { } } previousIsBack = false; + if (forwardStack.length === 0) { + document.querySelector("#barForward").classList.add("toolbar__item--disabled"); + } }; export const pushBack = (protyle: IProtyle, range?: Range, blockElement?: Element) => { @@ -257,6 +264,7 @@ export const pushBack = (protyle: IProtyle, range?: Range, blockElement?: Elemen window.siyuan.backStack.push(forwardStack.pop()); } forwardStack = []; + document.querySelector("#barForward").classList.add("toolbar__item--disabled"); } window.siyuan.backStack.push({ position, @@ -269,5 +277,8 @@ export const pushBack = (protyle: IProtyle, range?: Range, blockElement?: Elemen } previousIsBack = false; } + if (window.siyuan.backStack.length > 1) { + document.querySelector("#barBack").classList.remove("toolbar__item--disabled"); + } } }; diff --git a/app/src/util/onGetConfig.ts b/app/src/util/onGetConfig.ts index 51152b641..2deaa8e19 100644 --- a/app/src/util/onGetConfig.ts +++ b/app/src/util/onGetConfig.ts @@ -27,6 +27,7 @@ import {syncGuide} from "../sync/syncGuide"; import {showMessage} from "../dialog/message"; import {replaceLocalPath} from "../editor/rename"; import {editor} from "../config/editor"; +import {goBack, goForward} from "./backForward"; const matchKeymap = (keymap: Record, key1: "general" | "editor", key2?: "general" | "insert" | "heading" | "list" | "table") => { if (key1 === "general") { @@ -170,6 +171,12 @@ const initBar = () => {
+ +
开发版,使用前请进行备份 Development version, please backup before use
@@ -187,7 +194,15 @@ const initBar = () => { document.querySelector(".toolbar").addEventListener("click", (event: MouseEvent) => { let target = event.target as HTMLElement; while (!target.classList.contains("toolbar")) { - if (target.id === "barSync") { + if (target.id === "barBack") { + goBack(); + event.stopPropagation(); + break; + } else if (target.id === "barForward") { + goForward(); + event.stopPropagation(); + break; + }else if (target.id === "barSync") { syncGuide(target); event.stopPropagation(); break;