forked from github/plane
d511799f31
* feat: created custom mention component * feat: added mention suggestions and suggestion highlights * feat: created mention suggestion list for displaying mention suggestions * feat: created custom mention text component, for handling click event * feat: exposed mention component * feat: integrated and exposed `mentions` componenet with `editor-core` * feat: integrated mentions extension with the core editor package * feat: exposed suggestion types from mentions * feat: added `mention-suggestion` parameters in `r-t-e` and `l-t-e` * feat: added `IssueMention` model in apiserver models * chore: updated activities background job and added bs4 in requirements * feat: added mention removal logic in issue_activity * chore: exposed mention types from `r-t-e` and `l-t-e` * feat: integrated mentions in side peek view description form * feat: added mentions in issue modal form * feat: created custom react-hook for editor suggestions * feat: integrated mention suggestions block in RichTextEditor * feat: added `mentions` integration in `lite-text-editor` instances * fix: tailwind loading nodemodules from packages * feat: added styles for the mention suggestion list * fix: update module import to resolve build failure * feat: added mentions as an issue filter * feat: added UI Changes to Implement `mention` filters * feat: added `mentions` as a filter option in the header * feat: added mentions in the filter list options * feat: added mentions in default display filter options * feat: added filters in applied and issue params in store * feat: modified types for adding mentions as a filter option * feat: modified `notification-card` to display message when it exists in object * feat: rewrote user mention management upon the changes made in develop * chore: merged debounce PR with the current PR for tracing changes * fix: mentions_filters updated with the new setup * feat: updated requirements for bs4 * feat: modified `mentions-filter` to remove many to many dependency * feat: implemented list manipulation instead of for loop * feat: added readonly functionality in `read-only` editor core * feat: added UI Changes for read-only mode * feat: added mentions store in web Root Store * chore: renamed `use-editor-suggestions` hook * feat: UI Improvements for conditional highlights w.r.t readonly in mentionNode * fix: removed mentions from `filter_set` parameters * fix: minor merge fixes * fix: package lock updates --------- Co-authored-by: sriram veeraghanta <veeraghanta.sriram@gmail.com>
45 lines
1.2 KiB
TypeScript
45 lines
1.2 KiB
TypeScript
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] : []
|
|
}
|
|
} |