import React from 'react';
import ReactSelect from 'react-select';
import PropTypes from 'prop-types';
import { format } from 'date-fns';
import { withUnstatedContainers } from '../UnstatedUtils';
import PageHistroyContainer from '../../services/PageHistoryContainer';
import RevisionCompareContainer from '../../services/RevisionCompareContainer';
import UserDate from '../User/UserDate';
import Username from '../User/Username';
import UserPicture from '../User/UserPicture';
const RevisionIdForm = (props) => {
/**
* create an Option array for AsyncSelect from the revision list
*/
const revisionOptions = () => {
const timeFormat = 'yyyy/MM/dd HH:mm:ss';
const { revisions } = props.pageHistoryContainer.state;
return revisions.map((rev) => {
return { label: `${format(new Date(rev.createdAt), timeFormat)} - ${rev._id}`, value: rev._id };
});
}
/**
* render a revision selector
* @param {label} label text of inputbox
*/
const renderRevisionSelector = (label) => {
if (['FromRev', 'ToRev'].indexOf(label) === -1) {
return <>>;
}
const forFromRev = (label === 'FromRev');
const { revisionCompareContainer } = props;
const options = revisionOptions();
const selectedRevision = (forFromRev ? revisionCompareContainer.state.fromRevision : revisionCompareContainer.state.toRevision);
const value = options.find(it => it.value === selectedRevision?._id);
const changeHandler = (forFromRev ? revisionCompareContainer.handleFromRevisionChange : revisionCompareContainer.handleToRevisionChange);
const author = selectedRevision?.author;
const pic = (typeof author === 'object') ?