diff --git a/src/components/media-player/dialog-media-player-browse.ts b/src/components/media-player/dialog-media-player-browse.ts index 311536844fcc..3ef4f00c04fc 100644 --- a/src/components/media-player/dialog-media-player-browse.ts +++ b/src/components/media-player/dialog-media-player-browse.ts @@ -90,14 +90,20 @@ class DialogMediaPlayerBrowse extends LitElement { --dialog-content-padding: 0; } + ha-media-player-browse { + --media-browser-max-height: 100vh; + } + @media (min-width: 800px) { ha-dialog { --mdc-dialog-max-width: 800px; --dialog-surface-position: fixed; --dialog-surface-top: 40px; - --mdc-dialog-max-height: calc(100% - 72px); + --mdc-dialog-max-height: calc(100vh - 72px); } ha-media-player-browse { + position: initial; + --media-browser-max-height: 100vh - 72px; width: 700px; } } diff --git a/src/components/media-player/ha-media-player-browse.ts b/src/components/media-player/ha-media-player-browse.ts index 53dfc5c23019..32146ec8229c 100644 --- a/src/components/media-player/ha-media-player-browse.ts +++ b/src/components/media-player/ha-media-player-browse.ts @@ -10,11 +10,13 @@ import { css, CSSResultArray, customElement, + eventOptions, html, internalProperty, LitElement, property, PropertyValues, + query, TemplateResult, } from "lit-element"; import { classMap } from "lit-html/directives/class-map"; @@ -67,12 +69,21 @@ export class HaMediaPlayerBrowse extends LitElement { @property({ type: Boolean, attribute: "narrow", reflect: true }) private _narrow = false; + @property({ type: Boolean, attribute: "scroll", reflect: true }) + private _scrolled = false; + @internalProperty() private _loading = false; @internalProperty() private _error?: { message: string; code: string }; @internalProperty() private _mediaPlayerItems: MediaPlayerItem[] = []; + @query(".header") private _header?: HTMLDivElement; + + @query(".content") private _content?: HTMLDivElement; + + private _headerOffsetHeight = 0; + private _resizeObserver?: ResizeObserver; public connectedCallback(): void { @@ -140,274 +151,283 @@ export class HaMediaPlayerBrowse extends LitElement { return html`