diff --git a/frontend/src/components/dirent-list-view/dirent-list-item.js b/frontend/src/components/dirent-list-view/dirent-list-item.js
index 3a8cc4f40f..f6e9ae29ce 100644
--- a/frontend/src/components/dirent-list-view/dirent-list-item.js
+++ b/frontend/src/components/dirent-list-view/dirent-list-item.js
@@ -171,8 +171,10 @@ class DirentListItem extends React.Component {
onItemClick = (e) => {
e.preventDefault();
-
const dirent = this.props.dirent;
+ if (this.state.isRenameing) {
+ return;
+ }
if (Utils.imageCheck(dirent.name)) {
this.props.showImagePopup(dirent);
} else {
@@ -664,19 +666,19 @@ class DirentListItem extends React.Component {
);
const mobileItem = (
-
+ |
{dirent.encoded_thumbnail_src ?
-  :
+  :

}
{dirent.is_locked &&  }
|
-
+ |
{this.state.isRenameing ?
:
- {dirent.name}
+ {dirent.name}
}
{dirent.size && {dirent.size}}
diff --git a/frontend/src/components/shared-repo-list-view/shared-repo-list-item.js b/frontend/src/components/shared-repo-list-view/shared-repo-list-item.js
index 4b43cf1b63..26ade848d4 100644
--- a/frontend/src/components/shared-repo-list-view/shared-repo-list-item.js
+++ b/frontend/src/components/shared-repo-list-view/shared-repo-list-item.js
@@ -2,7 +2,7 @@ import React, { Fragment } from 'react';
import PropTypes from 'prop-types';
import moment from 'moment';
import { Dropdown, DropdownMenu, DropdownToggle, DropdownItem } from 'reactstrap';
-import { Link } from '@reach/router';
+import { Link, navigate } from '@reach/router';
import { Utils } from '../../utils/utils';
import { gettext, siteRoot, isPro, username, folderPermEnabled, isSystemStaff, enableResetEncryptedRepoPassword, isEmailConfigured } from '../../utils/constants';
import ModalPortal from '../../components/modal-portal';
@@ -478,15 +478,22 @@ class SharedRepoListItem extends React.Component {
);
}
+
+ visitRepo = () => {
+ if (!this.state.isRenaming) {
+ navigate(this.repoURL);
+ }
+ }
renderMobileUI = () => {
let { iconUrl, iconTitle, libPath } = this.getRepoComputeParams();
let { repo } = this.props;
+ this.repoURL = libPath;
return (
-  |
-
+ |  |
+
{this.state.isRenaming ?
:
{repo.repo_name}
diff --git a/frontend/src/pages/my-libs/mylib-repo-list-item.js b/frontend/src/pages/my-libs/mylib-repo-list-item.js
index 3064ffc601..9376ad7b0a 100644
--- a/frontend/src/pages/my-libs/mylib-repo-list-item.js
+++ b/frontend/src/pages/my-libs/mylib-repo-list-item.js
@@ -2,7 +2,7 @@ import React, { Fragment } from 'react';
import PropTypes from 'prop-types';
import MediaQuery from 'react-responsive';
import moment from 'moment';
-import { Link } from '@reach/router';
+import { Link, navigate } from '@reach/router';
import { Utils } from '../../utils/utils';
import { seafileAPI } from '../../utils/seafile-api';
import { gettext, siteRoot, storages } from '../../utils/constants';
@@ -116,6 +116,12 @@ class MylibRepoListItem extends React.Component {
}
}
+ visitRepo = () => {
+ if (!this.state.isRenaming && this.props.repo.repo_name) {
+ navigate(this.repoURL);
+ }
+ }
+
onRepoClick = () => {
this.props.onRepoClick(this.props.repo);
}
@@ -308,12 +314,12 @@ class MylibRepoListItem extends React.Component {
let repo = this.props.repo;
let iconUrl = Utils.getLibIconUrl(repo);
let iconTitle = Utils.getLibIconTitle(repo);
- let repoURL = `${siteRoot}library/${repo.repo_id}/${Utils.encodePath(repo.repo_name)}/`;
+ let repoURL = this.repoURL = `${siteRoot}library/${repo.repo_id}/${Utils.encodePath(repo.repo_name)}/`;
return (
|
-  |
-
+ |  |
+
{this.state.isRenaming && (
{
+ navigate(this.repoURL);
+ }
+
render() {
if (this.state.unshared) {
return null;
@@ -208,7 +212,7 @@ class Item extends Component {
let iconVisibility = this.state.showOpIcon ? '' : ' invisible';
let shareIconClassName = 'op-icon sf2-icon-share repo-share-btn' + iconVisibility;
let leaveShareIconClassName = 'op-icon sf2-icon-x3' + iconVisibility;
- let shareRepoUrl =`${siteRoot}library/${data.repo_id}/${Utils.encodePath(data.repo_name)}/`;
+ let shareRepoUrl = this.repoURL = `${siteRoot}library/${data.repo_id}/${Utils.encodePath(data.repo_name)}/`;
const desktopItem = (
@@ -249,8 +253,8 @@ class Item extends Component {
const mobileItem = (
-  |
-
+ |  |
+
{data.repo_name}
{data.owner_name}
{data.size}
diff --git a/frontend/src/pages/starred/starred.js b/frontend/src/pages/starred/starred.js
index efab48e1b6..3cbe54bf24 100644
--- a/frontend/src/pages/starred/starred.js
+++ b/frontend/src/pages/starred/starred.js
@@ -1,6 +1,6 @@
import React, { Component } from 'react';
import { Dropdown, DropdownToggle, DropdownItem } from 'reactstrap';
-import { Link } from '@reach/router';
+import { Link, navigate } from '@reach/router';
import moment from 'moment';
import { seafileAPI } from '../../utils/seafile-api';
import { Utils } from '../../utils/utils';
@@ -170,6 +170,15 @@ class Item extends Component {
});
}
+ visitItem = () => {
+ const data = this.props.data;
+ if (data.is_dir) {
+ navigate(data.dirent_view_url);
+ } else {
+ window.open(data.dirent_view_url);
+ }
+ }
+
render() {
if (this.state.unstarred) {
@@ -206,14 +215,14 @@ class Item extends Component {
const mobileItem = (
|
-
+ |
{
data.thumbnail_url ?
:
}
|
-
+ |
{ data.is_dir ?
{data.obj_name} :
{data.obj_name}
| | |