mirror of
https://github.com/navidrome/navidrome.git
synced 2025-06-07 19:03:18 +03:00
Fix lag on albumList toggling (#1136)
This commit is contained in:
parent
4217c75c9f
commit
0941fbc0cd
@ -1,5 +1,5 @@
|
|||||||
import React from 'react'
|
import React, { useEffect } from 'react'
|
||||||
import { useSelector } from 'react-redux'
|
import { useSelector, useDispatch } from 'react-redux'
|
||||||
import { Redirect, useLocation } from 'react-router-dom'
|
import { Redirect, useLocation } from 'react-router-dom'
|
||||||
import {
|
import {
|
||||||
AutocompleteInput,
|
AutocompleteInput,
|
||||||
@ -20,7 +20,7 @@ import AlbumGridView from './AlbumGridView'
|
|||||||
import { AddToPlaylistDialog } from '../dialogs'
|
import { AddToPlaylistDialog } from '../dialogs'
|
||||||
import albumLists, { defaultAlbumList } from './albumLists'
|
import albumLists, { defaultAlbumList } from './albumLists'
|
||||||
import config from '../config'
|
import config from '../config'
|
||||||
import useSelectedFields from '../common/useSelectedFields'
|
import { setToggleableFields, setOmittedFields } from '../actions'
|
||||||
|
|
||||||
const AlbumFilter = (props) => {
|
const AlbumFilter = (props) => {
|
||||||
const translate = useTranslate()
|
const translate = useTranslate()
|
||||||
@ -66,6 +66,10 @@ const AlbumList = (props) => {
|
|||||||
const albumView = useSelector((state) => state.albumView)
|
const albumView = useSelector((state) => state.albumView)
|
||||||
const [perPage, perPageOptions] = useAlbumsPerPage(width)
|
const [perPage, perPageOptions] = useAlbumsPerPage(width)
|
||||||
const location = useLocation()
|
const location = useLocation()
|
||||||
|
const toggleableAlbumFields = useSelector(
|
||||||
|
(state) => state.settings.toggleableFields
|
||||||
|
)?.album
|
||||||
|
const dispatch = useDispatch()
|
||||||
|
|
||||||
const albumListType = location.pathname
|
const albumListType = location.pathname
|
||||||
.replace(/^\/album/, '')
|
.replace(/^\/album/, '')
|
||||||
@ -74,17 +78,24 @@ const AlbumList = (props) => {
|
|||||||
// Workaround to force album columns to appear the first time.
|
// Workaround to force album columns to appear the first time.
|
||||||
// See https://github.com/navidrome/navidrome/pull/923#issuecomment-833004842
|
// See https://github.com/navidrome/navidrome/pull/923#issuecomment-833004842
|
||||||
// TODO: Find a better solution
|
// TODO: Find a better solution
|
||||||
useSelectedFields({
|
|
||||||
resource: 'album',
|
useEffect(() => {
|
||||||
columns: {
|
if (!toggleableAlbumFields) {
|
||||||
artist: 'artist',
|
dispatch(
|
||||||
songCount: 'songCount',
|
setToggleableFields({
|
||||||
playCount: 'playCount',
|
album: {
|
||||||
year: 'year',
|
artist: true,
|
||||||
duration: 'duration',
|
songCount: true,
|
||||||
rating: 'rating',
|
playCount: true,
|
||||||
|
year: true,
|
||||||
|
duration: true,
|
||||||
|
rating: true,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
)
|
||||||
|
dispatch(setOmittedFields({ album: [] }))
|
||||||
|
}
|
||||||
|
}, [dispatch, toggleableAlbumFields])
|
||||||
|
|
||||||
// If it does not have filter/sort params (usually coming from Menu),
|
// If it does not have filter/sort params (usually coming from Menu),
|
||||||
// reload with correct filter/sort params
|
// reload with correct filter/sort params
|
||||||
|
Loading…
x
Reference in New Issue
Block a user