@@ -245,6 +245,36 @@ if (document.readyState === 'loading') {
245245 setupPendingShare ( )
246246}
247247
248+ /** Fixes empty file list when switching between grid and list view. */
249+ function setupGridViewScrollFix ( ) : void {
250+ let filesListEl : Element | null = null
251+ let classObserver : MutationObserver | null = null
252+
253+ const domObserver = new MutationObserver ( ( ) => {
254+ const el = document . querySelector ( '.files-list' )
255+ if ( ! el || el === filesListEl ) return
256+ filesListEl = el
257+
258+ let prevIsGrid = el . classList . contains ( 'files-list--grid' )
259+ classObserver ?. disconnect ( )
260+ classObserver = new MutationObserver ( ( ) => {
261+ const isGrid = el . classList . contains ( 'files-list--grid' )
262+ if ( isGrid === prevIsGrid ) return
263+ prevIsGrid = isGrid
264+ setTimeout ( ( ) => el . dispatchEvent ( new Event ( 'scroll' , { bubbles : true } ) ) , 0 )
265+ } )
266+ classObserver . observe ( el , { attributes : true , attributeFilter : [ 'class' ] } )
267+ } )
268+
269+ domObserver . observe ( document . body , { childList : true , subtree : true } )
270+ }
271+
272+ if ( document . readyState === 'loading' ) {
273+ document . addEventListener ( 'DOMContentLoaded' , setupGridViewScrollFix )
274+ } else {
275+ setupGridViewScrollFix ( )
276+ }
277+
248278window . addEventListener ( 'DOMContentLoaded' , function ( ) {
249279 const breadcrumb = document . querySelector ( '.breadcrumb' )
250280 const empty = document . querySelector ( '.files-list__empty' )
0 commit comments