mirror of
https://github.com/makeplane/plane.git
synced 2025-12-24 23:59:40 +01:00
[WEB-2709] chore: intake issue navigation improvement (#5891)
* chore: intake issue navigation improvement * chore: code refactor * chore: intake issue navigation improvement * chore: intake issue navigation improvement
This commit is contained in:
committed by
GitHub
parent
c4421f5f97
commit
cbfcbba5d1
@@ -67,7 +67,7 @@ export const InboxIssueMainContent: React.FC<Props> = observer((props) => {
|
||||
},
|
||||
update: async (_workspaceSlug: string, _projectId: string, _issueId: string, data: Partial<TIssue>) => {
|
||||
try {
|
||||
await inboxIssue.updateIssue(data);
|
||||
await inboxIssue.updateIssue({ ...data, id: _issueId });
|
||||
captureIssueEvent({
|
||||
eventName: "Inbox issue updated",
|
||||
payload: { ...data, state: "SUCCESS", element: "Inbox" },
|
||||
|
||||
@@ -59,12 +59,12 @@ export const IssueDescriptionInput: FC<IssueDescriptionInputProps> = observer((p
|
||||
});
|
||||
|
||||
const handleDescriptionFormSubmit = useCallback(
|
||||
async (formData: Partial<TIssue>) => {
|
||||
await issueOperations.update(workspaceSlug, projectId, issueId, {
|
||||
async (formData: Partial<TIssue>, _issueId: string) => {
|
||||
await issueOperations.update(workspaceSlug, projectId, _issueId, {
|
||||
description_html: formData.description_html ?? "<p></p>",
|
||||
});
|
||||
},
|
||||
[workspaceSlug, projectId, issueId, issueOperations]
|
||||
[workspaceSlug, projectId, issueOperations]
|
||||
);
|
||||
|
||||
const { getWorkspaceBySlug } = useWorkspace();
|
||||
@@ -84,14 +84,17 @@ export const IssueDescriptionInput: FC<IssueDescriptionInputProps> = observer((p
|
||||
});
|
||||
}, [initialValue, issueId, reset]);
|
||||
|
||||
// ADDING handleDescriptionFormSubmit TO DEPENDENCY ARRAY PRODUCES ADVERSE EFFECTS
|
||||
// TODO: Verify the exhaustive-deps warning
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
const debouncedHandleDescriptionFormSubmit = debounce(async (data: Partial<TIssue>, _issueId: string) => {
|
||||
await handleDescriptionFormSubmit(data, _issueId);
|
||||
setIsSubmitting("submitted");
|
||||
}, 1500);
|
||||
|
||||
const debouncedFormSave = useCallback(
|
||||
debounce(async () => {
|
||||
handleSubmit(handleDescriptionFormSubmit)().finally(() => setIsSubmitting("submitted"));
|
||||
}, 1500),
|
||||
[handleSubmit, issueId]
|
||||
(_issueId: string) =>
|
||||
handleSubmit((data) => {
|
||||
debouncedHandleDescriptionFormSubmit(data, _issueId);
|
||||
})(),
|
||||
[debouncedHandleDescriptionFormSubmit, handleSubmit]
|
||||
);
|
||||
|
||||
return (
|
||||
@@ -113,7 +116,7 @@ export const IssueDescriptionInput: FC<IssueDescriptionInputProps> = observer((p
|
||||
onChange={(_description: object, description_html: string) => {
|
||||
setIsSubmitting("submitting");
|
||||
onChange(description_html);
|
||||
debouncedFormSave();
|
||||
debouncedFormSave(issueId);
|
||||
}}
|
||||
placeholder={
|
||||
placeholder ? placeholder : (isFocused, value) => getDescriptionPlaceholder(isFocused, value)
|
||||
|
||||
@@ -151,12 +151,12 @@ export class InboxIssueStore implements IInboxIssueStore {
|
||||
updateIssue = async (issue: Partial<TIssue>) => {
|
||||
const inboxIssue = clone(this.issue);
|
||||
try {
|
||||
if (!this.issue.id) return;
|
||||
if (!issue.id) return;
|
||||
Object.keys(issue).forEach((key) => {
|
||||
const issueKey = key as keyof TIssue;
|
||||
set(this.issue, issueKey, issue[issueKey]);
|
||||
});
|
||||
await this.inboxIssueService.updateIssue(this.workspaceSlug, this.projectId, this.issue.id, issue);
|
||||
await this.inboxIssueService.updateIssue(this.workspaceSlug, this.projectId, issue.id, issue);
|
||||
// fetching activity
|
||||
this.fetchIssueActivity();
|
||||
} catch {
|
||||
|
||||
Reference in New Issue
Block a user