This PR paves the way for a cleaner implementation of playlist searching. The only user-facing change is a subtle difference in the way playlist loading is indicated (the spinning cog). If more UI interactions depend on it, the full progress bar felt a bit heavyweight, and besides I think for most users the loading should only be a matter of a few seconds.
Aside from some extraction and tidying, the most notable improvement here is the introduction of page-level caching for playlists.
This means that logging into Exportify and paging through playlists won't require any more requests than is currently the case, but certain operations like searching and exporting all playlists will fully populate the cache before proceeding, and use whatever has already been cached.
This PR paves the way for a cleaner implementation of playlist searching. The only user-facing change is a subtle difference in the way playlist loading is indicated (the spinning cog). If more UI interactions depend on it, the full progress bar felt a bit heavyweight, and besides I think for most users the loading should only be a matter of a few seconds.
Aside from some extraction and tidying, the most notable improvement here is the introduction of page-level caching for playlists.
This means that logging into Exportify and paging through playlists won't require any more requests than is currently the case, but certain operations like searching and exporting all playlists will fully populate the cache before proceeding, and use whatever has already been cached.