Pārlūkot izejas kodu

feat: adding sort links to sidebar | feat: adding sort routes | bug: fixing link in list vue

tags/0.9.0
John Maeda 6 gadus atpakaļ
vecāks
revīzija
5534a52eb9

+ 0
- 4
vue-theme/src/app.vue Parādīt failu

49
             /* Block Shadow Thing */
49
             /* Block Shadow Thing */
50
             .shadow
50
             .shadow
51
                 box-shadow: rgb(34, 36, 37) 0px 0px 4px 0px
51
                 box-shadow: rgb(34, 36, 37) 0px 0px 4px 0px
52
-            .b-radius
53
-                border-radius:5px
54
                 
52
                 
55
             /* Content Pieces */
53
             /* Content Pieces */
56
             .post
54
             .post
118
             width: 100%
116
             width: 100%
119
             ul > li
117
             ul > li
120
                 padding: 0 $ms
118
                 padding: 0 $ms
121
-    footer.main
122
-        margin: $ms 0 0
123
 </style>
119
 </style>

+ 38
- 5
vue-theme/src/components/sidebars/sidebar.vue Parādīt failu

1
 <template lang="pug">
1
 <template lang="pug">
2
 aside.sidebar
2
 aside.sidebar
3
     section
3
     section
4
-        slot
5
-        .shadow.b-radius(v-if="type === 'artists'")
6
-            p {{ type }} stuff
7
-        .shadow.b-radius(v-else)
4
+        .shadow(v-if="type === 'artists'")
5
+            h1.t-up sort by
6
+            ul
7
+                li(v-for="option in sortOptions")
8
+                    router-link(:to="`/${type}/${option.replace(' ', '-')}`").t-cap
9
+                        p {{ option }}
10
+        .shadow(v-else)
8
             p {{ type }} sidebar
11
             p {{ type }} sidebar
12
+        slot
9
 </template>
13
 </template>
10
 
14
 
11
 <script>
15
 <script>
17
             type: String
21
             type: String
18
         }
22
         }
19
     },
23
     },
20
-    computed: {},
24
+    computed: {
25
+        sortOptions() {
26
+            let opts = []
27
+            switch (this.type) {
28
+                case 'artists':
29
+                    opts = [
30
+                        'most recent',
31
+                        'alphabetized',
32
+                        'by material',
33
+                    ]
34
+                    break
35
+                case 'shorts':
36
+                    opts = [
37
+                        'by artist',
38
+                        'by material',
39
+                    ]
40
+                    break
41
+                case 'guides':
42
+                    opts = [
43
+                        'most recent',
44
+                        'by episode',
45
+                        'by material',
46
+                    ]
47
+                    break
48
+            }
49
+            return opts
50
+        }
51
+    },
21
     mounted() {}
52
     mounted() {}
22
 }
53
 }
23
 </script>
54
 </script>
26
 aside.sidebar
57
 aside.sidebar
27
     position: sticky
58
     position: sticky
28
     top: 0
59
     top: 0
60
+    ul
61
+        list-style: none
29
 </style>
62
 </style>

+ 6
- 0
vue-theme/src/index.js Parādīt failu

17
         // List Pages
17
         // List Pages
18
         { path: '/episodes', component: () => import(/* webpackChunkName: "pages-list" */ './pages/list.vue'), props: { sidebar: false } },
18
         { path: '/episodes', component: () => import(/* webpackChunkName: "pages-list" */ './pages/list.vue'), props: { sidebar: false } },
19
         { path: '/:type', component: () => import(/* webpackChunkName: "pages-list" */ './pages/list.vue'), props: { sidebar: true } },
19
         { path: '/:type', component: () => import(/* webpackChunkName: "pages-list" */ './pages/list.vue'), props: { sidebar: true } },
20
+        // Sorted List Pages 
21
+        { path: '/:type/alphabetized', component: () => import(/* webpackChunkName: "pages-list" */ './pages/list.vue'), props: { sidebar: true } },
22
+        { path: '/:type/most-recent', component: () => import(/* webpackChunkName: "pages-list" */ './pages/list.vue'), props: { sidebar: true } },
23
+        { path: '/:type/by-material', component: () => import(/* webpackChunkName: "pages-list" */ './pages/list.vue'), props: { sidebar: true } },
24
+        { path: '/:type/by-episode', component: () => import(/* webpackChunkName: "pages-list" */ './pages/list.vue'), props: { sidebar: true } },
25
+        { path: '/:type/by-artist', component: () => import(/* webpackChunkName: "pages-list" */ './pages/list.vue'), props: { sidebar: true } },
20
         // Single Pages
26
         // Single Pages
21
         { path: '/:type/:slug', component: () => import(/* webpackChunkName: "pages-single" */ './pages/single.vue'), props: { sidebar: true } },
27
         { path: '/:type/:slug', component: () => import(/* webpackChunkName: "pages-single" */ './pages/single.vue'), props: { sidebar: true } },
22
     ]
28
     ]

+ 4
- 4
vue-theme/src/pages/index.vue Parādīt failu

2
 <template lang="pug">
2
 <template lang="pug">
3
 .page--index.f-row.between
3
 .page--index.f-row.between
4
     article.f-grow
4
     article.f-grow
5
-        section(v-if="allEpisodesLoaded").shadow.b-radius
5
+        section(v-if="allEpisodesLoaded").shadow
6
             router-link(:to="`./episodes`")
6
             router-link(:to="`./episodes`")
7
                 h4 Episodes
7
                 h4 Episodes
8
             router-link(:to="`./episodes/${Object.values(allEpisodes)[0].slug}`")
8
             router-link(:to="`./episodes/${Object.values(allEpisodes)[0].slug}`")
9
                 p {{ Object.values(allEpisodes)[0].title }}
9
                 p {{ Object.values(allEpisodes)[0].title }}
10
-        section(v-if="allArtistsLoaded").shadow.b-radius
10
+        section(v-if="allArtistsLoaded").shadow
11
             router-link(:to="`./artists`")
11
             router-link(:to="`./artists`")
12
                 h4 artists
12
                 h4 artists
13
             router-link(:to="`./artists/${Object.values(allArtists)[0].slug}`")
13
             router-link(:to="`./artists/${Object.values(allArtists)[0].slug}`")
14
                 p {{ Object.values(allArtists)[0].title }}
14
                 p {{ Object.values(allArtists)[0].title }}
15
-        section(v-if="allPagesLoaded").shadow.b-radius
15
+        section(v-if="allPagesLoaded").shadow
16
             h4 pages
16
             h4 pages
17
             router-link(:to="`./pages/${Object.values(allPages)[0].slug}`")
17
             router-link(:to="`./pages/${Object.values(allPages)[0].slug}`")
18
                 p {{ Object.values(allPages)[0].title }}
18
                 p {{ Object.values(allPages)[0].title }}
19
-        section(v-if="allPostsLoaded").shadow.b-radius
19
+        section(v-if="allPostsLoaded").shadow
20
             router-link(:to="`./posts`")
20
             router-link(:to="`./posts`")
21
                 h4 posts
21
                 h4 posts
22
             router-link(:to="`./posts/${Object.values(allPosts)[0].slug}`")
22
             router-link(:to="`./posts/${Object.values(allPosts)[0].slug}`")

+ 6
- 6
vue-theme/src/pages/list.vue Parādīt failu

3
     article.f-grow
3
     article.f-grow
4
         header.f-row.center
4
         header.f-row.center
5
             h1 {{ type }} list
5
             h1 {{ type }} list
6
-        section.shadow.b-radius
6
+        section.shadow
7
             h4 {{ type }}
7
             h4 {{ type }}
8
             p {{ Object.values(posts).length }}
8
             p {{ Object.values(posts).length }}
9
             p {{ sidebar }}
9
             p {{ sidebar }}
10
-        section(v-for="post in posts").shadow.b-radius
11
-            router-link(:to="`./${type}/${post.slug}`")
10
+        section(v-for="post in posts").shadow
11
+            router-link(:to="`/${type}/${post.slug}`")
12
                 h4 {{ post.title }}
12
                 h4 {{ post.title }}
13
 
13
 
14
     sidebar(v-if="sidebar" :type="`${type}`")
14
     sidebar(v-if="sidebar" :type="`${type}`")
15
-        .shadow.b-radius
16
-            h1 slots stuff
15
+        .shadow
16
+            h1.t-up slots stuff
17
             div
17
             div
18
                 p more body whatever
18
                 p more body whatever
19
                 p another line of stuff
19
                 p another line of stuff
39
 
39
 
40
             allPosts: 'allPosts',
40
             allPosts: 'allPosts',
41
             allPostsLoaded: 'allPostsLoaded',
41
             allPostsLoaded: 'allPostsLoaded',
42
-            
42
+
43
             allArtists: 'allArtists',
43
             allArtists: 'allArtists',
44
             allArtistsLoaded: 'allArtistsLoaded',
44
             allArtistsLoaded: 'allArtistsLoaded',
45
 
45
 

+ 1
- 1
vue-theme/src/pages/single.vue Parādīt failu

1
 <template lang="pug">
1
 <template lang="pug">
2
 .page--single.f-row.between
2
 .page--single.f-row.between
3
-    article.f-grow.shadow.b-radius
3
+    article.f-grow.shadow
4
         header
4
         header
5
             h1 {{ type }}:{{ $route.params.slug }} single
5
             h1 {{ type }}:{{ $route.params.slug }} single
6
         section
6
         section

+ 0
- 1
vue-theme/src/sss/_helpers.sss Parādīt failu

7
     display: flex
7
     display: flex
8
     justify-content: center
8
     justify-content: center
9
     align-items: center
9
     align-items: center
10
-
11
 .f
10
 .f
12
     &-row, &-col
11
     &-row, &-col
13
         @extend %flexer
12
         @extend %flexer

Notiek ielāde…
Atcelt
Saglabāt