import React, { useState } from "react"; import { observer } from "mobx-react"; // plane imports import type { ISearchIssueResponse, TIssue } from "@plane/types"; // components import { IssueModalContext } from "@/components/issues/issue-modal/context"; // hooks import { useUser } from "@/hooks/store/user/user-user"; export type TIssueModalProviderProps = { templateId?: string; dataForPreload?: Partial; allowedProjectIds?: string[]; children: React.ReactNode; }; export const IssueModalProvider = observer((props: TIssueModalProviderProps) => { const { children, allowedProjectIds } = props; // states const [selectedParentIssue, setSelectedParentIssue] = useState(null); // store hooks const { projectsWithCreatePermissions } = useUser(); // derived values const projectIdsWithCreatePermissions = Object.keys(projectsWithCreatePermissions ?? {}); return ( {}, isApplyingTemplate: false, setIsApplyingTemplate: () => {}, selectedParentIssue, setSelectedParentIssue, issuePropertyValues: {}, setIssuePropertyValues: () => {}, issuePropertyValueErrors: {}, setIssuePropertyValueErrors: () => {}, getIssueTypeIdOnProjectChange: () => null, getActiveAdditionalPropertiesLength: () => 0, handlePropertyValuesValidation: () => true, handleCreateUpdatePropertyValues: () => Promise.resolve(), handleProjectEntitiesFetch: () => Promise.resolve(), handleTemplateChange: () => Promise.resolve(), handleConvert: () => Promise.resolve(), handleCreateSubWorkItem: () => Promise.resolve(), }} > {children} ); });