mfdok43 2 년 전
부모
커밋
32262b88a6

+ 59 - 0
package-lock.json

@@ -11,6 +11,7 @@
         "@testing-library/jest-dom": "^5.16.1",
         "@testing-library/react": "^12.1.2",
         "@testing-library/user-event": "^13.5.0",
+        "array-move": "^4.0.0",
         "jwt-decode": "^3.1.2",
         "node-sass": "^7.0.1",
         "react": "^17.0.2",
@@ -19,6 +20,7 @@
         "react-redux": "^7.2.6",
         "react-router-dom": "^5.3.0",
         "react-scripts": "5.0.0",
+        "react-sortable-hoc": "^2.0.0",
         "redux": "^4.1.2",
         "redux-saga": "^1.1.3",
         "redux-thunk": "^2.4.1",
@@ -4326,6 +4328,17 @@
         "url": "https://github.com/sponsors/ljharb"
       }
     },
+    "node_modules/array-move": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/array-move/-/array-move-4.0.0.tgz",
+      "integrity": "sha512-+RY54S8OuVvg94THpneQvFRmqWdAHeqtMzgMW6JNurHxe8rsS07cHQdfGkXnTUXiBcyZ0j3SiDIxxj0RPiqCkQ==",
+      "engines": {
+        "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
     "node_modules/array-union": {
       "version": "2.1.0",
       "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
@@ -8938,6 +8951,14 @@
         "node": ">= 0.4"
       }
     },
+    "node_modules/invariant": {
+      "version": "2.2.4",
+      "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
+      "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
+      "dependencies": {
+        "loose-envify": "^1.0.0"
+      }
+    },
     "node_modules/ip": {
       "version": "1.1.5",
       "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
@@ -14458,6 +14479,21 @@
         }
       }
     },
+    "node_modules/react-sortable-hoc": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/react-sortable-hoc/-/react-sortable-hoc-2.0.0.tgz",
+      "integrity": "sha512-JZUw7hBsAHXK7PTyErJyI7SopSBFRcFHDjWW5SWjcugY0i6iH7f+eJkY8cJmGMlZ1C9xz1J3Vjz0plFpavVeRg==",
+      "dependencies": {
+        "@babel/runtime": "^7.2.0",
+        "invariant": "^2.2.4",
+        "prop-types": "^15.5.7"
+      },
+      "peerDependencies": {
+        "prop-types": "^15.5.7",
+        "react": "^16.3.0 || ^17.0.0",
+        "react-dom": "^16.3.0 || ^17.0.0"
+      }
+    },
     "node_modules/read-pkg": {
       "version": "5.2.0",
       "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
@@ -20888,6 +20924,11 @@
         "is-string": "^1.0.7"
       }
     },
+    "array-move": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/array-move/-/array-move-4.0.0.tgz",
+      "integrity": "sha512-+RY54S8OuVvg94THpneQvFRmqWdAHeqtMzgMW6JNurHxe8rsS07cHQdfGkXnTUXiBcyZ0j3SiDIxxj0RPiqCkQ=="
+    },
     "array-union": {
       "version": "2.1.0",
       "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
@@ -24302,6 +24343,14 @@
         "side-channel": "^1.0.4"
       }
     },
+    "invariant": {
+      "version": "2.2.4",
+      "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
+      "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
+      "requires": {
+        "loose-envify": "^1.0.0"
+      }
+    },
     "ip": {
       "version": "1.1.5",
       "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
@@ -28162,6 +28211,16 @@
         "workbox-webpack-plugin": "^6.4.1"
       }
     },
+    "react-sortable-hoc": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/react-sortable-hoc/-/react-sortable-hoc-2.0.0.tgz",
+      "integrity": "sha512-JZUw7hBsAHXK7PTyErJyI7SopSBFRcFHDjWW5SWjcugY0i6iH7f+eJkY8cJmGMlZ1C9xz1J3Vjz0plFpavVeRg==",
+      "requires": {
+        "@babel/runtime": "^7.2.0",
+        "invariant": "^2.2.4",
+        "prop-types": "^15.5.7"
+      }
+    },
     "read-pkg": {
       "version": "5.2.0",
       "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",

+ 2 - 0
package.json

@@ -6,6 +6,7 @@
     "@testing-library/jest-dom": "^5.16.1",
     "@testing-library/react": "^12.1.2",
     "@testing-library/user-event": "^13.5.0",
+    "array-move": "^4.0.0",
     "jwt-decode": "^3.1.2",
     "node-sass": "^7.0.1",
     "react": "^17.0.2",
@@ -14,6 +15,7 @@
     "react-redux": "^7.2.6",
     "react-router-dom": "^5.3.0",
     "react-scripts": "5.0.0",
+    "react-sortable-hoc": "^2.0.0",
     "redux": "^4.1.2",
     "redux-saga": "^1.1.3",
     "redux-thunk": "^2.4.1",

+ 1 - 0
src/actions/login-reg-actions.js

@@ -2,6 +2,7 @@ import {actionAuthLogin, actionPromise} from "../reducers";
 import {call, put, takeEvery} from "redux-saga/effects";
 import {promiseWorker} from "../reducers/promiseReducer";
 import {gql} from "./index";
+import {actionAboutMe,actionUserFind,actionFindMyTracks} from "./index";
 
 export const actionLogin = (login, password) => {
     return actionPromise(

+ 0 - 6
src/actions/my-playlist-tracks-actions.js

@@ -81,12 +81,6 @@ export const actionSetTrackToPlaylist = (playlistId,arr) =>
 
 export function* setTrackToPlaylistWorker (action) {
     const {playlistId,arr} = action
-    // console.log(trackId,'4to eto u nas')
-    // let arr = []
-    // for (let i = 0; i< trackId.length; i++) {
-    //     arr.push({_id: trackId[i]})
-    // }
-    // console.log(arr,'posle')
     yield call(
         promiseWorker,actionPromise('createPlaylist', gql(`mutation p($playlist:PlaylistInput) {
          PlaylistUpsert(playlist:$playlist) {

+ 0 - 20
src/pages/allTracks.js

@@ -1,20 +0,0 @@
-import {actionTracksFind, backURL} from "../actions";
-import {connect} from "react-redux";
-import {store} from "../reducers";
-import {CTrack} from "./track";
-
-const Track = ({track:{_id,url,originalFileName}={}}) =>
-    <div className='Tracks'>
-        {url === null ? <></> :(<strong className='Tracks1'><audio controls src={backURL+'/'+url}></audio>{originalFileName}</strong>)}
-    </div>
-
-const AllTracks = ({tracks}={}) =>
-    <div>
-        <h2>Все композиции</h2>
-        {(tracks || []).map(track => <CTrack track={track}/>)}
-    </div>
-
-
-export const CAllTracks = connect(state => ({tracks: state.promise.findAllTracks1?.payload || []}))(AllTracks)
-
-store.dispatch(actionTracksFind())

+ 1 - 1
src/pages/header/avatar.js

@@ -36,7 +36,7 @@ const Avatar = ({ avatarURL = {} }) => {
     // console.log(avatarURL);
     return (
         <div className='Avatar'>
-            {avatarURL ? <img src={backURL + "/" + avatarURL.avatar?.url}></img> : <img src={avadef}/>}
+            {avatarURL !== null ? <img src={backURL + "/" + avatarURL.avatar?.url}></img> : <img src={avadef}/>}
         </div>
     )
 };

+ 4 - 6
src/pages/index.js

@@ -1,10 +1,8 @@
 export {Header} from "./header";
 export {Main} from "./main";
 export {Footer} from "./footer";
-export {PageMain} from "./pageMain";
-export {UserTracks} from "./userTracks";
-export {CAllUsers} from "./allUsers";
-export {CMyPlaylists} from "./myPlaylists";
+export {UserTracks,CAllTracks,CAllUsers} from "./user-tracks";
+export {CMyPlaylists,MyPlaylistTracks,NoPlaylistMytracks} from "./my-tracks";
 export {CTrack} from "./track";
-export {CPlaylistDropZone} from "./tools";
-export {CTrackDropZone} from "./tools";
+export {CPlaylistDropZone,CTrackDropZone} from "./tools";
+

+ 12 - 11
src/pages/main.js

@@ -1,13 +1,12 @@
-import {Route, Redirect, Switch} from 'react-router-dom';
-
-import {PageMain} from "./pageMain";
-import {UserTracks} from "./userTracks";
-import {CAllTracks} from "./allTracks";
-import {CAllUsers} from "./allUsers";
-import {CMyPlaylists} from "./myPlaylists";
-import {CProtectedRoute,CRRoute} from "../reducers/routeReducer";
+import {Redirect, Switch} from 'react-router-dom';
+import {NoPlaylistMytracks} from "./my-tracks";
+import {UserTracks} from "./user-tracks";
+import {CAllTracks} from "./user-tracks";
+import {CAllUsers} from "./user-tracks";
+import {CMyPlaylists} from "./my-tracks";
+import {CProtectedRoute} from "../reducers";
 import {CSearchResult} from "./tools/search";
-import {MyPlaylistTracks} from "./myPlaylists";
+import {MyPlaylistTracks} from "./my-tracks";
 
 export const Aside = ({children}) =>
     <div className='Aside'>
@@ -22,21 +21,23 @@ export const Content = ({children}) =>
 export const Main = () =>
     <main>
         <Aside>
+            <Switch>
             <CProtectedRoute roles={["anon", "user"]} path="/music" component={CAllUsers}/>
             <CProtectedRoute roles={["anon", "user"]} path="/user/:_id" component={CAllUsers}/>
             <CProtectedRoute roles={["anon", "user"]} path="/mymusic" component={CMyPlaylists}/>
             <CProtectedRoute roles={["anon", "user"]} path="/myplaylist/:_id" component={CMyPlaylists}/>
             <CProtectedRoute roles={["anon", "user"]} path='/' component={CAllUsers} exact/>
+            </Switch>
         </Aside>
         <Content>
             <Redirect from='/main' to='/'/>
             <Switch>
                 <CProtectedRoute roles={["anon", "user"]} path="/search" component={CSearchResult}/>
                 <CProtectedRoute roles={["anon", "user"]} path="/music" component={CAllTracks}/>
-                <CProtectedRoute roles={["anon", "user"]} path='/' component={PageMain} exact/>
+                <CProtectedRoute roles={["anon", "user"]} path='/' component={NoPlaylistMytracks} exact/>
                 <CProtectedRoute roles={["anon", "user"]} path="/myPlaylist/:_id" component={MyPlaylistTracks}/>
                 <CProtectedRoute roles={["anon", "user"]} path="/user/:_id" component={UserTracks}/>
-                <CProtectedRoute roles={["anon", "user"]} path='/mymusic' component={PageMain}/>
+                <CProtectedRoute roles={["anon", "user"]} path='/mymusic' component={NoPlaylistMytracks}/>
             </Switch>
         </Content>
    </main>

+ 3 - 0
src/pages/my-tracks/index.js

@@ -0,0 +1,3 @@
+export {MyPlaylistTracks} from "./my-tracks";
+export {NoPlaylistMytracks} from "./no-playlist-mytracks";
+export {CMyPlaylists} from "./my-playlists";

+ 25 - 0
src/pages/my-tracks/my-playlists.js

@@ -0,0 +1,25 @@
+import {Link} from "react-router-dom";
+import {useState} from "react";
+import {connect} from "react-redux";
+import {actionCreatePlaylist, actionPlaylistFindByOwner} from "../../actions";
+import {store} from "../../reducers";
+
+const Playlist = ({playlist:{_id, name}={}}) =>
+    <li><Link to={`/myplaylist/${_id}`}>{name}</Link></li>
+
+const MyPlaylists =  ({playlists={},onCreatePlaylist}) => {
+    const [p, setP] = useState ('')
+    return (
+        <div>
+            <input placeholder='Название' onChange={e => setP(e.target.value)}/>
+            <button disabled={p.length >= 6  && p !== "" ? false : true} onClick={() => {onCreatePlaylist(p)}}>Создать плейлист</button>
+            <ul className='Users'>
+                {playlists.map(playlist =>  <Playlist playlist={playlist}/> )}
+            </ul>
+        </div>
+    )
+}
+
+export const CMyPlaylists = connect(state => ({playlists: state.promise.playlistFindByOwner?.payload || []}),{onCreatePlaylist:actionCreatePlaylist})(MyPlaylists)
+
+store.dispatch(actionPlaylistFindByOwner())

+ 43 - 0
src/pages/my-tracks/my-tracks.js

@@ -0,0 +1,43 @@
+import {connect} from "react-redux";
+import {CTrack} from "../track";
+import {CPlaylistDropZone} from "../tools";
+import {SortableContainer, SortableElement} from 'react-sortable-hoc';
+import {arrayMoveImmutable} from 'array-move';
+import {useState,useEffect} from "react";
+
+const SortableItem = SortableElement(CTrack);
+
+const MyTracks = ( {children}) =>
+    <div className='Category'>
+        {children}
+    </div>
+const SortableList = SortableContainer(MyTracks)
+// const CMyTracks = connect(state => ({playlist: state.promise.playlistById?.payload || []}))(MyTracks)
+
+
+export const MyPlaylistTracks = ({match:{params:{_id}}}) =>
+    <>
+        <CPlaylistDropZone >
+            <CSortableComponent />
+     </CPlaylistDropZone >
+    </>
+
+
+function SortableComponent({tracks=[]}) {
+    const [state, setState] = useState(tracks)
+    useEffect(() => {
+        setState (tracks)
+    },[tracks])
+    const onSortEnd = ({oldIndex, newIndex}) => {
+        setState((state) => (arrayMoveImmutable(state, oldIndex, newIndex)));
+    };
+
+    return <SortableList tracks={tracks} onSortEnd={onSortEnd}>
+        {state.map((value, index) => <SortableItem key={`item-${value}`} index={index} track={value}/>)}
+        {/*{console.log(state)}*/}
+    </SortableList>;
+}
+
+const CSortableComponent = connect(state => ({tracks: state.promise.playlistById?.payload?.tracks || []}))(SortableComponent)
+
+

+ 52 - 0
src/pages/my-tracks/no-playlist-mytracks.js

@@ -0,0 +1,52 @@
+import {store} from "../../reducers";
+import {actionFindMyTracks} from "../../actions";
+import {CTrackDropZone} from "../tools/trackdropzone";
+import {CTrack} from "../track";
+import {connect} from "react-redux";
+import {useEffect, useState} from "react";
+import {arrayMoveImmutable} from "array-move";
+import {SortableContainer, SortableElement} from "react-sortable-hoc";
+
+
+
+const SortableItem = SortableElement(CTrack);
+
+const MyTracks = ({children}) => {
+
+    return(
+        <div>
+            {children}
+        </div>
+    )
+}
+
+const SortableList = SortableContainer(MyTracks)
+// export const CMyTracks = connect(state => ({tracks: state.promise.findMyTracks1?.payload || []}))(MyTracks)
+
+export const NoPlaylistMytracks = () =>
+    <div>
+    <h1>Моя музыка</h1>
+        <CTrackDropZone>
+            <CSortableComponent />
+        </CTrackDropZone>
+    </div>
+
+
+function SortableComponent({tracks=[]}) {
+    const [state, setState] = useState(tracks)
+    useEffect(() => {
+        setState (tracks)
+    },[tracks])
+    const onSortEnd = ({oldIndex, newIndex}) => {
+        setState((state) => (arrayMoveImmutable(state, oldIndex, newIndex)));
+    };
+
+    return <SortableList tracks={tracks} onSortEnd={onSortEnd}>
+        {state.map((value, index) => <SortableItem key={`item-${value}`} index={index} track={value}/>)}
+    </SortableList>;
+}
+
+const CSortableComponent = connect(state => ({tracks: state.promise.findMyTracks1?.payload || []}))(SortableComponent)
+
+store.dispatch(actionFindMyTracks())
+

+ 0 - 48
src/pages/myPlaylists.js

@@ -1,48 +0,0 @@
-import {actionCreatePlaylist, actionPlaylistFindByOwner, backURL} from "../actions";
-import {connect} from "react-redux";
-import {Link} from "react-router-dom";
-import {call, select, takeEvery} from "redux-saga/effects";
-import {actionPromise, promiseWorker} from "../reducers/promiseReducer";
-import {useState} from "react";
-import {history} from "../App";
-import {store} from "../reducers";
-import {CTrack} from "./track";
-import {CPlaylistDropZone} from "./tools";
-
-
-const MyTracks = ({playlist:{_id, name, tracks}={}}) =>
-    <div className='Category'>
-        <h1>{name}</h1>
-        {(tracks || []).map(track => <CTrack track={track}/>)}
-    </div>
-
-const CMyTracks = connect(state => ({playlist: state.promise.playlistById?.payload || []}))(MyTracks)
-
-
-export const MyPlaylistTracks = ({match:{params:{_id}}}) =>
-    <>
-        <CPlaylistDropZone >
-        <CMyTracks />
-     </CPlaylistDropZone >
-    </>
-
-
-const Playlist = ({playlist:{_id, name}={}}) =>
-    <li><Link to={`/myplaylist/${_id}`}>{name}</Link></li>
-
-const MyPlaylists =  ({playlists={},onCreatePlaylist}) => {
-    const [p, setP] = useState ('')
-return (
-    <div>
-    <input placeholder='Название' onChange={e => setP(e.target.value)}/>
-        <button disabled={p.length >= 6  && p !== "" ? false : true} onClick={() => {onCreatePlaylist(p)}}>Создать плейлист</button>
-    <ul className='Users'>
-        {playlists.map(playlist =>  <Playlist playlist={playlist}/> )}
-    </ul>
-    </div>
-)
-}
-
-export const CMyPlaylists = connect(state => ({playlists: state.promise.playlistFindByOwner?.payload || []}),{onCreatePlaylist:actionCreatePlaylist})(MyPlaylists)
-
-store.dispatch(actionPlaylistFindByOwner())

+ 0 - 14
src/pages/mytracks.js

@@ -1,14 +0,0 @@
-import {connect} from "react-redux";
-import {Track} from "./track";
-
-const Mytracks = ({tracks={}}) => {
-
-    return(
-        <div>
-        {tracks.map(track => <Track track={track}/> )}
-        </div>
-    )
-}
-export const CMyTracks = connect(state => ({tracks: state.promise.findMyTracks1?.payload || []}))(Mytracks)
-
-

+ 0 - 27
src/pages/pageMain.js

@@ -1,27 +0,0 @@
-import {store} from "../reducers";
-import {actionFindMyTracks} from "../actions";
-import {CMyTracks} from "./mytracks";
-import {CTrackDropZone} from "./tools/trackdropzone";
-
-
-const defaultTrack = {
-    "_id": "61dc5a42e9472933a6785f18",
-    "url": "track/fe15599bbb13c96d70dd5a1591a0b158",
-    "originalFileName": "cart.png",
-    "owner": {
-        "login": "mfdok43"
-    }
-}
-
-
-export const PageMain = () =>
-    <div>
-    <h1>Моя музыка</h1>
-        <CTrackDropZone>
-        <CMyTracks />
-        </CTrackDropZone>
-    </div>
-
-
-store.dispatch(actionFindMyTracks())
-

+ 0 - 1
src/pages/tools/playlistdropzone.js

@@ -35,7 +35,6 @@ function PlaylistDropZone({playlist={}, onLoad, children }) {
          files.current = ([...files.current,
             ...acceptedFiles
         ])
-        console.log(files,'qoqo')
         onLoad(files.current);
 
     }, []);

+ 16 - 0
src/pages/user-tracks/allTracks.js

@@ -0,0 +1,16 @@
+import {actionTracksFind,backURL} from "../../actions";
+import {connect} from "react-redux";
+import {store} from "../../reducers";
+import {CTrack} from "../track";
+
+
+const AllTracks = ({tracks}={}) =>
+    <div>
+        <h2>Все композиции</h2>
+        {(tracks || []).map(track => <CTrack track={track}/>)}
+    </div>
+
+
+export const CAllTracks = connect(state => ({tracks: state.promise.findAllTracks1?.payload || []}))(AllTracks)
+
+store.dispatch(actionTracksFind())

+ 2 - 2
src/pages/allUsers.js

@@ -1,7 +1,7 @@
 import {connect} from "react-redux";
 import {Link} from "react-router-dom";
-import {actionUserFind} from "../actions";
-import {store} from "../reducers";
+import {actionUserFind} from "../../actions";
+import {store} from "../../reducers";
 
 const defaultPlaylists = [
     {

+ 3 - 0
src/pages/user-tracks/index.js

@@ -0,0 +1,3 @@
+export {UserTracks} from "./userTracks";
+export {CAllUsers} from "./allUsers";
+export {CAllTracks} from "./allTracks";

+ 60 - 0
src/pages/user-tracks/userTracks.js

@@ -0,0 +1,60 @@
+// import {SortableContainer, SortableElement} from 'react-sortable-hoc';
+// import {arrayMoveImmutable} from 'array-move';
+// import {useState,useEffect} from "react";
+
+import {connect} from "react-redux";
+import {CTrack} from "../track";
+
+
+const Tracks = ({tracks}={}) =>
+    <div>
+        {(tracks || []).map(track => <CTrack track={track}/>)}
+    </div>
+
+const CTracks = connect(state => ({tracks: state.promise.trackFindByOwner1?.payload || []}))(Tracks)
+
+
+export const UserTracks = ({match:{params:{_id}}}) =>
+    <>
+        <h1>{_id}</h1>
+        <CTracks />
+    </>
+
+
+
+
+
+// const SortableItem = SortableElement(CTrack);
+//
+//
+// const Tracks = ({children}) =>
+//     <div>
+//         {children}
+//     </div>
+//
+// const SortableList = SortableContainer(Tracks)
+//
+// const CTracks = connect(state => ({tracks: state.promise.trackFindByOwner1?.payload || []}))(Tracks)
+//
+//
+// export const UserTracks = ({match:{params:{_id}}}) =>
+//     <>
+//         <h1>{_id}</h1>
+//         <CSortableComponent />
+//     </>
+// // function SortableComponent({tracks=[]}) {
+// //     const [state, setState] = useState(tracks)
+// //     useEffect(() => {
+// //         setState (tracks)
+// //     },[tracks])
+// //     const onSortEnd = ({oldIndex, newIndex}) => {
+// //         setState((state) => (arrayMoveImmutable(state, oldIndex, newIndex)));
+// //     };
+// //
+// //     return <SortableList tracks={tracks} onSortEnd={onSortEnd}>
+// //         {state.map((value, index) => <SortableItem key={`item-${value}`} index={index} track={value}/>)}
+// //         {console.log(state)}
+// //     </SortableList>;
+// // }
+// //
+// // const CSortableComponent = connect (state => ({tracks: state.promise.trackFindByOwner1?.payload || []}))(SortableComponent)

+ 0 - 18
src/pages/userTracks.js

@@ -1,18 +0,0 @@
-import {connect} from "react-redux";
-import {backURL} from "../actions";
-import {CTrack} from "./track";
-
-
-const Tracks = ({tracks}={}) =>
-    <div>
-        {(tracks || []).map(track => <CTrack track={track}/>)}
-    </div>
-
-const CTracks = connect(state => ({tracks: state.promise.trackFindByOwner1?.payload || []}))(Tracks)
-
-
-export const UserTracks = ({match:{params:{_id}}}) =>
-    <>
-        <h1>{_id}</h1>
-        <CTracks />
-    </>

+ 1 - 0
src/reducers/index.js

@@ -2,3 +2,4 @@ export {store} from './store'
 export {actionPromise} from './promiseReducer'
 export {playerReducer,actionTrackPlay,actionTrackStop} from "./playerReducer";
 export {actionAuthLogin, actionAuthLogout} from './authReducer'
+export {CProtectedRoute} from "./routeReducer";

+ 1 - 1
src/reducers/routeReducer.js

@@ -14,7 +14,7 @@ export function routeReducer(state={}, {type, match}) {
 }
 
 function* routeWorker({match}) {
-    console.log(match)
+    // console.log(match)
     if (match.path in queries) {
         const {name, query, variables} = queries[match.path](match)
         yield call(promiseWorker, actionPromise(name, gql(query, variables)))