|
@@ -22,16 +22,21 @@ import {
|
|
|
} from "../../redux/actions/creators/audio";
|
|
|
import { useEffect } from "react";
|
|
|
import { actionGetProfileData } from "../../redux/actions/creators/profile";
|
|
|
-import { jwtDecode } from "../../utils/jwtDecoder";
|
|
|
import { actionGetPlaylistsCount } from "../../redux/actions/creators/playlists";
|
|
|
+import { createSelector } from "reselect";
|
|
|
+
|
|
|
+const tracksState = createSelector((store) => store.tracks, tracks => tracks);
|
|
|
+const profileState = createSelector((store) => store.profile, profile => profile);
|
|
|
+const playlistsState = createSelector((store) => store.playlists, playlists => playlists);
|
|
|
|
|
|
const ProfileData = ({ avatarChanging, buttonsVisible }) => {
|
|
|
const dispatch = useDispatch();
|
|
|
- const tracks = useSelector((store) => store.tracks);
|
|
|
- const profile = useSelector((store) => store.profile);
|
|
|
- const playlists = useSelector((store) => store.playlists);
|
|
|
const navigate = useNavigate();
|
|
|
|
|
|
+ const tracks = useSelector(tracksState);
|
|
|
+ const profile = useSelector(profileState);
|
|
|
+ const playlists = useSelector(playlistsState);
|
|
|
+
|
|
|
useEffect(() => {
|
|
|
dispatch(actionGetProfileData());
|
|
|
dispatch(actionGetTracksCount());
|