Skip to content
This repository was archived by the owner on Oct 4, 2023. It is now read-only.

Refactor lineup hooks#2760

Merged
sliptype merged 3 commits into
mainfrom
sk-refactor-lineup-hooks
Feb 2, 2023
Merged

Refactor lineup hooks#2760
sliptype merged 3 commits into
mainfrom
sk-refactor-lineup-hooks

Conversation

@sliptype

@sliptype sliptype commented Feb 2, 2023

Copy link
Copy Markdown
Contributor

Description

  • Refactor useOfflineCollectionLineup and useOfflineFavoritesLineup into useCollectionLineup and useFavoritesLineup at the component level
  • Still passing in the function the fetch the data from remote because we need it in TracksTab to handle all the pagination
    Might make sense to push all the pagination and filter logic into useFavoritesLineup but wanted to keep this pr fairly small. @dylanjeffers what do you think about this?

Dragons

relatively safe

How Has This Been Tested?

Please describe the tests that you ran to verify your changes. Provide repro instructions & any configuration.

How will this change be monitored?

For features that are critical or could fail silently please describe the monitoring/alerting being added.

Feature Flags

Are all new features properly feature flagged? Describe added feature flags.

@sliptype sliptype requested review from a team and dylanjeffers February 2, 2023 00:30

@dylanjeffers dylanjeffers left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i like these improvements a lot. given the track-list fetch function with the useEffect, all good not adding it into the hook itself for now

}, [dispatch, collectionUid, userUid])

useOfflineCollectionLineup(collectionId, handleFetchLineupOnline)
const { entries, status } = useCollectionLineup(collectionId, fetchLineup)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

so clean!

return getCollection(state, { id: collectionId as number })
})
const collectionTracks = useSelector(getCollectionTracksLineup)
const collectionTrackUidMap = collectionTracks.entries.reduce(

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

would it be more performant to make the trackUidMap in the useSelector? maybe need an equality check there or somethnig?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah probably, this isn't causing rerenders but probably expensive to compute on every render

const savedTrackUids: string[] = useSelector((state) => {
return getSavedTracksLineup(state).entries.map(({ uid }) => uid)
}, isEqual)
const { entries } = useFavoritesLineup(fetchSaves)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

so if im understanding, the fetchSaves whether called in this method or above will ultimately update the entries we select and return in this hook? makes sense but yeah a bit annoying we have to do a useEffect here as well. so could we potentially just rerun the fetchSaves call in the useFavoritesLineup when fetchSaves itself is a new function? maybe that's even more complicated. tldr im fine with this, but just asking qs

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rerunning fetchSaves when it changes becomes complicated bc we usually only want to run it on reachability change. I think passing in filterValue and moving all the pagination and filtering into the hook would be cleaner. I'll think on it some more

@sliptype sliptype merged commit 90579c5 into main Feb 2, 2023
@sliptype sliptype deleted the sk-refactor-lineup-hooks branch February 2, 2023 16:06
audius-infra pushed a commit that referenced this pull request Feb 4, 2023
[45f122f] [C-2015] Debounce the callbacks for the download toggles for favorites and collections (#2766) Kyle Shanks
[e0cafef] [C-2034] Cancel all download jobs on log out (#2775) Andrew Mendelsohn
[ab581b1] C-2022 C-1970 Fix for: When offline and not fully downloaded, queued jobs keep running and fail (#2773) nicoback2
[1c674a9] C-1958 Show # of downloaded tracks in collection card instead of actual # of tracks in collection when offline (#2757) nicoback2
[014afaa] [C-2036] Fix modals not closing on click outside (#2776) Marcus Pasell
[07b7961] [DMs] Redo create chat modal (#2706) Marcus Pasell
[8b89acf] [C-1994] Add download indicator to the track screen (#2774) Kyle Shanks
[70619cd] Improve download toggle, download progress and fetch (#2772) Raymond Jacobson
[860291d] [C-1941] Refresh queue when download toggle is flipped (#2770) Raymond Jacobson
[3e8e33b] Fix CI (#2771) Michael Piazza
[f94bcc9] [C-2012] [C-1999] [C-1734] Fix collection image loading (#2769) Sebastian Klingler
[80da94c] Consume .env.git to properly tag Sentry release (#2767) Michael Piazza
[b2f96f6] [C-1974] Add batch remove downloads (#2764) Dylan Jeffers
[5ff30b4] [C-1921] Make sure to download local saves (#2763) Raymond Jacobson
[de5d5fd] [C-2006] Fix download toggle when offline (#2762) Raymond Jacobson
[66449a1] [PAY-868] Handle follow and tip send states across (#2756) Saliou Diallo
[171e46e] [PAY-866] Add new remix settings - Part 1 (#2708) Saliou Diallo
[90579c5] Refactor lineup hooks (#2760) Sebastian Klingler
[5bfa0dc] C-2002 Un-download deleted playlists on sync (#2759) nicoback2
[1dd8b68] [C-2001] Remove queued downloads if deleted/unlisted/etc (#2761) Raymond Jacobson
[265e666] [C-1968] Fix dequeue track (#2758) Dylan Jeffers
[fbaf5c0] [C-1992] Fix unfavorite downloaded track (#2755) Dylan Jeffers
[73563f8] [C-1957] [C-1929] Improve TrackList and offline mode performance (#2753) Sebastian Klingler
[b771776] [C-1987][C-1936][C-2009] Queue for collection downloads (#2751) Andrew Mendelsohn
[016342d] [C-1985] Remove collection tracks when removing favorites (#2749) Dylan Jeffers
[5b675c8] [PAY-881] Mobile messages (chats) list screen (#2742) Reed
[d2b1c4c] C-1989 Fix "Download is not re-starting even though there are still many tracks that need to be downloaded" (#2746) nicoback2
[fec0134] [PAY-872][PAY-873][PAY-874] More premium content QA fixes (#2741) Saliou Diallo
[9530cae] Hide buttons on profiles when offline and remove timeout (#2750) Raymond Jacobson
[d658e3e] [C-1952] Show download successful when offline in status indicator (#2733) Raymond Jacobson
[bbb58e8] [C-1950] Smooth offline<>online playback (#2748) Raymond Jacobson
[059f79e] Hide share/repost when offline C-1942 (#2747) nicoback2
[6458512] [C-2000] Fix collections not downloading on favorites download (#2745) Dylan Jeffers
[4ba882c] Do not write subscribe to discovery on auto-subscribe after follow (#2562) Michelle Brier
[e21edc7] Fix download counter in error state (#2744) Raymond Jacobson
[3ad7a55] [PAY-777] Add premium content track upload on mobile - Part 3 (#2721) Saliou Diallo
[ad3b6d2] Update undownload favorites to hide progress earlier (#2743) Kyle Shanks
[16a45f5] [C-1938] Remove tracks within collections when toggling off favorites (#2737) Raymond Jacobson
[5e008a3] [C-1977] Hide more by this artist when offline (#2734) Raymond Jacobson
[b1d261f] Improve useFetchAllFavoritedTracks fetch (#2740) Dylan Jeffers
[a39f874] [C-1993 C-1995] Refactor download switch, improve collection header (#2739) Dylan Jeffers
[36687e5] [C-1937, C-1964] Add pagination to the mobile favorites screen and fix the title width for deleted track list items (#2738) Kyle Shanks
[adc74fa] [C-1976] Hide/disable overflow menus when offline (#2735) Raymond Jacobson
[18e63ff] [C-1938] Disable downloading from toggle when offline (#2736) Raymond Jacobson
[a0d3097] [C-1991] Fix downloading rive animation location (#2732) Raymond Jacobson
[1e8d9d5] [C-1960] Do not show favorite/repost on own (#2723) Raymond Jacobson
[563842e] [C-1930] Prevent self favorite/repost/follow (#2724) Raymond Jacobson
[4975945] [C-1916 C-1982 QA-328] Fix smart-collection artwork (#2731) Dylan Jeffers
[bbc2477] [C-1963] Add download progress bar (#2730) Raymond Jacobson
[5ef3d06] [C-1782] Use proxy for sentry dsn (#2684) Raymond Jacobson
[2c2cd82] [C-1962] Update offline icons/animations (#2725) Raymond Jacobson
[8607f9c] Fix crash on favorites screen if you start the app offline C-1943 C-1951 (#2726) nicoback2
[74c9324] [C-1986] Use RNFetchBlob for offline mode (#2728) Sebastian Klingler
[3084ea9] Refactor ArtistChip (#2715) Marcus Pasell
[7a9cec6] [C-1973] Improve offline image downloading (#2720) Sebastian Klingler
[075aa5b] Fix some web premium content bugs (#2709) Saliou Diallo
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants