mirror of
https://github.com/gosticks/plane.git
synced 2025-10-16 12:45:33 +00:00
54 lines
1.9 KiB
TypeScript
54 lines
1.9 KiB
TypeScript
import React, { useState } from "react";
|
|
import { observer } from "mobx-react";
|
|
// plane imports
|
|
import { ISearchIssueResponse, TIssue } from "@plane/types";
|
|
// components
|
|
import { IssueModalContext } from "@/components/issues";
|
|
// hooks
|
|
import { useUser } from "@/hooks/store/user/user-user";
|
|
|
|
export type TIssueModalProviderProps = {
|
|
templateId?: string;
|
|
dataForPreload?: Partial<TIssue>;
|
|
allowedProjectIds?: string[];
|
|
children: React.ReactNode;
|
|
};
|
|
|
|
export const IssueModalProvider = observer((props: TIssueModalProviderProps) => {
|
|
const { children, allowedProjectIds } = props;
|
|
// states
|
|
const [selectedParentIssue, setSelectedParentIssue] = useState<ISearchIssueResponse | null>(null);
|
|
// store hooks
|
|
const { projectsWithCreatePermissions } = useUser();
|
|
// derived values
|
|
const projectIdsWithCreatePermissions = Object.keys(projectsWithCreatePermissions ?? {});
|
|
|
|
return (
|
|
<IssueModalContext.Provider
|
|
value={{
|
|
allowedProjectIds: allowedProjectIds ?? projectIdsWithCreatePermissions,
|
|
workItemTemplateId: null,
|
|
setWorkItemTemplateId: () => {},
|
|
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}
|
|
</IssueModalContext.Provider>
|
|
);
|
|
});
|