diff --git a/src/assets/css/librarybrowser.css b/src/assets/css/librarybrowser.css index 58356366be..ac04bbd955 100644 --- a/src/assets/css/librarybrowser.css +++ b/src/assets/css/librarybrowser.css @@ -250,6 +250,22 @@ padding-bottom: 10vh; } +.primaryImageWrapper { + display: none; +} + +.primaryImageWrapper > img { + display: block; + margin: 0 auto; + max-width: 80vw; + max-height: 50vh; +} + +.layout-mobile .primaryImageWrapper { + display: block; + flex: 1 0 auto; +} + @media all and (min-width: 40em) { .dashboardDocument .adminDrawerLogo, .dashboardDocument .mainDrawerButton { @@ -453,8 +469,7 @@ } .layout-mobile .itemBackdrop { - background-attachment: scroll; - height: 26.5vh; + display: none; } .layout-desktop .itemBackdrop::after { @@ -614,6 +629,7 @@ } .layout-mobile .mainDetailButtons { + flex: 2 0 70%; margin-top: 1em; margin-bottom: 0.5em; } @@ -638,9 +654,9 @@ } .layout-mobile .detailPagePrimaryContainer { - display: block; + flex-wrap: wrap; position: relative; - padding: 0.5em 3.3% 0.5em; + padding: 4.5rem 3.3% 0.5rem; } .layout-tv #itemDetailPage:not(.noBackdrop) .detailPagePrimaryContainer, @@ -669,6 +685,10 @@ flex: 1 0 0; } +.layout-mobile .infoWrapper { + flex: 2 0 70%; +} + .infoText { white-space: nowrap; text-overflow: ellipsis; @@ -729,7 +749,8 @@ background-size: contain; } -.noBackdrop .detailLogo { +.noBackdrop .detailLogo, +.layout-mobile .detailLogo { display: none; } diff --git a/src/controllers/itemDetails/index.html b/src/controllers/itemDetails/index.html index b2604e0341..d4d34cc126 100644 --- a/src/controllers/itemDetails/index.html +++ b/src/controllers/itemDetails/index.html @@ -5,6 +5,10 @@
+
+ +
+
diff --git a/src/controllers/itemDetails/index.js b/src/controllers/itemDetails/index.js index df029d049d..fe988180f0 100644 --- a/src/controllers/itemDetails/index.js +++ b/src/controllers/itemDetails/index.js @@ -552,7 +552,7 @@ function renderDetailPageBackdrop(page, item, apiClient) { let hasbackdrop = false; const itemBackdropElement = page.querySelector('#itemBackdrop'); - if (!layoutManager.mobile && !userSettings.detailsBanner()) { + if (layoutManager.mobile || !userSettings.detailsBanner()) { return false; } @@ -589,6 +589,19 @@ function renderDetailPageBackdrop(page, item, apiClient) { return hasbackdrop; } +function renderPrimaryImage(page, item, apiClient) { + if (item?.ImageTags?.Primary) { + const imageUrl = apiClient.getScaledImageUrl(item.Id, { + type: 'Primary', + maxWidth: dom.getScreenWidth(), + tag: item.ImageTags.Primary + }); + + page.querySelector('#primaryImage').src = imageUrl; + page.querySelector('.primaryImageWrapper')?.classList.remove('hide'); + } +} + function reloadFromItem(instance, page, params, item, user) { const apiClient = ServerConnections.getApiClient(item.ServerId); @@ -601,6 +614,9 @@ function reloadFromItem(instance, page, params, item, user) { renderLogo(page, item, apiClient); renderDetailPageBackdrop(page, item, apiClient); } + if (layoutManager.mobile) { + renderPrimaryImage(page, item, apiClient); + } renderBackdrop(item); // Render the main information for the item @@ -2073,7 +2089,7 @@ export default function (view, params) { view.addEventListener('viewshow', function (e) { const page = this; - libraryMenu.setTransparentMenu(true); + libraryMenu.setTransparentMenu(!layoutManager.mobile); if (e.detail.isRestored) { if (currentItem) {