I noticed that the previous gallery logic had a dependency chain of useMemo hooks:
filteredMediaInfos -> mediaCoverPhotos -> mediaGalleryItems. This might be inefficient. If one dependency changes, all of them are fired.
Here is the React docs section on hook chains (with useEffect examples): https://react.dev/learn/you-might-not-need-an-effect#chains-of-computations
Merged all of these into one hook.
Depends on D7995