|
|
@ -22499,8 +22499,17 @@ class PlexMeetsHomeAssistant extends HTMLElement {
|
|
|
|
this.searchInputElem.style.display = 'none';
|
|
|
|
this.searchInputElem.style.display = 'none';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (this.card) {
|
|
|
|
if (this.card) {
|
|
|
|
const marginRight = 10; // needs to be equal to .container margin right
|
|
|
|
// Todo: figure why 10.3 works
|
|
|
|
const areaSize = this.card.offsetWidth - parseInt(this.card.style.paddingRight, 10) - parseInt(this.card.style.paddingLeft, 10);
|
|
|
|
const marginRight = 10.3; // needs to be equal to .container margin right
|
|
|
|
|
|
|
|
const getAreaSize = () => {
|
|
|
|
|
|
|
|
if (this.card) {
|
|
|
|
|
|
|
|
return (this.card.getBoundingClientRect().width -
|
|
|
|
|
|
|
|
parseInt(this.card.style.paddingRight, 10) -
|
|
|
|
|
|
|
|
parseInt(this.card.style.paddingLeft, 10));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
const areaSize = getAreaSize();
|
|
|
|
const postersInRow = Math.floor(areaSize / this.minWidth);
|
|
|
|
const postersInRow = Math.floor(areaSize / this.minWidth);
|
|
|
|
if (areaSize > 0) {
|
|
|
|
if (areaSize > 0) {
|
|
|
|
CSS_STYLE.width = areaSize / postersInRow - marginRight;
|
|
|
|
CSS_STYLE.width = areaSize / postersInRow - marginRight;
|
|
|
@ -22508,6 +22517,15 @@ class PlexMeetsHomeAssistant extends HTMLElement {
|
|
|
|
const episodesInRow = Math.floor(areaSize / this.minEpisodeWidth);
|
|
|
|
const episodesInRow = Math.floor(areaSize / this.minEpisodeWidth);
|
|
|
|
CSS_STYLE.episodeWidth = Math.floor(areaSize / episodesInRow - marginRight);
|
|
|
|
CSS_STYLE.episodeWidth = Math.floor(areaSize / episodesInRow - marginRight);
|
|
|
|
CSS_STYLE.episodeHeight = Math.round(CSS_STYLE.episodeWidth * CSS_STYLE.episodeRatio);
|
|
|
|
CSS_STYLE.episodeHeight = Math.round(CSS_STYLE.episodeWidth * CSS_STYLE.episodeRatio);
|
|
|
|
|
|
|
|
// hack to make sure cards width is always calculated properly, todo solve better in the future
|
|
|
|
|
|
|
|
setTimeout(() => {
|
|
|
|
|
|
|
|
if (this.card) {
|
|
|
|
|
|
|
|
const newAreaSize = getAreaSize();
|
|
|
|
|
|
|
|
if (newAreaSize !== areaSize) {
|
|
|
|
|
|
|
|
this.renderPage();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}, 1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if (this.renderPageRetries < 10) {
|
|
|
|
else if (this.renderPageRetries < 10) {
|
|
|
|
// sometimes it loop forever, todo: properly fix!
|
|
|
|
// sometimes it loop forever, todo: properly fix!
|
|
|
@ -23656,6 +23674,7 @@ class PlexMeetsHomeAssistant extends HTMLElement {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
const container = document.createElement('div');
|
|
|
|
const container = document.createElement('div');
|
|
|
|
container.className = 'plexMeetsContainer';
|
|
|
|
container.className = 'plexMeetsContainer';
|
|
|
|
|
|
|
|
// console.log(CSS_STYLE);
|
|
|
|
container.style.width = `${CSS_STYLE.width}px`;
|
|
|
|
container.style.width = `${CSS_STYLE.width}px`;
|
|
|
|
if (this.displayTitleMain || this.displaySubtitleMain) {
|
|
|
|
if (this.displayTitleMain || this.displaySubtitleMain) {
|
|
|
|
container.style.marginBottom = '10px';
|
|
|
|
container.style.marginBottom = '10px';
|
|
|
|