import { IMentionHighlight, IMentionSuggestion } from "@plane/lite-text-editor"; import { RootStore } from "../root"; import { computed, makeObservable } from "mobx"; export interface IMentionsStore { mentionSuggestions: IMentionSuggestion[]; mentionHighlights: IMentionHighlight[]; } export class MentionsStore implements IMentionsStore { // root store rootStore; constructor(_rootStore: RootStore) { // rootStore this.rootStore = _rootStore; makeObservable(this, { mentionHighlights: computed, mentionSuggestions: computed, }); } get mentionSuggestions() { const projectMembers = this.rootStore.project.projectMembers; const suggestions = projectMembers === null ? [] : projectMembers.map((member) => ({ id: member.member.id, type: "User", title: member.member.display_name, subtitle: member.member.email ?? "", avatar: member.member.avatar, redirect_uri: `/${member.workspace.slug}/profile/${member.member.id}`, })); return suggestions; } get mentionHighlights() { const user = this.rootStore.user.currentUser; return user ? [user.id] : []; } }