|
@@ -2,7 +2,7 @@ import React, {
|
|
|
useState, useEffect, useCallback, useMemo,
|
|
useState, useEffect, useCallback, useMemo,
|
|
|
} from 'react';
|
|
} from 'react';
|
|
|
|
|
|
|
|
-import type { IRevisionOnConflict } from '@growi/core';
|
|
|
|
|
|
|
+import type { IUser } from '@growi/core';
|
|
|
import {
|
|
import {
|
|
|
MergeViewer, CodeMirrorEditorDiff, GlobalCodeMirrorEditorKey, useCodeMirrorEditorIsolated,
|
|
MergeViewer, CodeMirrorEditorDiff, GlobalCodeMirrorEditorKey, useCodeMirrorEditorIsolated,
|
|
|
} from '@growi/editor';
|
|
} from '@growi/editor';
|
|
@@ -22,11 +22,15 @@ import {
|
|
|
|
|
|
|
|
import styles from './ConflictDiffModal.module.scss';
|
|
import styles from './ConflictDiffModal.module.scss';
|
|
|
|
|
|
|
|
-type OmiitedRevisionOnConflict = Omit<IRevisionOnConflict, 'revisionId'>;
|
|
|
|
|
|
|
+type IRevisionOnConflict = {
|
|
|
|
|
+ revisionBody: string
|
|
|
|
|
+ createdAt: Date
|
|
|
|
|
+ user: IUser
|
|
|
|
|
+}
|
|
|
|
|
|
|
|
type ConflictDiffModalCoreProps = {
|
|
type ConflictDiffModalCoreProps = {
|
|
|
- request: OmiitedRevisionOnConflict
|
|
|
|
|
- latest: OmiitedRevisionOnConflict
|
|
|
|
|
|
|
+ request: IRevisionOnConflict
|
|
|
|
|
+ latest: IRevisionOnConflict
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
const formatedDate = (date: Date): string => {
|
|
const formatedDate = (date: Date): string => {
|
|
@@ -182,9 +186,8 @@ const ConflictDiffModalCore = (props: ConflictDiffModalCoreProps): JSX.Element =
|
|
|
|
|
|
|
|
export const ConflictDiffModal = (): JSX.Element => {
|
|
export const ConflictDiffModal = (): JSX.Element => {
|
|
|
const { data: currentUser } = useCurrentUser();
|
|
const { data: currentUser } = useCurrentUser();
|
|
|
-
|
|
|
|
|
- // state for current page
|
|
|
|
|
const { data: currentPage } = useSWRxCurrentPage();
|
|
const { data: currentPage } = useSWRxCurrentPage();
|
|
|
|
|
+ const { data: conflictDiffModalStatus } = useConflictDiffModal();
|
|
|
|
|
|
|
|
// state for latest page
|
|
// state for latest page
|
|
|
const { data: remoteRevisionId } = useRemoteRevisionId();
|
|
const { data: remoteRevisionId } = useRemoteRevisionId();
|
|
@@ -192,8 +195,6 @@ export const ConflictDiffModal = (): JSX.Element => {
|
|
|
const { data: remoteRevisionLastUpdateUser } = useRemoteRevisionLastUpdateUser();
|
|
const { data: remoteRevisionLastUpdateUser } = useRemoteRevisionLastUpdateUser();
|
|
|
const { data: remoteRevisionLastUpdatedAt } = useRemoteRevisionLastUpdatedAt();
|
|
const { data: remoteRevisionLastUpdatedAt } = useRemoteRevisionLastUpdatedAt();
|
|
|
|
|
|
|
|
- const { data: conflictDiffModalStatus } = useConflictDiffModal();
|
|
|
|
|
-
|
|
|
|
|
const isRemotePageDataInappropriate = remoteRevisionId == null || remoteRevisionBody == null || remoteRevisionLastUpdateUser == null;
|
|
const isRemotePageDataInappropriate = remoteRevisionId == null || remoteRevisionBody == null || remoteRevisionLastUpdateUser == null;
|
|
|
|
|
|
|
|
if (!conflictDiffModalStatus?.isOpened || currentUser == null || currentPage == null || isRemotePageDataInappropriate) {
|
|
if (!conflictDiffModalStatus?.isOpened || currentUser == null || currentPage == null || isRemotePageDataInappropriate) {
|
|
@@ -202,13 +203,13 @@ export const ConflictDiffModal = (): JSX.Element => {
|
|
|
|
|
|
|
|
const currentTime: Date = new Date();
|
|
const currentTime: Date = new Date();
|
|
|
|
|
|
|
|
- const request: OmiitedRevisionOnConflict = {
|
|
|
|
|
|
|
+ const request: IRevisionOnConflict = {
|
|
|
revisionBody: conflictDiffModalStatus.requestRevisionBody ?? '',
|
|
revisionBody: conflictDiffModalStatus.requestRevisionBody ?? '',
|
|
|
createdAt: currentTime,
|
|
createdAt: currentTime,
|
|
|
user: currentUser,
|
|
user: currentUser,
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
- const latest: OmiitedRevisionOnConflict = {
|
|
|
|
|
|
|
+ const latest: IRevisionOnConflict = {
|
|
|
revisionBody: remoteRevisionBody,
|
|
revisionBody: remoteRevisionBody,
|
|
|
createdAt: new Date(remoteRevisionLastUpdatedAt ?? currentTime.toString()),
|
|
createdAt: new Date(remoteRevisionLastUpdatedAt ?? currentTime.toString()),
|
|
|
user: remoteRevisionLastUpdateUser,
|
|
user: remoteRevisionLastUpdateUser,
|