|
|
@@ -2,6 +2,7 @@ import React, {
|
|
|
useCallback, useState, useRef, useEffect,
|
|
|
} from 'react';
|
|
|
|
|
|
+import { useRouter } from 'next/router';
|
|
|
import { UserPicture } from '@growi/ui/dist/components/User/UserPicture';
|
|
|
import dynamic from 'next/dynamic';
|
|
|
import {
|
|
|
@@ -85,6 +86,20 @@ export const CommentEditor = (props: CommentEditorProps): JSX.Element => {
|
|
|
|
|
|
const editorRef = useRef<IEditorMethods>(null);
|
|
|
|
|
|
+ const router = useRouter();
|
|
|
+
|
|
|
+ // UnControlled CodeMirror value is not reset on page transition, so explicitly set the value to the initial value
|
|
|
+ const onRouterChangeComplete = useCallback(() => {
|
|
|
+ editorRef.current?.setValue('');
|
|
|
+ }, []);
|
|
|
+
|
|
|
+ useEffect(() => {
|
|
|
+ router.events.on('routeChangeComplete', onRouterChangeComplete);
|
|
|
+ return () => {
|
|
|
+ router.events.off('routeChangeComplete', onRouterChangeComplete);
|
|
|
+ };
|
|
|
+ }, [onRouterChangeComplete, router.events]);
|
|
|
+
|
|
|
const handleSelect = useCallback((activeTab: string) => {
|
|
|
setActiveTab(activeTab);
|
|
|
}, []);
|