Kaynağa Gözat

:recycle: separating intersection loader setup from init post

tags/0.9.0
J 4 yıl önce
ebeveyn
işleme
61f45fd0bc
1 değiştirilmiş dosya ile 7 ekleme ve 2 silme
  1. 7
    2
      vue-theme/src/pages/list.vue

+ 7
- 2
vue-theme/src/pages/list.vue Dosyayı Görüntüle

32
 import sidebar from '@/components/sidebars/sidebar'
32
 import sidebar from '@/components/sidebars/sidebar'
33
 import { postTypeGetters, scrollTop, heroUtils } from './mixin-post-types'
33
 import { postTypeGetters, scrollTop, heroUtils } from './mixin-post-types'
34
 
34
 
35
-import { convertTitleCase, typeFromRoute } from '@/utils/helpers'
35
+import { postTypes, convertTitleCase, typeFromRoute } from '@/utils/helpers'
36
 
36
 
37
 const TIMEOUT = 1
37
 const TIMEOUT = 1
38
 
38
 
140
             this.$store.commit('SET_HERO', this._setHeroInfo(page))
140
             this.$store.commit('SET_HERO', this._setHeroInfo(page))
141
         },
141
         },
142
         setIntersectionLoader() {
142
         setIntersectionLoader() {
143
+            if(!this.type) return console.error('cannot setup interseciton handler for undefined type')
144
+            
143
             console.warn('setting up intersection handler for:', this.type)
145
             console.warn('setting up intersection handler for:', this.type)
144
             const footerEl = document.querySelector(".footer-wrapper footer")
146
             const footerEl = document.querySelector(".footer-wrapper footer")
147
+            console.warn('attach to: ',footerEl)
145
             if(!footerEl) return
148
             if(!footerEl) return
146
 
149
 
147
             window.addEventListener("load", e => {
150
             window.addEventListener("load", e => {
163
             // Clear any preloaded posts (from home, etc.)
166
             // Clear any preloaded posts (from home, etc.)
164
             this.clearAllPosts()
167
             this.clearAllPosts()
165
             this.loadMorePosts()
168
             this.loadMorePosts()
166
-            this.setIntersectionLoader()
167
         }
169
         }
168
     },
170
     },
169
     watch: {
171
     watch: {
172
         type(newType, oldType){
174
         type(newType, oldType){
173
             console.log('old:', oldType)
175
             console.log('old:', oldType)
174
             console.log('new:', newType)
176
             console.log('new:', newType)
177
+            if(!postTypes.includes(newType)) return console.warn('type not found...')
175
             this.clearAndInitPostList()
178
             this.clearAndInitPostList()
179
+            this.setIntersectionLoader()
176
         },
180
         },
177
     },
181
     },
178
     mounted() {
182
     mounted() {
179
         this.clearAndInitPostList()
183
         this.clearAndInitPostList()
184
+        this.setIntersectionLoader()
180
     },
185
     },
181
     beforeUnmount() {
186
     beforeUnmount() {
182
         this.unsetIntersectionLoader()
187
         this.unsetIntersectionLoader()

Loading…
İptal
Kaydet