diff --git a/app/src/assets/scss/business/_av.scss b/app/src/assets/scss/business/_av.scss index 811f14c17..887581bcb 100644 --- a/app/src/assets/scss/business/_av.scss +++ b/app/src/assets/scss/business/_av.scss @@ -291,6 +291,10 @@ color: var(--b3-protyle-inline-blockref-color); } + .b3-menu__avemoji { + display: inline-block; + } + &[data-wrap="true"] { white-space: pre-wrap; } diff --git a/app/src/protyle/render/av/action.ts b/app/src/protyle/render/av/action.ts index f3b0eda68..4655e10bb 100644 --- a/app/src/protyle/render/av/action.ts +++ b/app/src/protyle/render/av/action.ts @@ -22,7 +22,7 @@ import {hintRef} from "../../hint/extend"; import {focusBlock, focusByRange} from "../../util/selection"; import {showMessage} from "../../../dialog/message"; import {previewImage} from "../../preview/image"; -import {unicode2Emoji} from "../../../emoji"; +import {openEmojiPanel, unicode2Emoji} from "../../../emoji"; import * as dayjs from "dayjs"; import {openCalcMenu} from "./calc"; import {avRender} from "./render"; @@ -233,6 +233,17 @@ export const avClick = (protyle: IProtyle, event: MouseEvent & { target: HTMLEle event.preventDefault(); event.stopPropagation(); return true; + } else if (target.classList.contains("b3-menu__avemoji")) { + const rect = target.getBoundingClientRect(); + openEmojiPanel(target.parentElement.getAttribute("data-block-id"), "doc", { + x: rect.left, + y: rect.bottom, + h: rect.height, + w: rect.width, + }, undefined, target.querySelector("img")); + event.preventDefault(); + event.stopPropagation(); + return true; } target = target.parentElement; } diff --git a/app/src/protyle/render/av/cell.ts b/app/src/protyle/render/av/cell.ts index 2d2bb79af..9821b7438 100644 --- a/app/src/protyle/render/av/cell.ts +++ b/app/src/protyle/render/av/cell.ts @@ -789,7 +789,7 @@ export const renderCell = (cellValue: IAVCellValue, rowIndex = 0) => { if (cellValue?.isDetached) { text = `${cellValue.block.content || ""}${window.siyuan.languages.more}`; } else { - text = `${cellValue.block.content || window.siyuan.languages.untitled}${window.siyuan.languages.update}`; + text = `${cellValue.block.icon ? `${unicode2Emoji(cellValue.block.icon)}` : ""}${cellValue.block.content || window.siyuan.languages.untitled}${window.siyuan.languages.update}`; } } else if (cellValue.type === "number") { text = `${cellValue?.number.formattedContent || cellValue?.number.content || ""}`; @@ -877,7 +877,7 @@ const renderRollup = (cellValue: IAVCellValue) => { if (cellValue?.isDetached) { text = `${cellValue.block?.content || window.siyuan.languages.untitled}`; } else { - text = `${cellValue.block?.content || window.siyuan.languages.untitled}`; + text = `${cellValue.block.icon ? `${unicode2Emoji(cellValue.block.icon)}` : ""}${cellValue.block?.content || window.siyuan.languages.untitled}`; } } else if (cellValue.type === "number") { text = cellValue?.number.formattedContent || cellValue?.number.content.toString() || ""; diff --git a/app/src/types/index.d.ts b/app/src/types/index.d.ts index 7f31b3e47..8aef8e29d 100644 --- a/app/src/types/index.d.ts +++ b/app/src/types/index.d.ts @@ -874,7 +874,8 @@ interface IAVCellValue { mAsset?: IAVCellAssetValue[] block?: { content: string, - id?: string + id?: string, + icon?: string } url?: { content: string