diff --git a/app/src/protyle/render/av/groups.ts b/app/src/protyle/render/av/groups.ts
index 73a654df8..0b0482d2b 100644
--- a/app/src/protyle/render/av/groups.ts
+++ b/app/src/protyle/render/av/groups.ts
@@ -14,7 +14,7 @@ export const getPageSize = (blockElement: Element) => {
}
} = {};
let unGroupPageSize: number;
- blockElement.querySelectorAll(".av__body").forEach((item:HTMLElement) => {
+ blockElement.querySelectorAll(".av__body").forEach((item: HTMLElement) => {
const id = item.dataset.groupId;
const pageSize = parseInt(item.dataset.pageSize);
if (id) {
@@ -67,7 +67,7 @@ export const getGroupsMethodHTML = (columns: IAVColumn[], group: IAVGroup) => {
const selectHTML = '';
let html = ``;
columns.forEach(item => {
if (["rollup", "mAsset", "lineNumber"].includes(item.type)) {
@@ -178,10 +178,10 @@ export const bindGroupsNumber = (options: {
export const getGroupsHTML = (columns: IAVColumn[], view: IAVView) => {
let html = "";
let column: IAVColumn;
- if (view.group && view.group.field && view.groups) {
+ if (view.group && view.group.field) {
let groupHTML = "";
column = columns.find(item => item.id === view.group.field);
- if (view.groups.length > 0) {
+ if (view.groups?.length > 0) {
groupHTML = '';
const disabledDrag = ["created", "date", "created", "updated"].includes(column.type);
view.groups.forEach(item => {
diff --git a/app/src/protyle/render/av/openMenuPanel.ts b/app/src/protyle/render/av/openMenuPanel.ts
index 336ea9a7c..d85697c63 100644
--- a/app/src/protyle/render/av/openMenuPanel.ts
+++ b/app/src/protyle/render/av/openMenuPanel.ts
@@ -1514,13 +1514,17 @@ export const openMenuPanel = (options: {
await closeCB();
}
closeCB = undefined;
- menuElement.innerHTML = getGroupsHTML(fields, data.view);
- bindGroupsEvent({
- protyle: options.protyle,
- menuElement: menuElement,
- blockElement: options.blockElement,
- data
- });
+ if ((data.view.group && data.view.group.field) || target.classList.contains("block__icon")) {
+ menuElement.innerHTML = getGroupsHTML(fields, data.view);
+ bindGroupsEvent({
+ protyle: options.protyle,
+ menuElement: menuElement,
+ blockElement: options.blockElement,
+ data
+ });
+ } else {
+ menuElement.innerHTML = getGroupsMethodHTML(fields, data.view.group);
+ }
setPosition(menuElement, tabRect.right - menuElement.clientWidth, tabRect.bottom, tabRect.height);
event.preventDefault();
event.stopPropagation();