mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-12-22 17:40:13 +01:00
This commit is contained in:
parent
8224303021
commit
532cb82f4f
6 changed files with 47 additions and 21 deletions
|
|
@ -24,6 +24,7 @@
|
|||
background-color: var(--b3-theme-background);
|
||||
font-size: 16px;
|
||||
align-items: center;
|
||||
padding: 16px;
|
||||
|
||||
& > div {
|
||||
font-size: 64px;
|
||||
|
|
|
|||
|
|
@ -104,6 +104,12 @@ export const openCardByData = (cardsData: { cards: ICard[], unreviewedCount: num
|
|||
</div>`,
|
||||
width: isMobile() ? "100vw" : "80vw",
|
||||
height: isMobile() ? "100vh" : "70vh",
|
||||
destroyCallback() {
|
||||
if (editor) {
|
||||
editor.destroy();
|
||||
window.siyuan.mobile.popEditor = null;
|
||||
}
|
||||
}
|
||||
});
|
||||
(dialog.element.querySelector(".b3-dialog__scrim") as HTMLElement).style.backgroundColor = "var(--b3-theme-background)";
|
||||
(dialog.element.querySelector(".b3-dialog__container") as HTMLElement).style.maxWidth = "1024px";
|
||||
|
|
@ -118,6 +124,7 @@ export const openCardByData = (cardsData: { cards: ICard[], unreviewedCount: num
|
|||
},
|
||||
typewriterMode: false
|
||||
});
|
||||
window.siyuan.mobile.popEditor = editor;
|
||||
if (window.siyuan.config.editor.readOnly) {
|
||||
disabledProtyle(editor.protyle);
|
||||
}
|
||||
|
|
@ -137,7 +144,7 @@ export const openCardByData = (cardsData: { cards: ICard[], unreviewedCount: num
|
|||
const selectElement = dialog.element.querySelector("select");
|
||||
dialog.element.addEventListener("click", (event) => {
|
||||
const target = event.target as HTMLElement;
|
||||
const titleElement = countElement.previousElementSibling;
|
||||
const titleElement = countElement?.previousElementSibling;
|
||||
let type = "";
|
||||
if (typeof event.detail === "string") {
|
||||
if (event.detail === "1" || event.detail === "j") {
|
||||
|
|
@ -294,7 +301,7 @@ export const openCardByData = (cardsData: { cards: ICard[], unreviewedCount: num
|
|||
}
|
||||
selectElement.addEventListener("change", () => {
|
||||
fetchPost("/api/riff/getRiffDueCards", {deckID: selectElement.value}, (cardsChangeResponse) => {
|
||||
blocks = cardsChangeResponse.data.blocks;
|
||||
blocks = cardsChangeResponse.data.cards;
|
||||
index = 0;
|
||||
if (blocks.length > 0) {
|
||||
nextCard({
|
||||
|
|
|
|||
|
|
@ -39,11 +39,12 @@ export const viewCards = (deckID: string, title: string, deckType: "Tree" | "" |
|
|||
<div class="fn__flex-1 card__empty">${window.siyuan.languages.emptyContent}</div>
|
||||
</div>
|
||||
</div>`,
|
||||
width: isMobile() ? "98vw" : "80vw",
|
||||
height: isMobile() ? "80vh" : "70vh",
|
||||
width: isMobile() ? "100vw" : "80vw",
|
||||
height: isMobile() ? "100vh" : "70vh",
|
||||
destroyCallback() {
|
||||
if (edit) {
|
||||
edit.destroy();
|
||||
window.siyuan.mobile.popEditor = null;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
@ -57,6 +58,7 @@ export const viewCards = (deckID: string, title: string, deckType: "Tree" | "" |
|
|||
breadcrumbDocName: true
|
||||
},
|
||||
});
|
||||
window.siyuan.mobile.popEditor = edit;
|
||||
if (window.siyuan.config.editor.readOnly) {
|
||||
disabledProtyle(edit.protyle);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,6 +14,10 @@ import {setStorageVal} from "../protyle/util/compatibility";
|
|||
import {showMessage} from "../dialog/message";
|
||||
import {saveScroll} from "../protyle/scroll/saveScroll";
|
||||
|
||||
export const getCurrentEditor = () => {
|
||||
return window.siyuan.mobile.popEditor || window.siyuan.mobile.editor;
|
||||
}
|
||||
|
||||
export const openMobileFileById = (id: string, action = [Constants.CB_GET_HL]) => {
|
||||
window.siyuan.storage[Constants.LOCAL_DOCINFO] = {id, action};
|
||||
setStorageVal(Constants.LOCAL_DOCINFO, window.siyuan.storage[Constants.LOCAL_DOCINFO]);
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ import {hasClosestBlock, hasClosestByClassName, hasClosestByMatchTag} from "../.
|
|||
import {moveToDown, moveToUp} from "../../protyle/wysiwyg/move";
|
||||
import {Constants} from "../../constants";
|
||||
import {focusByRange, getSelectionPosition} from "../../protyle/util/selection";
|
||||
import {getCurrentEditor} from "../editor";
|
||||
|
||||
let renderKeyboardToolbarTimeout: number;
|
||||
let showUtil = false;
|
||||
|
|
@ -152,8 +153,11 @@ const showKeyboardToolbarUtil = (oldScrollTop: number) => {
|
|||
const toolbarElement = document.getElementById("keyboardToolbar");
|
||||
let keyboardHeight = toolbarElement.getAttribute("data-keyboardheight");
|
||||
keyboardHeight = (keyboardHeight ? (parseInt(keyboardHeight) + 42) : window.innerHeight / 2) + "px";
|
||||
window.siyuan.mobile.editor.protyle.element.style.marginBottom = keyboardHeight;
|
||||
window.siyuan.mobile.editor.protyle.contentElement.scrollTop = oldScrollTop;
|
||||
const editor = getCurrentEditor();
|
||||
if (editor) {
|
||||
editor.protyle.element.parentElement.style.paddingBottom = keyboardHeight;
|
||||
editor.protyle.contentElement.scrollTop = oldScrollTop;
|
||||
}
|
||||
setTimeout(() => {
|
||||
toolbarElement.style.height = keyboardHeight;
|
||||
}, Constants.TIMEOUT_TRANSITION); // 防止抖动
|
||||
|
|
@ -165,7 +169,10 @@ const showKeyboardToolbarUtil = (oldScrollTop: number) => {
|
|||
const hideKeyboardToolbarUtil = () => {
|
||||
const toolbarElement = document.getElementById("keyboardToolbar");
|
||||
toolbarElement.style.height = "";
|
||||
window.siyuan.mobile.editor.protyle.element.style.marginBottom = "42px";
|
||||
const editor = getCurrentEditor();
|
||||
if (editor) {
|
||||
editor.protyle.element.parentElement.style.paddingBottom = "42px";
|
||||
}
|
||||
toolbarElement.querySelector('.keyboard__action[data-type="add"]').classList.remove("protyle-toolbar__item--current");
|
||||
toolbarElement.querySelector('.keyboard__action[data-type="done"] use').setAttribute("xlink:href", "#iconKeyboardHide");
|
||||
};
|
||||
|
|
@ -268,13 +275,13 @@ export const showKeyboardToolbar = () => {
|
|||
modelElement.style.paddingBottom = "42px";
|
||||
}
|
||||
const range = getSelection().getRangeAt(0);
|
||||
if (!window.siyuan.mobile.editor ||
|
||||
!window.siyuan.mobile.editor.protyle.wysiwyg.element.contains(range.startContainer)) {
|
||||
return;
|
||||
const editor = getCurrentEditor();
|
||||
if (editor && editor.protyle.wysiwyg.element.contains(range.startContainer)) {
|
||||
editor.protyle.element.parentElement.style.paddingBottom = "42px";
|
||||
}
|
||||
window.siyuan.mobile.editor.protyle.element.style.marginBottom = "42px";
|
||||
setTimeout(() => {
|
||||
const contentElement = window.siyuan.mobile.editor.protyle.contentElement;
|
||||
const contentElement = hasClosestByClassName(range.startContainer, "protyle-content", true);
|
||||
if (contentElement) {
|
||||
const cursorTop = getSelectionPosition(contentElement).top - contentElement.getBoundingClientRect().top;
|
||||
if (cursorTop < window.innerHeight - 96) {
|
||||
return;
|
||||
|
|
@ -284,6 +291,7 @@ export const showKeyboardToolbar = () => {
|
|||
left: contentElement.scrollLeft,
|
||||
behavior: "smooth"
|
||||
});
|
||||
}
|
||||
}, Constants.TIMEOUT_TRANSITION);
|
||||
};
|
||||
|
||||
|
|
@ -294,7 +302,10 @@ export const hideKeyboardToolbar = () => {
|
|||
const toolbarElement = document.getElementById("keyboardToolbar");
|
||||
toolbarElement.classList.add("fn__none");
|
||||
toolbarElement.style.height = "";
|
||||
window.siyuan.mobile.editor.protyle.element.style.marginBottom = "";
|
||||
const editor = getCurrentEditor();
|
||||
if (editor) {
|
||||
editor.protyle.element.parentElement.style.paddingBottom = "";
|
||||
}
|
||||
const modelElement = document.getElementById("model");
|
||||
if (modelElement.style.transform === "translateY(0px)") {
|
||||
modelElement.style.paddingBottom = "";
|
||||
|
|
|
|||
1
app/src/types/index.d.ts
vendored
1
app/src/types/index.d.ts
vendored
|
|
@ -198,6 +198,7 @@ interface ISiyuan {
|
|||
backStack?: IBackStack[],
|
||||
mobile?: {
|
||||
editor?: import("../protyle").Protyle
|
||||
popEditor?: import("../protyle").Protyle
|
||||
files?: import("../mobile/util/MobileFiles").MobileFiles
|
||||
},
|
||||
user?: {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue