import { FC, ReactNode } from "react"; import { observer } from "mobx-react-lite"; // components import { IssueView } from "./view"; // hooks import { useMobxStore } from "lib/mobx/store-provider"; // types import { IIssue } from "types"; interface IIssuePeekOverview { workspaceSlug: string; projectId: string; issueId: string; handleIssue: (issue: Partial) => void; children?: ReactNode; } export const IssuePeekOverview: FC = observer((props) => { const { workspaceSlug, projectId, issueId, handleIssue, children } = props; const { issueDetail: issueDetailStore, project: projectStore, user: userStore } = useMobxStore(); const issueUpdate = (_data: Partial) => { handleIssue(_data); }; const issueReactionCreate = (reaction: string) => issueDetailStore.createIssueReaction(workspaceSlug, projectId, issueId, reaction); const issueReactionRemove = (reaction: string) => issueDetailStore.removeIssueReaction(workspaceSlug, projectId, issueId, reaction); const issueCommentCreate = (comment: any) => issueDetailStore.createIssueComment(workspaceSlug, projectId, issueId, comment); const issueCommentUpdate = (comment: any) => issueDetailStore.updateIssueComment(workspaceSlug, projectId, issueId, comment?.id, comment); const issueCommentRemove = (commentId: string) => issueDetailStore.removeIssueComment(workspaceSlug, projectId, issueId, commentId); const issueCommentReactionCreate = (commentId: string, reaction: string) => issueDetailStore.creationIssueCommentReaction(workspaceSlug, projectId, issueId, commentId, reaction); const issueCommentReactionRemove = (commentId: string, reaction: string) => issueDetailStore.removeIssueCommentReaction(workspaceSlug, projectId, issueId, commentId, reaction); const issueSubscriptionCreate = () => issueDetailStore.createIssueSubscription(workspaceSlug, projectId, issueId); const issueSubscriptionRemove = () => issueDetailStore.removeIssueSubscription(workspaceSlug, projectId, issueId); const handleDeleteIssue = () => issueDetailStore.deleteIssue(workspaceSlug, projectId, issueId); const userRole = userStore.currentProjectRole ?? 5; return ( {children} ); });