[WIKI-785] refactor: editor markdown handler #8546

This commit is contained in:
Aaryan Khandelwal 2026-03-05 15:43:52 +05:30 committed by GitHub
parent 5af0f58aa9
commit fc66fba5aa
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 16 additions and 10 deletions

View file

@ -221,7 +221,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) => {
@ -235,7 +235,7 @@ export const useParseEditorContent = (args: TArgs) => {
workspaceSlug,
});
if (assetSrc) {
imageMetaData.push({
filesMetaData.push({
id: src,
name: src,
url: assetSrc,
@ -264,7 +264,7 @@ export const useParseEditorContent = (args: TArgs) => {
});
return {
file_assets: imageMetaData,
file_assets: filesMetaData,
user_mentions: userMentions,
};
},

View file

@ -35,13 +35,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> => ({});