diff --git a/apps/web/core/hooks/use-parse-editor-content.ts b/apps/web/core/hooks/use-parse-editor-content.ts index 840317fa6bb..bd435aa391c 100644 --- a/apps/web/core/hooks/use-parse-editor-content.ts +++ b/apps/web/core/hooks/use-parse-editor-content.ts @@ -215,7 +215,7 @@ export const useParseEditorContent = (args: TArgs) => { (htmlContent: string): TCustomComponentsMetaData => { const parser = new DOMParser(); const doc = parser.parseFromString(htmlContent, "text/html"); - const imageMetaData: TCustomComponentsMetaData["file_assets"] = []; + const filesMetaData: TCustomComponentsMetaData["file_assets"] = []; // process image components const imageComponents = doc.querySelectorAll("image-component"); imageComponents.forEach((element) => { @@ -229,7 +229,7 @@ export const useParseEditorContent = (args: TArgs) => { workspaceSlug, }); if (assetSrc) { - imageMetaData.push({ + filesMetaData.push({ id: src, name: src, url: assetSrc, @@ -258,7 +258,7 @@ export const useParseEditorContent = (args: TArgs) => { }); return { - file_assets: imageMetaData, + file_assets: filesMetaData, user_mentions: userMentions, }; }, diff --git a/packages/utils/src/editor/markdown-parser/custom-components-handler.ts b/packages/utils/src/editor/markdown-parser/custom-components-handler.ts index 0e769366f6f..8c9ab999d60 100644 --- a/packages/utils/src/editor/markdown-parser/custom-components-handler.ts +++ b/packages/utils/src/editor/markdown-parser/custom-components-handler.ts @@ -29,13 +29,19 @@ export const parseCustomComponents = (args: TArgs): Record => { }, "mention-component": (_state, node) => { const properties = node.properties || {}; - const userId = String(properties.entity_identifier); - const userDetails = metaData.user_mentions.find((user) => user.id === userId); - if (!userDetails) return createTextNode(""); - return createTextNode(`[@${userDetails.display_name || "Unknown user"}](${userDetails.url || ""}) `); + const mentionType = String(properties.entity_name); + + let url: string = ""; + let tag: string = "@"; + if (mentionType === "user_mention") { + const userId = String(properties.entity_identifier); + const userDetails = metaData.user_mentions.find((user) => user.id === userId); + if (!userDetails) return createTextNode(""); + url = userDetails.url || ""; + tag = `@${userDetails.display_name || "Unknown user"}`; + } + + return createTextNode(`[${tag}](${url}) `); }, - ...parseExtendedCustomComponents({ metaData }), }; }; - -export const parseExtendedCustomComponents = (_args: TArgs): Record => ({});