fix: Incorrect empty check for collection description results in large empty space below title

This commit is contained in:
Tom Moor
2024-05-30 18:46:03 -04:00
parent 6920f13ae4
commit 1f980050ca
2 changed files with 32 additions and 1 deletions

View File

@@ -6,6 +6,7 @@ import {
NavigationNode,
type ProsemirrorData,
} from "@shared/types";
import { ProsemirrorHelper } from "@shared/utils/ProsemirrorHelper";
import { sortNavigationNodes } from "@shared/utils/collections";
import type CollectionsStore from "~/stores/CollectionsStore";
import Document from "~/models/Document";
@@ -134,8 +135,14 @@ export default class Collection extends ParanoidModel {
return !this.permission;
}
/**
* Check whether this collection has a description.
*
* @returns boolean
*/
@computed
get hasDescription(): boolean {
return !!this.data;
return this.data ? !ProsemirrorHelper.isEmptyData(this.data) : false;
}
@computed

View File

@@ -52,6 +52,30 @@ export class ProsemirrorHelper {
};
}
/**
* Returns true if the data looks like an empty document.
*
* @param data The ProsemirrorData to check.
* @returns True if the document is empty.
*/
static isEmptyData(data: ProsemirrorData): boolean {
if (data.type !== "doc") {
return false;
}
if (data.content.length === 1) {
const node = data.content[0];
return (
node.type === "paragraph" &&
(node.content === null ||
node.content === undefined ||
node.content.length === 0)
);
}
return data.content.length === 0;
}
/**
* Returns the node as plain text.
*