forked from github/plane
[REGRESSION]: Inbox issue editor initialization (#3025)
* fixed core editor package build error * reverting back changes such that editor doesn't rerender randomly in inbox issues
This commit is contained in:
parent
b0f690d322
commit
200841304d
@ -1,105 +0,0 @@
|
|||||||
"use client";
|
|
||||||
import * as React from "react";
|
|
||||||
import { Extension } from "@tiptap/react";
|
|
||||||
import { getEditorClassNames } from "../lib/utils";
|
|
||||||
import { EditorProps } from "@tiptap/pm/view";
|
|
||||||
import { useEditor } from "./hooks/use-editor";
|
|
||||||
import { EditorContainer } from "../ui/components/editor-container";
|
|
||||||
import { EditorContentWrapper } from "../ui/components/editor-content";
|
|
||||||
import {
|
|
||||||
UploadImage,
|
|
||||||
DeleteImage,
|
|
||||||
IMentionSuggestion,
|
|
||||||
} from "@plane/editor-types";
|
|
||||||
|
|
||||||
interface ICoreEditor {
|
|
||||||
value: string;
|
|
||||||
uploadFile: UploadImage;
|
|
||||||
deleteFile: DeleteImage;
|
|
||||||
noBorder?: boolean;
|
|
||||||
borderOnFocus?: boolean;
|
|
||||||
customClassName?: string;
|
|
||||||
editorContentCustomClassNames?: string;
|
|
||||||
onChange?: (json: any, html: string) => void;
|
|
||||||
setIsSubmitting?: (
|
|
||||||
isSubmitting: "submitting" | "submitted" | "saved",
|
|
||||||
) => void;
|
|
||||||
setShouldShowAlert?: (showAlert: boolean) => void;
|
|
||||||
editable?: boolean;
|
|
||||||
forwardedRef?: any;
|
|
||||||
debouncedUpdatesEnabled?: boolean;
|
|
||||||
accessValue: string;
|
|
||||||
onAccessChange: (accessKey: string) => void;
|
|
||||||
commentAccess: {
|
|
||||||
icon: string;
|
|
||||||
key: string;
|
|
||||||
label: "Private" | "Public";
|
|
||||||
}[];
|
|
||||||
mentionHighlights?: string[];
|
|
||||||
mentionSuggestions?: IMentionSuggestion[];
|
|
||||||
extensions?: Extension[];
|
|
||||||
editorProps?: EditorProps;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface EditorCoreProps extends ICoreEditor {
|
|
||||||
forwardedRef?: React.Ref<EditorHandle>;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface EditorHandle {
|
|
||||||
clearEditor: () => void;
|
|
||||||
setEditorValue: (content: string) => void;
|
|
||||||
}
|
|
||||||
|
|
||||||
const CoreEditor = ({
|
|
||||||
onChange,
|
|
||||||
debouncedUpdatesEnabled,
|
|
||||||
editable,
|
|
||||||
setIsSubmitting,
|
|
||||||
setShouldShowAlert,
|
|
||||||
editorContentCustomClassNames,
|
|
||||||
value,
|
|
||||||
uploadFile,
|
|
||||||
deleteFile,
|
|
||||||
noBorder,
|
|
||||||
borderOnFocus,
|
|
||||||
customClassName,
|
|
||||||
forwardedRef,
|
|
||||||
}: EditorCoreProps) => {
|
|
||||||
const editor = useEditor({
|
|
||||||
onChange,
|
|
||||||
debouncedUpdatesEnabled,
|
|
||||||
setIsSubmitting,
|
|
||||||
setShouldShowAlert,
|
|
||||||
value,
|
|
||||||
uploadFile,
|
|
||||||
deleteFile,
|
|
||||||
forwardedRef,
|
|
||||||
});
|
|
||||||
|
|
||||||
const editorClassNames = getEditorClassNames({
|
|
||||||
noBorder,
|
|
||||||
borderOnFocus,
|
|
||||||
customClassName,
|
|
||||||
});
|
|
||||||
|
|
||||||
if (!editor) return null;
|
|
||||||
|
|
||||||
return (
|
|
||||||
<EditorContainer editor={editor} editorClassNames={editorClassNames}>
|
|
||||||
<div className="flex flex-col">
|
|
||||||
<EditorContentWrapper
|
|
||||||
editor={editor}
|
|
||||||
editorContentCustomClassNames={editorContentCustomClassNames}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</EditorContainer>
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
const CoreEditorWithRef = React.forwardRef<EditorHandle, ICoreEditor>(
|
|
||||||
(props, ref) => <CoreEditor {...props} forwardedRef={ref} />,
|
|
||||||
);
|
|
||||||
|
|
||||||
CoreEditorWithRef.displayName = "CoreEditorWithRef";
|
|
||||||
|
|
||||||
export { CoreEditor, CoreEditorWithRef };
|
|
@ -66,7 +66,7 @@ export const IssueDescriptionForm: FC<IssueDetailsProps> = (props) => {
|
|||||||
setLocalIssueDescription({ id: issue.id, description_html: issue.description_html });
|
setLocalIssueDescription({ id: issue.id, description_html: issue.description_html });
|
||||||
setLocalTitleValue(issue.name);
|
setLocalTitleValue(issue.name);
|
||||||
}
|
}
|
||||||
}, [issue.id, issue.name, issue.description_html]);
|
}, [issue.id]);
|
||||||
|
|
||||||
const handleDescriptionFormSubmit = useCallback(
|
const handleDescriptionFormSubmit = useCallback(
|
||||||
async (formData: Partial<IIssue>) => {
|
async (formData: Partial<IIssue>) => {
|
||||||
|
Loading…
Reference in New Issue
Block a user