refactor: editor markdown handler

This commit is contained in:
Aaryan Khandelwal
2026-01-15 17:27:30 +05:30
parent fa1b4a102a
commit 87a2bcbe61
2 changed files with 16 additions and 10 deletions

View File

@@ -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,
};
},

View File

@@ -29,13 +29,19 @@ export const parseCustomComponents = (args: TArgs): Record<string, Handle> => {
},
"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<string, Handle> => ({});