mirror of
https://github.com/Lidarr/Lidarr
synced 2025-12-07 17:05:19 +01:00
Fixed: Scroll long overviews for artists and albums
This commit is contained in:
parent
6ac1b4ce38
commit
c8a3833e2b
4 changed files with 23 additions and 32 deletions
|
|
@ -5,7 +5,6 @@
|
||||||
.header {
|
.header {
|
||||||
position: relative;
|
position: relative;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 310px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.backdrop {
|
.backdrop {
|
||||||
|
|
@ -30,20 +29,18 @@
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
color: var(--white);
|
color: var(--white);
|
||||||
|
gap: 35px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.cover {
|
.cover {
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
margin-right: 35px;
|
|
||||||
width: 250px;
|
width: 250px;
|
||||||
height: 250px;
|
height: 250px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.info {
|
.info {
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
flex-grow: 1;
|
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.titleRow {
|
.titleRow {
|
||||||
|
|
@ -59,6 +56,8 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.title {
|
.title {
|
||||||
|
overflow: hidden;
|
||||||
|
max-height: calc(2 * 50px);
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
font-size: 50px;
|
font-size: 50px;
|
||||||
line-height: 50px;
|
line-height: 50px;
|
||||||
|
|
@ -133,8 +132,12 @@
|
||||||
|
|
||||||
.overview {
|
.overview {
|
||||||
flex: 1 0 auto;
|
flex: 1 0 auto;
|
||||||
|
overflow-x: auto;
|
||||||
margin-top: 8px;
|
margin-top: 8px;
|
||||||
min-height: 0;
|
min-height: 0;
|
||||||
|
max-height: 150px;
|
||||||
|
text-wrap: balance;
|
||||||
|
white-space: pre-wrap;
|
||||||
font-size: $intermediateFontSize;
|
font-size: $intermediateFontSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -152,6 +155,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.title {
|
.title {
|
||||||
|
max-height: calc(3 * 30px);
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
font-size: 30px;
|
font-size: 30px;
|
||||||
line-height: 30px;
|
line-height: 30px;
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,6 @@ import Tooltip from 'Components/Tooltip/Tooltip';
|
||||||
import { align, icons, kinds, sizes, tooltipPositions } from 'Helpers/Props';
|
import { align, icons, kinds, sizes, tooltipPositions } from 'Helpers/Props';
|
||||||
import OrganizePreviewModalConnector from 'Organize/OrganizePreviewModalConnector';
|
import OrganizePreviewModalConnector from 'Organize/OrganizePreviewModalConnector';
|
||||||
import RetagPreviewModalConnector from 'Retag/RetagPreviewModalConnector';
|
import RetagPreviewModalConnector from 'Retag/RetagPreviewModalConnector';
|
||||||
import fonts from 'Styles/Variables/fonts';
|
|
||||||
import TrackFileEditorModal from 'TrackFile/Editor/TrackFileEditorModal';
|
import TrackFileEditorModal from 'TrackFile/Editor/TrackFileEditorModal';
|
||||||
import formatBytes from 'Utilities/Number/formatBytes';
|
import formatBytes from 'Utilities/Number/formatBytes';
|
||||||
import translate from 'Utilities/String/translate';
|
import translate from 'Utilities/String/translate';
|
||||||
|
|
@ -36,9 +35,6 @@ import AlbumDetailsLinks from './AlbumDetailsLinks';
|
||||||
import AlbumDetailsMediumConnector from './AlbumDetailsMediumConnector';
|
import AlbumDetailsMediumConnector from './AlbumDetailsMediumConnector';
|
||||||
import styles from './AlbumDetails.css';
|
import styles from './AlbumDetails.css';
|
||||||
|
|
||||||
const intermediateFontSize = parseInt(fonts.intermediateFontSize);
|
|
||||||
const lineHeight = parseFloat(fonts.lineHeight);
|
|
||||||
|
|
||||||
function getFanartUrl(images) {
|
function getFanartUrl(images) {
|
||||||
return _.find(images, { coverType: 'fanart' })?.url;
|
return _.find(images, { coverType: 'fanart' })?.url;
|
||||||
}
|
}
|
||||||
|
|
@ -544,12 +540,8 @@ class AlbumDetails extends Component {
|
||||||
/>
|
/>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div className={styles.overview} title={overview}>
|
|
||||||
<TextTruncate
|
<div className={styles.overview}>{overview}</div>
|
||||||
line={Math.floor(125 / (intermediateFontSize * lineHeight))}
|
|
||||||
text={overview}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,6 @@
|
||||||
.header {
|
.header {
|
||||||
position: relative;
|
position: relative;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 310px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.errorMessage {
|
.errorMessage {
|
||||||
|
|
@ -36,20 +35,18 @@
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
color: var(--white);
|
color: var(--white);
|
||||||
|
gap: 35px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.poster {
|
.poster {
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
margin-right: 35px;
|
|
||||||
width: 250px;
|
width: 250px;
|
||||||
height: 250px;
|
height: 250px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.info {
|
.info {
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
flex-grow: 1;
|
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.metadataMessage {
|
.metadataMessage {
|
||||||
|
|
@ -72,6 +69,8 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.title {
|
.title {
|
||||||
|
overflow: hidden;
|
||||||
|
max-height: calc(2 * 50px);
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
font-size: 50px;
|
font-size: 50px;
|
||||||
line-height: 50px;
|
line-height: 50px;
|
||||||
|
|
@ -144,8 +143,12 @@
|
||||||
|
|
||||||
.overview {
|
.overview {
|
||||||
flex: 1 0 auto;
|
flex: 1 0 auto;
|
||||||
|
overflow-x: auto;
|
||||||
margin-top: 8px;
|
margin-top: 8px;
|
||||||
min-height: 0;
|
min-height: 0;
|
||||||
|
max-height: 150px;
|
||||||
|
text-wrap: balance;
|
||||||
|
white-space: pre-wrap;
|
||||||
font-size: $intermediateFontSize;
|
font-size: $intermediateFontSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -163,6 +166,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.title {
|
.title {
|
||||||
|
max-height: calc(3 * 30px);
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
font-size: 30px;
|
font-size: 30px;
|
||||||
line-height: 30px;
|
line-height: 30px;
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
import _ from 'lodash';
|
import _ from 'lodash';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import React, { Component } from 'react';
|
import React, { Component } from 'react';
|
||||||
import TextTruncate from 'react-text-truncate';
|
|
||||||
import ArtistPoster from 'Artist/ArtistPoster';
|
import ArtistPoster from 'Artist/ArtistPoster';
|
||||||
import DeleteArtistModal from 'Artist/Delete/DeleteArtistModal';
|
import DeleteArtistModal from 'Artist/Delete/DeleteArtistModal';
|
||||||
import EditArtistModalConnector from 'Artist/Edit/EditArtistModalConnector';
|
import EditArtistModalConnector from 'Artist/Edit/EditArtistModalConnector';
|
||||||
|
|
@ -28,7 +27,6 @@ import { align, icons, kinds, sizes, tooltipPositions } from 'Helpers/Props';
|
||||||
import OrganizePreviewModalConnector from 'Organize/OrganizePreviewModalConnector';
|
import OrganizePreviewModalConnector from 'Organize/OrganizePreviewModalConnector';
|
||||||
import RetagPreviewModalConnector from 'Retag/RetagPreviewModalConnector';
|
import RetagPreviewModalConnector from 'Retag/RetagPreviewModalConnector';
|
||||||
import QualityProfileNameConnector from 'Settings/Profiles/Quality/QualityProfileNameConnector';
|
import QualityProfileNameConnector from 'Settings/Profiles/Quality/QualityProfileNameConnector';
|
||||||
import fonts from 'Styles/Variables/fonts';
|
|
||||||
import TrackFileEditorModal from 'TrackFile/Editor/TrackFileEditorModal';
|
import TrackFileEditorModal from 'TrackFile/Editor/TrackFileEditorModal';
|
||||||
import formatBytes from 'Utilities/Number/formatBytes';
|
import formatBytes from 'Utilities/Number/formatBytes';
|
||||||
import translate from 'Utilities/String/translate';
|
import translate from 'Utilities/String/translate';
|
||||||
|
|
@ -42,9 +40,6 @@ import ArtistGenres from './ArtistGenres';
|
||||||
import ArtistTagsConnector from './ArtistTagsConnector';
|
import ArtistTagsConnector from './ArtistTagsConnector';
|
||||||
import styles from './ArtistDetails.css';
|
import styles from './ArtistDetails.css';
|
||||||
|
|
||||||
const defaultFontSize = parseInt(fonts.defaultFontSize);
|
|
||||||
const lineHeight = parseFloat(fonts.lineHeight);
|
|
||||||
|
|
||||||
function getFanartUrl(images) {
|
function getFanartUrl(images) {
|
||||||
return _.find(images, { coverType: 'fanart' })?.url;
|
return _.find(images, { coverType: 'fanart' })?.url;
|
||||||
}
|
}
|
||||||
|
|
@ -394,7 +389,7 @@ class ArtistDetails extends Component {
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className={styles.title}>
|
<div className={styles.title} title={artistName}>
|
||||||
{artistName}
|
{artistName}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
@ -595,12 +590,8 @@ class ArtistDetails extends Component {
|
||||||
|
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
<div className={styles.overview}>
|
|
||||||
<TextTruncate
|
<div className={styles.overview}>{overview}</div>
|
||||||
line={Math.floor(125 / (defaultFontSize * lineHeight))}
|
|
||||||
text={overview}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue