Web: Files: added Router to files, fixed VersionHistoryPanel

This commit is contained in:
Nikita Gopienko 2021-03-12 10:50:54 +03:00
parent d5a6b5d81b
commit 76ea36e661
7 changed files with 57 additions and 44 deletions

View File

@ -1,13 +1,14 @@
import React from "react"; import React from "react";
import { Provider as FilesProvider } from "mobx-react"; import { Provider as FilesProvider } from "mobx-react";
import { inject, observer } from "mobx-react"; import { inject, observer } from "mobx-react";
import { Switch, Route } from "react-router-dom"; import { Switch, Route, Router } from "react-router-dom";
import Home from "./components/pages/Home"; import Home from "./components/pages/Home";
import DocEditor from "./components/pages/DocEditor"; import DocEditor from "./components/pages/DocEditor";
import Settings from "./components/pages/Settings"; import Settings from "./components/pages/Settings";
import VersionHistory from "./components/pages/VersionHistory"; import VersionHistory from "./components/pages/VersionHistory";
import config from "../package.json"; import config from "../package.json";
import PrivateRoute from "@appserver/common/components/PrivateRoute"; import PrivateRoute from "@appserver/common/components/PrivateRoute";
import history from "@appserver/common/history";
import toastr from "studio/toastr"; import toastr from "studio/toastr";
import { updateTempContent } from "@appserver/common/utils"; import { updateTempContent } from "@appserver/common/utils";
import initFilesStore from "./store/InitFilesStore"; import initFilesStore from "./store/InitFilesStore";
@ -79,6 +80,7 @@ class FilesContent extends React.Component {
const { homepage /*, isDesktop*/ } = this.props; const { homepage /*, isDesktop*/ } = this.props;
return ( return (
<Router history={history}>
<Switch> <Switch>
<PrivateRoute <PrivateRoute
exact exact
@ -92,13 +94,14 @@ class FilesContent extends React.Component {
/> />
<PrivateRoute <PrivateRoute
exact exact
path={`${homepage}/:fileId/history`} path={[`${homepage}/:fileId/history`]}
component={VersionHistory} component={VersionHistory}
/> />
<PrivateRoute exact path={homepage} component={Home} /> <PrivateRoute exact path={homepage} component={Home} />
<PrivateRoute path={`${homepage}/filter`} component={Home} /> <PrivateRoute path={`${homepage}/filter`} component={Home} />
<PrivateRoute component={Error404} /> <PrivateRoute component={Error404} />
</Switch> </Switch>
</Router>
); );
} }
} }

View File

@ -372,11 +372,21 @@ class FilesRowContent extends React.PureComponent {
} }
}; };
onShowVersionHistory = (e) => { onShowVersionHistory = () => {
const { homepage } = this.props; const {
const fileId = e.currentTarget.dataset.id; homepage,
isTabletView,
item,
setVerHistoryFileId,
setIsVerHistoryPanel,
} = this.props;
history.push(`${homepage}/${fileId}/history`); if (!isTabletView) {
setVerHistoryFileId(item.id + "");
setIsVerHistoryPanel(true);
} else {
history.push(`${homepage}/${item.id}/history`);
}
}; };
onBadgeClick = () => { onBadgeClick = () => {
@ -771,13 +781,20 @@ export default inject(
selectedFolderStore, selectedFolderStore,
filesActionsStore, filesActionsStore,
mediaViewerDataStore, mediaViewerDataStore,
versionHistoryStore,
}, },
{ item } { item }
) => { ) => {
const { replaceFileStream, setEncryptionAccess } = auth; const { replaceFileStream, setEncryptionAccess } = auth;
const { homepage, culture, isDesktopClient } = auth.settingsStore; const {
homepage,
culture,
isDesktopClient,
isTabletView,
} = auth.settingsStore;
const { setIsLoading, isLoading } = initFilesStore; const { setIsLoading, isLoading } = initFilesStore;
const { secondaryProgressDataStore } = uploadDataStore; const { secondaryProgressDataStore } = uploadDataStore;
const { setIsVerHistoryPanel, setVerHistoryFileId } = versionHistoryStore;
const { const {
iconFormatsStore, iconFormatsStore,
mediaViewersFormatsStore, mediaViewersFormatsStore,
@ -826,6 +843,7 @@ export default inject(
return { return {
isDesktop: isDesktopClient, isDesktop: isDesktopClient,
isTabletView,
homepage, homepage,
viewer: auth.userStore.user, viewer: auth.userStore.user,
culture, culture,
@ -867,6 +885,8 @@ export default inject(
lockFileAction: filesActionsStore.lockFileAction, lockFileAction: filesActionsStore.lockFileAction,
setFavoriteAction: filesActionsStore.setFavoriteAction, setFavoriteAction: filesActionsStore.setFavoriteAction,
setMediaViewerData, setMediaViewerData,
setIsVerHistoryPanel,
setVerHistoryFileId,
}; };
} }
)(withRouter(withTranslation("Home")(observer(FilesRowContent)))); )(withRouter(withTranslation("Home")(observer(FilesRowContent))));

View File

@ -90,7 +90,6 @@ const SimpleFilesRow = (props) => {
setMoveToPanelVisible, setMoveToPanelVisible,
setCopyPanelVisible, setCopyPanelVisible,
openDocEditor, openDocEditor,
setIsLoading,
setIsVerHistoryPanel, setIsVerHistoryPanel,
setVerHistoryFileId, setVerHistoryFileId,
setAction, setAction,
@ -189,8 +188,7 @@ const SimpleFilesRow = (props) => {
const showVersionHistory = () => { const showVersionHistory = () => {
if (!isTabletView) { if (!isTabletView) {
setIsLoading(true); setVerHistoryFileId(id + "");
setVerHistoryFileId(id);
setIsVerHistoryPanel(true); setIsVerHistoryPanel(true);
} else { } else {
history.push(`${homepage}/${id}/history`); history.push(`${homepage}/${id}/history`);
@ -548,7 +546,7 @@ export default inject(
{ item } { item }
) => { ) => {
const { homepage, isTabletView } = auth.settingsStore; const { homepage, isTabletView } = auth.settingsStore;
const { dragging, setDragging, setIsLoading } = initFilesStore; const { dragging, setDragging } = initFilesStore;
const { type, extension, id } = filesStore.fileActionStore; const { type, extension, id } = filesStore.fileActionStore;
const { isRecycleBinFolder, isPrivacyFolder } = treeFoldersStore; const { isRecycleBinFolder, isPrivacyFolder } = treeFoldersStore;
@ -625,7 +623,6 @@ export default inject(
setMoveToPanelVisible, setMoveToPanelVisible,
setCopyPanelVisible, setCopyPanelVisible,
openDocEditor, openDocEditor,
setIsLoading,
setIsVerHistoryPanel, setIsVerHistoryPanel,
setVerHistoryFileId, setVerHistoryFileId,
setAction, setAction,

View File

@ -1,6 +1,5 @@
import React from "react"; import React from "react";
import { withRouter } from "react-router"; import { withRouter } from "react-router";
import RowContainer from "@appserver/components/row-container"; import RowContainer from "@appserver/components/row-container";
import Loaders from "@appserver/common/components/Loaders"; import Loaders from "@appserver/common/components/Loaders";
import VersionRow from "./VersionRow"; import VersionRow from "./VersionRow";
@ -9,7 +8,7 @@ import { inject, observer } from "mobx-react";
class SectionBodyContent extends React.Component { class SectionBodyContent extends React.Component {
componentDidMount() { componentDidMount() {
const { match, setFirstLoad } = this.props; const { match, setFirstLoad } = this.props;
const { fileId } = match.params; const fileId = match.params.fileId || this.props.fileId;
if (fileId) { if (fileId) {
this.getFileVersions(fileId); this.getFileVersions(fileId);
@ -60,12 +59,13 @@ export default inject(
({ auth, initFilesStore, filesStore, versionHistoryStore }) => { ({ auth, initFilesStore, filesStore, versionHistoryStore }) => {
const { setIsLoading, isLoading } = initFilesStore; const { setIsLoading, isLoading } = initFilesStore;
const { setFirstLoad } = filesStore; const { setFirstLoad } = filesStore;
const { versions, fetchFileVersions } = versionHistoryStore; const { versions, fetchFileVersions, fileId } = versionHistoryStore;
return { return {
culture: auth.settingsStore.culture, culture: auth.settingsStore.culture,
isLoading, isLoading,
versions, versions,
fileId,
setFirstLoad, setFirstLoad,
setIsLoading, setIsLoading,

View File

@ -90,12 +90,7 @@ export default inject(
({ auth, initFilesStore, filesStore, versionHistoryStore }) => { ({ auth, initFilesStore, filesStore, versionHistoryStore }) => {
const { isLoading } = initFilesStore; const { isLoading } = initFilesStore;
const { filter, setFilesFilter } = filesStore; const { filter, setFilesFilter } = filesStore;
const { setIsVerHistoryPanel, versions } = versionHistoryStore;
const {
setIsVerHistoryPanel,
setVerHistoryFileId,
versions,
} = versionHistoryStore;
return { return {
isTabletView: auth.settingsStore.isTabletView, isTabletView: auth.settingsStore.isTabletView,
@ -105,7 +100,6 @@ export default inject(
setFilesFilter, setFilesFilter,
setIsVerHistoryPanel, setIsVerHistoryPanel,
setVerHistoryFileId,
}; };
} }
)(withRouter(observer(VersionHistory))); )(withRouter(observer(VersionHistory)));

View File

@ -95,7 +95,6 @@ export default inject(({ auth, initFilesStore, versionHistoryStore }) => {
fileId, fileId,
versions, versions,
setIsVerHistoryPanel, setIsVerHistoryPanel,
setVerHistoryFileId,
isVisible: visible, isVisible: visible,
} = versionHistoryStore; } = versionHistoryStore;
@ -108,6 +107,5 @@ export default inject(({ auth, initFilesStore, versionHistoryStore }) => {
visible, visible,
setIsVerHistoryPanel, setIsVerHistoryPanel,
setVerHistoryFileId,
}; };
})(observer(VersionHistoryPanel)); })(observer(VersionHistoryPanel));

View File

@ -23,6 +23,7 @@ class VersionHistoryStore {
setIsVerHistoryPanel = (isVisible) => { setIsVerHistoryPanel = (isVisible) => {
this.isVisible = isVisible; this.isVisible = isVisible;
!isVisible && this.setVerHistoryFileId(null);
}; };
setVerHistoryFileId = (fileId) => { setVerHistoryFileId = (fileId) => {
@ -35,7 +36,7 @@ class VersionHistoryStore {
}; };
fetchFileVersions = (fileId) => { fetchFileVersions = (fileId) => {
if (this.fileId !== fileId) { if (this.fileId !== fileId || !this.versions) {
this.setVerHistoryFileId(fileId); this.setVerHistoryFileId(fileId);
return api.files return api.files
.getFileVersionInfo(fileId) .getFileVersionInfo(fileId)