mirror of
https://github.com/makeplane/plane.git
synced 2026-02-24 04:00:14 +01:00
refactor: editor markdown handler
This commit is contained in:
@@ -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,
|
||||
};
|
||||
},
|
||||
|
||||
@@ -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> => ({});
|
||||
|
||||
Reference in New Issue
Block a user