|
@@ -5,12 +5,17 @@ import {Router, Link} from 'react-router-dom'
|
|
|
import {createQueryPub, NamedRoute, NamedLink, usePub} from './lib';
|
|
|
import {MetaPlate} from './lib';
|
|
|
|
|
|
+import {createQueryRoutes} from './lib';
|
|
|
+
|
|
|
+/*
|
|
|
+ CREATE QUERY ROUTE HUGE CONFIGURATION SAMPLE/TEST
|
|
|
+ */
|
|
|
|
|
|
const history = createBrowserHistory()
|
|
|
|
|
|
const token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOnsiaWQiOiI2NjdmZjBkYTIyMzIxMjBjN2M4NzFmN2MiLCJsb2dpbiI6InRzdDE5IiwiYWNsIjpbIjY2N2ZmMGRhMjIzMjEyMGM3Yzg3MWY3YyIsInVzZXIiXX0sImlhdCI6MTcyMDI1OTEwN30.eDcInxQlskt32LjaCe5sdCcJ3B97BKYZtgUARxThYQM'
|
|
|
|
|
|
-console.log(JSON.parse(atob(token.split('.')[1])).sub.id)
|
|
|
+//console.log(JSON.parse(atob(token.split('.')[1])).sub.id)
|
|
|
|
|
|
const shopUrl = 'http://shop-roles.node.ed.asmer.org.ua/'
|
|
|
|
|
@@ -32,6 +37,31 @@ const gql = (query, variables={}) =>
|
|
|
return Object.values(result.data)[0]
|
|
|
})
|
|
|
|
|
|
+const LeftMenu = ({data}) => {
|
|
|
+ return (
|
|
|
+ <ul>
|
|
|
+ <MetaPlate data={data}>
|
|
|
+ <>
|
|
|
+ <LeftMenuItem prop="category" keyDataKey="_id"/>
|
|
|
+ </>
|
|
|
+ </MetaPlate>
|
|
|
+ </ul>
|
|
|
+ )
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
const {queryPub, createQuery, withQueryFunc} = createQueryPub({
|
|
|
queryFunc: gql,
|
|
|
cacheTimeout: 5000,
|
|
@@ -107,9 +137,9 @@ const {query: categoryQuery, useCategoryQuery} = createQuery({
|
|
|
const Image = ({src}) => <img src={`${shopUrl}${src}`} style={{maxWidth: '50%'}}/>
|
|
|
|
|
|
const Good = ({good, children}) => {
|
|
|
- useEffect(() => {
|
|
|
- console.log('good mount', good.name)
|
|
|
- },[])
|
|
|
+ //useEffect(() => {
|
|
|
+ //console.log('good mount', good.name)
|
|
|
+ //},[])
|
|
|
return (
|
|
|
good ?
|
|
|
<div className='Good'>
|
|
@@ -171,20 +201,59 @@ const PageCategory = ({data}) => {
|
|
|
const LeftMenuItem = ({category:{_id,name}})=>
|
|
|
<li><NamedLink routeName='category' params={{_id}}>{name}</NamedLink></li>
|
|
|
//<li><Link to={`/category/${_id}`}>{name}</Link></li>
|
|
|
+//
|
|
|
+//
|
|
|
|
|
|
-const LeftMenu = () => {
|
|
|
- const {payload} = useMainCategoriesQuery()
|
|
|
- return (
|
|
|
- <ul>
|
|
|
- {payload &&
|
|
|
- <MetaPlate data={payload}>
|
|
|
- <>
|
|
|
- <LeftMenuItem prop="category" keyDataKey="_id"/>
|
|
|
- </>
|
|
|
- </MetaPlate>}
|
|
|
- </ul>
|
|
|
- )
|
|
|
-}
|
|
|
+
|
|
|
+const queryRouteResult = createQueryRoutes({
|
|
|
+ query: gql,
|
|
|
+ Pending: () => <h1>Loading...</h1>,
|
|
|
+ //cacheTimeout: 5000,
|
|
|
+ queryRoutes: {
|
|
|
+ index: {
|
|
|
+ path: '/',
|
|
|
+ args: [`query MainCategories{
|
|
|
+ CategoryFind(query: "[{\\"parent\\":null}]"){
|
|
|
+ _id name
|
|
|
+ image{
|
|
|
+ url
|
|
|
+ }
|
|
|
+ goods{
|
|
|
+ _id
|
|
|
+ name description price images{
|
|
|
+ url
|
|
|
+ }
|
|
|
+ }
|
|
|
+ subCategories{ name _id}
|
|
|
+ }
|
|
|
+ }
|
|
|
+ `],
|
|
|
+ component: LeftMenu,
|
|
|
+ },
|
|
|
+ category: {
|
|
|
+ path: '/category/:_id',
|
|
|
+ args: ({_id}) => [`query categoryById($query:String){
|
|
|
+ CategoryFindOne(query: $query){
|
|
|
+ _id name
|
|
|
+ image{
|
|
|
+ url
|
|
|
+ }
|
|
|
+ goods{
|
|
|
+ _id
|
|
|
+ name description price images{
|
|
|
+ url
|
|
|
+ }
|
|
|
+ }
|
|
|
+ subCategories{ name _id}
|
|
|
+ }
|
|
|
+ }
|
|
|
+ `, {query: JSON.stringify([{_id}])}],
|
|
|
+ component: PageCategory
|
|
|
+ }
|
|
|
+ }
|
|
|
+})
|
|
|
+
|
|
|
+const { AllRoutes } = queryRouteResult
|
|
|
|
|
|
function App() {
|
|
|
//const {payload} = useCategoriesQuery()
|
|
@@ -193,13 +262,8 @@ function App() {
|
|
|
return (
|
|
|
<Router history={history}>
|
|
|
|
|
|
- <LeftMenu />
|
|
|
- <NamedRoute name="category"
|
|
|
- query={categoryQuery}
|
|
|
- path="/category/:_id"
|
|
|
- errorQueryComponent={({error}) => <h1><pre>{error.message}</pre></h1>}
|
|
|
- pendingQueryComponent={() => <h1>Loading</h1>}
|
|
|
- component={PageCategory}/>
|
|
|
+ <AllRoutes />
|
|
|
+
|
|
|
|
|
|
|
|
|
|