|
@@ -1,5 +1,5 @@
|
|
|
import React, {
|
|
import React, {
|
|
|
- useState, useRef, useEffect, FC,
|
|
|
|
|
|
|
+ useState, useRef, useEffect, FC, useCallback, Ref,
|
|
|
} from 'react';
|
|
} from 'react';
|
|
|
import PropTypes from 'prop-types';
|
|
import PropTypes from 'prop-types';
|
|
|
import { UserPicture } from '@growi/ui';
|
|
import { UserPicture } from '@growi/ui';
|
|
@@ -15,7 +15,7 @@ import EditorContainer from '../../client/services/EditorContainer';
|
|
|
import AppContainer from '../../client/services/AppContainer';
|
|
import AppContainer from '../../client/services/AppContainer';
|
|
|
|
|
|
|
|
import { IRevisionOnConflict } from '../../interfaces/revision';
|
|
import { IRevisionOnConflict } from '../../interfaces/revision';
|
|
|
-import { UncontrolledCodeMirror } from '../UncontrolledCodeMirror';
|
|
|
|
|
|
|
+import { UncontrolledCodeMirror, UncontrolledCodeMirrorCore } from '../UncontrolledCodeMirror';
|
|
|
|
|
|
|
|
require('codemirror/lib/codemirror.css');
|
|
require('codemirror/lib/codemirror.css');
|
|
|
require('codemirror/addon/merge/merge');
|
|
require('codemirror/addon/merge/merge');
|
|
@@ -42,6 +42,9 @@ export const ConflictDiffModal: FC<ConflictDiffModalProps> = (props) => {
|
|
|
const [resolvedRevision, setResolvedRevision] = useState<string>('');
|
|
const [resolvedRevision, setResolvedRevision] = useState<string>('');
|
|
|
const [isRevisionselected, setIsRevisionSelected] = useState<boolean>(false);
|
|
const [isRevisionselected, setIsRevisionSelected] = useState<boolean>(false);
|
|
|
const [codeMirrorRef, setCodeMirrorRef] = useState<HTMLDivElement | null>(null);
|
|
const [codeMirrorRef, setCodeMirrorRef] = useState<HTMLDivElement | null>(null);
|
|
|
|
|
+ const [uncontrolledCodeMirror, setUncontrolledCodeMirror] = useState<Ref<UncontrolledCodeMirrorCore>>(null);
|
|
|
|
|
+
|
|
|
|
|
+ const uncontrolledRef = useCallback((cm) => { setUncontrolledCodeMirror(cm) }, []);
|
|
|
|
|
|
|
|
const { pageContainer, editorContainer, appContainer } = props;
|
|
const { pageContainer, editorContainer, appContainer } = props;
|
|
|
|
|
|
|
@@ -92,6 +95,7 @@ export const ConflictDiffModal: FC<ConflictDiffModalProps> = (props) => {
|
|
|
const onResolveConflict = async() : Promise<void> => {
|
|
const onResolveConflict = async() : Promise<void> => {
|
|
|
// disable button after clicked
|
|
// disable button after clicked
|
|
|
setIsRevisionSelected(false);
|
|
setIsRevisionSelected(false);
|
|
|
|
|
+ console.log(uncontrolledCodeMirror);
|
|
|
editorContainer.disableUnsavedWarning();
|
|
editorContainer.disableUnsavedWarning();
|
|
|
try {
|
|
try {
|
|
|
await pageContainer.resolveConflictAndReload(
|
|
await pageContainer.resolveConflictAndReload(
|
|
@@ -203,6 +207,7 @@ export const ConflictDiffModal: FC<ConflictDiffModalProps> = (props) => {
|
|
|
<div className="col-12 border border-dark">
|
|
<div className="col-12 border border-dark">
|
|
|
<h3 className="font-weight-bold my-2">{t('modal_resolve_conflict.selected_editable_revision')}</h3>
|
|
<h3 className="font-weight-bold my-2">{t('modal_resolve_conflict.selected_editable_revision')}</h3>
|
|
|
<UncontrolledCodeMirror
|
|
<UncontrolledCodeMirror
|
|
|
|
|
+ ref={uncontrolledRef}
|
|
|
value={resolvedRevision}
|
|
value={resolvedRevision}
|
|
|
options={{
|
|
options={{
|
|
|
placeholder: t('modal_resolve_conflict.resolve_conflict_message'),
|
|
placeholder: t('modal_resolve_conflict.resolve_conflict_message'),
|