From 0f950ed50cabad121f5244972aecdf54df09e3eb Mon Sep 17 00:00:00 2001 From: James Barnsley Date: Sun, 4 Sep 2022 19:52:48 +1200 Subject: [PATCH] Browse URI + name syntax, fixes #829 --- src/js/components/AddedFrom.js | 6 +++++- src/js/components/URILink.js | 3 ++- src/js/views/Library/Browse.js | 2 +- src/js/views/Library/BrowseDirectory.js | 2 +- src/js/views/Library/Library.js | 2 +- 5 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/js/components/AddedFrom.js b/src/js/components/AddedFrom.js index db12102b..7bdfdc1a 100644 --- a/src/js/components/AddedFrom.js +++ b/src/js/components/AddedFrom.js @@ -28,8 +28,12 @@ export default ({ break; case 'browse': + let directory = ''; + if (uri.indexOf('file://')) { + directory = uri.substr(uri.lastIndexOf('/'), uri.length); + } link = ( - + ); diff --git a/src/js/components/URILink.js b/src/js/components/URILink.js index eb67544c..59ca313e 100755 --- a/src/js/components/URILink.js +++ b/src/js/components/URILink.js @@ -10,6 +10,7 @@ export default memo(({ handleContextMenu, children, unencoded, + suffix, }) => { let to = null; const uriType = type || uriTypeHelper(rawUri); @@ -37,7 +38,7 @@ export default memo(({ break; case 'browse': - to = `/library/browse/${uri}`; + to = `/library/browse/${uri}${suffix ? `/${suffix}` : ''}`; break; case 'recommendations': diff --git a/src/js/views/Library/Browse.js b/src/js/views/Library/Browse.js index d2ef5e6e..9bf45ea0 100755 --- a/src/js/views/Library/Browse.js +++ b/src/js/views/Library/Browse.js @@ -124,7 +124,7 @@ class Browse extends React.Component { grid_items.push({ name: subdirectory.name, - link: `/library/browse/${encodeURIComponent(subdirectory.name)}/${encodeUri(subdirectory.uri)}`, + link: `/library/browse/${encodeUri(subdirectory.uri)}/${encodeURIComponent(subdirectory.name)}`, icons: formatImages(subdirectory.icons), }); } diff --git a/src/js/views/Library/BrowseDirectory.js b/src/js/views/Library/BrowseDirectory.js index 7f8d8c35..459b84d7 100755 --- a/src/js/views/Library/BrowseDirectory.js +++ b/src/js/views/Library/BrowseDirectory.js @@ -40,7 +40,7 @@ const Subdirectories = ({ items, view }) => { // Only define the link for directories; allows URILink to intelligently route based on type const link = (item) => ( item.type === 'directory' - ? `/library/browse/${encodeURIComponent(item.name)}/${encodeUri(item.uri)}` + ? `/library/browse/${encodeUri(item.uri)}/${encodeURIComponent(item.name)}` : null ); diff --git a/src/js/views/Library/Library.js b/src/js/views/Library/Library.js index 36871af1..236774b2 100644 --- a/src/js/views/Library/Library.js +++ b/src/js/views/Library/Library.js @@ -30,7 +30,7 @@ export default () => ( element={} /> } />