[WIKI-785] refactor: editor markdown handler #8546
This commit is contained in:
parent
5af0f58aa9
commit
fc66fba5aa
2 changed files with 16 additions and 10 deletions
|
|
@ -221,7 +221,7 @@ export const useParseEditorContent = (args: TArgs) => {
|
||||||
(htmlContent: string): TCustomComponentsMetaData => {
|
(htmlContent: string): TCustomComponentsMetaData => {
|
||||||
const parser = new DOMParser();
|
const parser = new DOMParser();
|
||||||
const doc = parser.parseFromString(htmlContent, "text/html");
|
const doc = parser.parseFromString(htmlContent, "text/html");
|
||||||
const imageMetaData: TCustomComponentsMetaData["file_assets"] = [];
|
const filesMetaData: TCustomComponentsMetaData["file_assets"] = [];
|
||||||
// process image components
|
// process image components
|
||||||
const imageComponents = doc.querySelectorAll("image-component");
|
const imageComponents = doc.querySelectorAll("image-component");
|
||||||
imageComponents.forEach((element) => {
|
imageComponents.forEach((element) => {
|
||||||
|
|
@ -235,7 +235,7 @@ export const useParseEditorContent = (args: TArgs) => {
|
||||||
workspaceSlug,
|
workspaceSlug,
|
||||||
});
|
});
|
||||||
if (assetSrc) {
|
if (assetSrc) {
|
||||||
imageMetaData.push({
|
filesMetaData.push({
|
||||||
id: src,
|
id: src,
|
||||||
name: src,
|
name: src,
|
||||||
url: assetSrc,
|
url: assetSrc,
|
||||||
|
|
@ -264,7 +264,7 @@ export const useParseEditorContent = (args: TArgs) => {
|
||||||
});
|
});
|
||||||
|
|
||||||
return {
|
return {
|
||||||
file_assets: imageMetaData,
|
file_assets: filesMetaData,
|
||||||
user_mentions: userMentions,
|
user_mentions: userMentions,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -35,13 +35,19 @@ export const parseCustomComponents = (args: TArgs): Record<string, Handle> => {
|
||||||
},
|
},
|
||||||
"mention-component": (_state, node) => {
|
"mention-component": (_state, node) => {
|
||||||
const properties = node.properties || {};
|
const properties = node.properties || {};
|
||||||
|
const mentionType = String(properties.entity_name);
|
||||||
|
|
||||||
|
let url: string = "";
|
||||||
|
let tag: string = "@";
|
||||||
|
if (mentionType === "user_mention") {
|
||||||
const userId = String(properties.entity_identifier);
|
const userId = String(properties.entity_identifier);
|
||||||
const userDetails = metaData.user_mentions.find((user) => user.id === userId);
|
const userDetails = metaData.user_mentions.find((user) => user.id === userId);
|
||||||
if (!userDetails) return createTextNode("");
|
if (!userDetails) return createTextNode("");
|
||||||
return createTextNode(`[@${userDetails.display_name || "Unknown user"}](${userDetails.url || ""}) `);
|
url = userDetails.url || "";
|
||||||
|
tag = `@${userDetails.display_name || "Unknown user"}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
return createTextNode(`[${tag}](${url}) `);
|
||||||
},
|
},
|
||||||
...parseExtendedCustomComponents({ metaData }),
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export const parseExtendedCustomComponents = (_args: TArgs): Record<string, Handle> => ({});
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue