fix: intake issue description and navigation (#5900)

This commit is contained in:
Anmol Singh Bhatia 2024-10-23 16:46:28 +05:30 committed by GitHub
parent cbfcbba5d1
commit 25a410719b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 16 additions and 18 deletions

View file

@ -217,11 +217,12 @@ export const InboxIssueActionsHeader: FC<TInboxIssueActionsHeader> = observer((p
};
useEffect(() => {
if (isSubmitting === "submitting") return;
if (!isNotificationEmbed) document.addEventListener("keydown", onKeyDown);
return () => {
if (!isNotificationEmbed) document.removeEventListener("keydown", onKeyDown);
};
}, [onKeyDown, isNotificationEmbed]);
}, [onKeyDown, isNotificationEmbed, isSubmitting]);
if (!inboxIssue) return null;

View file

@ -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, id: _issueId });
await inboxIssue.updateIssue(data);
captureIssueEvent({
eventName: "Inbox issue updated",
payload: { ...data, state: "SUCCESS", element: "Inbox" },

View file

@ -59,12 +59,12 @@ export const IssueDescriptionInput: FC<IssueDescriptionInputProps> = observer((p
});
const handleDescriptionFormSubmit = useCallback(
async (formData: Partial<TIssue>, _issueId: string) => {
await issueOperations.update(workspaceSlug, projectId, _issueId, {
async (formData: Partial<TIssue>) => {
await issueOperations.update(workspaceSlug, projectId, issueId, {
description_html: formData.description_html ?? "<p></p>",
});
},
[workspaceSlug, projectId, issueOperations]
[workspaceSlug, projectId, issueId, issueOperations]
);
const { getWorkspaceBySlug } = useWorkspace();
@ -84,17 +84,14 @@ export const IssueDescriptionInput: FC<IssueDescriptionInputProps> = observer((p
});
}, [initialValue, issueId, reset]);
const debouncedHandleDescriptionFormSubmit = debounce(async (data: Partial<TIssue>, _issueId: string) => {
await handleDescriptionFormSubmit(data, _issueId);
setIsSubmitting("submitted");
}, 1500);
// ADDING handleDescriptionFormSubmit TO DEPENDENCY ARRAY PRODUCES ADVERSE EFFECTS
// TODO: Verify the exhaustive-deps warning
// eslint-disable-next-line react-hooks/exhaustive-deps
const debouncedFormSave = useCallback(
(_issueId: string) =>
handleSubmit((data) => {
debouncedHandleDescriptionFormSubmit(data, _issueId);
})(),
[debouncedHandleDescriptionFormSubmit, handleSubmit]
debounce(async () => {
handleSubmit(handleDescriptionFormSubmit)().finally(() => setIsSubmitting("submitted"));
}, 1500),
[handleSubmit, issueId]
);
return (
@ -116,7 +113,7 @@ export const IssueDescriptionInput: FC<IssueDescriptionInputProps> = observer((p
onChange={(_description: object, description_html: string) => {
setIsSubmitting("submitting");
onChange(description_html);
debouncedFormSave(issueId);
debouncedFormSave();
}}
placeholder={
placeholder ? placeholder : (isFocused, value) => getDescriptionPlaceholder(isFocused, value)

View file

@ -151,12 +151,12 @@ export class InboxIssueStore implements IInboxIssueStore {
updateIssue = async (issue: Partial<TIssue>) => {
const inboxIssue = clone(this.issue);
try {
if (!issue.id) return;
if (!this.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, issue.id, issue);
await this.inboxIssueService.updateIssue(this.workspaceSlug, this.projectId, this.issue.id, issue);
// fetching activity
this.fetchIssueActivity();
} catch {