[WEB-3788] improvement: enhance project properties related components modularity (#6882)

* improvement: work item modal data preload and parent work item details

* improvement: collapsible button title

* improvement: project creation form and modal

* improvement: emoji helper

* improvement: enhance labels component modularity

* improvement: enable state group and state list components modularity

* improvement: project settings feature list

* improvement: common utils
This commit is contained in:
Prateek Shourya 2025-04-09 14:50:43 +05:30 committed by GitHub
parent 670134562f
commit 1f9222065e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
36 changed files with 622 additions and 381 deletions

View file

@ -61,7 +61,6 @@ export type TIssueModalContext = {
getActiveAdditionalPropertiesLength: (props: TActiveAdditionalPropertiesProps) => number;
handlePropertyValuesValidation: (props: TPropertyValuesValidationProps) => boolean;
handleCreateUpdatePropertyValues: (props: TCreateUpdatePropertyValuesProps) => Promise<void>;
handleParentWorkItemDetails: (props: THandleParentWorkItemDetailsProps) => Promise<ISearchIssueResponse | undefined>;
handleProjectEntitiesFetch: (props: THandleProjectEntitiesFetchProps) => Promise<void>;
handleTemplateChange: (props: THandleTemplateChangeProps) => Promise<void>;
};

View file

@ -2,6 +2,7 @@
import React from "react";
import { observer } from "mobx-react";
import { useParams } from "next/navigation";
// plane imports
import { EIssuesStoreType } from "@plane/constants";
import type { TIssue } from "@plane/types";
@ -30,11 +31,20 @@ export interface IssuesModalProps {
templateId?: string;
}
export const CreateUpdateIssueModal: React.FC<IssuesModalProps> = observer(
(props) =>
props.isOpen && (
<IssueModalProvider templateId={props.templateId}>
<CreateUpdateIssueModalBase {...props} />
</IssueModalProvider>
)
);
export const CreateUpdateIssueModal: React.FC<IssuesModalProps> = observer((props) => {
// router params
const { cycleId, moduleId } = useParams();
// derived values
const dataForPreload = {
...props.data,
cycle_id: props.data?.cycle_id ? props.data?.cycle_id : cycleId ? cycleId.toString() : null,
module_ids: props.data?.module_ids ? props.data?.module_ids : moduleId ? [moduleId.toString()] : null,
};
if (!props.isOpen) return null;
return (
<IssueModalProvider templateId={props.templateId} dataForPreload={dataForPreload}>
<CreateUpdateIssueModalBase {...props} />
</IssueModalProvider>
);
});