chore: implement node renderer components

This commit is contained in:
Steven
2023-12-17 10:49:49 +08:00
parent 28c0549705
commit 5d677c3c57
30 changed files with 456 additions and 26 deletions

View File

@ -1,13 +1,12 @@
import { Select, Option, Button, IconButton, Divider } from "@mui/joy";
import { isNumber, last, uniq, uniqBy } from "lodash-es";
import { isNumber, last, uniqBy } from "lodash-es";
import React, { useCallback, useEffect, useMemo, useRef, useState } from "react";
import { toast } from "react-hot-toast";
import { useTranslation } from "react-i18next";
import useLocalStorage from "react-use/lib/useLocalStorage";
import { TAB_SPACE_WIDTH, UNKNOWN_ID, VISIBILITY_SELECTOR_ITEMS } from "@/helpers/consts";
import useCurrentUser from "@/hooks/useCurrentUser";
import { getMatchedNodes } from "@/labs/marked";
import { useGlobalStore, useMemoStore, useResourceStore, useTagStore } from "@/store/module";
import { useGlobalStore, useMemoStore, useResourceStore } from "@/store/module";
import { useUserV1Store } from "@/store/v1";
import { Resource } from "@/types/proto/api/v2/resource_service";
import { UserSetting, User_Role } from "@/types/proto/api/v2/user_service";
@ -52,7 +51,6 @@ const MemoEditor = (props: Props) => {
} = useGlobalStore();
const userV1Store = useUserV1Store();
const memoStore = useMemoStore();
const tagStore = useTagStore();
const resourceStore = useResourceStore();
const currentUser = useCurrentUser();
const [state, setState] = useState<State>({
@ -335,13 +333,6 @@ const MemoEditor = (props: Props) => {
};
});
// Upsert tag with the content.
const matchedNodes = getMatchedNodes(content);
const tagNameList = uniq(matchedNodes.filter((node) => node.parserName === "tag").map((node) => node.matchedContent.slice(1)));
for (const tagName of tagNameList) {
await tagStore.upsertTag(tagName);
}
setState((prevState) => ({
...prevState,
resourceList: [],