|
9 | 9 | <script src=" https://unpkg.com/[email protected]" charset=" utf-8" ></script>
|
10 | 10 | <script src="https://www.gstatic.com/firebasejs/3.6.5/firebase.js"></script>
|
11 | 11 | <script src="./api.js"></script>
|
| 12 | + <!-- <script src="./sync.js"></script> --> |
12 | 13 | <!-- <link href='https://fonts.googleapis.com/css?family=Roboto:300,400,700' rel='stylesheet' type='text/css'> -->
|
13 | 14 | <link rel="stylesheet" href="./style.css">
|
14 | 15 | </head>
|
|
30 | 31 | </a>
|
31 | 32 | </div>
|
32 | 33 | </div>
|
33 |
| - |
34 | 34 | <router-view class="view"></router-view>
|
35 | 35 | </div>
|
36 | 36 |
|
|
47 | 47 | <transition :name="transition">
|
48 | 48 | <div class="news-list" :key="displayedPage" v-if="true">
|
49 | 49 | <transition-group tag="ul" name="item">
|
50 |
| - <li v-for="item in displayedItems" :key="item.id" :item="item" class="news-item"> |
| 50 | + <li v-for="item in displayedItems" :key="item.id" class="news-item"> |
51 | 51 | <span class="score">{{ item.score }}</span>
|
52 | 52 | <span class="title">
|
53 | 53 | <template v-if="item.url">
|
54 | 54 | <a :href="item.url" target="_blank">{{ item.title }}</a>
|
55 |
| - <span class="host">({{ item.url | host }})</span> |
| 55 | + <span class="host">({{ item.url }})</span> |
56 | 56 | </template>
|
57 | 57 | <template v-else>
|
58 | 58 | <router-link :to="'/item/' + item.id" >{{ item.title }}</router-link>
|
|
64 | 64 | by <router-link :to="'/user/' + item.by">{{ item.by }}</router-link>
|
65 | 65 | </span>
|
66 | 66 | <span class="time">
|
67 |
| - {{ item.time | timeAgo }} ago |
| 67 | + {{ item.time }} ago |
68 | 68 | </span>
|
69 | 69 | <span v-if="item.type !== 'job'" class="comments-link">
|
70 | 70 | | <router-link :to="'/item/' + item.id ">{{ item.descendants }}</router-link>
|
|
87 | 87 | return {
|
88 | 88 | loading: false,
|
89 | 89 | transition: 'slide-left',
|
| 90 | + displayedPage:'1', |
| 91 | + displayedItems: [{score: '100', title: "You can you up", id: '1', url: "http://www.detachment.club"}, {score: '101', title: "You can you up, too", id: '2'}] |
90 | 92 | // displayedPage: isInitialRender ? Number(this.$store.state.route.params.page) || 1 : -1,
|
91 | 93 | // displayedItems: isInitialRender ? this.$store.getters.activeItems : []
|
92 | 94 | }
|
93 | 95 | },
|
94 | 96 |
|
95 | 97 | props: ['item'],
|
96 | 98 |
|
97 |
| - computed: { |
98 |
| - page(){ |
99 |
| - return Number(this.$store.state.route.params.page) || 1 |
100 |
| - }, |
101 |
| - maxPage(){ |
102 |
| - const { itemsPerPage, lists } = this.$store.state |
103 |
| - return Math.ceil(lists[this.type].length / itemsPerPage ) |
104 |
| - }, |
105 |
| - hasMore(){ |
106 |
| - return this.page < this.maxPage |
107 |
| - } |
108 |
| - }, |
| 99 | + // computed: { |
| 100 | + // page(){ |
| 101 | + // return Number(this.$store.state.route.params.page) || 1 |
| 102 | + // }, |
| 103 | + // maxPage(){ |
| 104 | + // const { itemsPerPage, lists } = this.$store.state |
| 105 | + // return Math.ceil(lists[this.type].length / itemsPerPage ) |
| 106 | + // }, |
| 107 | + // hasMore(){ |
| 108 | + // return this.page < this.maxPage |
| 109 | + // } |
| 110 | + // }, |
109 | 111 |
|
110 |
| - beforeMount(){ |
111 |
| - if(this.$root._isMounted){ |
112 |
| - this.loadItems(this.page) |
113 |
| - } |
114 |
| - } |
| 112 | + // beforeMount(){ |
| 113 | + // if(this.$root._isMounted){ |
| 114 | + // this.loadItems(this.page) |
| 115 | + // } |
| 116 | + // this.unwatchList = watchList(this.type, ids => { |
| 117 | + // this.$store.commit('SET_LIST', { type: this.type, ids }) |
| 118 | + // this.$store.dispatch('ENSURE_ACTIVE_ITEMS').then(() => { |
| 119 | + // this.displayedItems = this.$store.getters.activeItems |
| 120 | + // }) |
| 121 | + // }) |
| 122 | + // }, |
115 | 123 |
|
| 124 | + // beforeDestroy(){ |
| 125 | + // this.unwatchList() |
| 126 | + // }, |
116 | 127 |
|
| 128 | + watch: { |
| 129 | + page(to, from){ |
| 130 | + this.loadItems(to, from) |
| 131 | + } |
| 132 | + }, |
| 133 | + |
| 134 | + // methods: { |
| 135 | + // loadItems(to = this.page, from = -1){ |
| 136 | + // this.loading = true |
| 137 | + // this.$store.dispatch('FETCH_LIST_DATA', { |
| 138 | + // type: this.page |
| 139 | + // }).then(() => { |
| 140 | + // if(this.page < 0 || this.page > this.maxPage){ |
| 141 | + // this.$router.replace(`/${this.type}/1`) |
| 142 | + // return |
| 143 | + // } |
| 144 | + // this.transition = to > from ? 'slide-left' : 'slide-right' |
| 145 | + // this.displayedPage = to |
| 146 | + // this.displayedItems = this.$store.getters.activeItems |
| 147 | + // this.loading = false |
| 148 | + // }) |
| 149 | + // } |
| 150 | + // } |
117 | 151 |
|
118 | 152 | });
|
119 | 153 |
|
|
208 | 242 | }
|
209 | 243 | })
|
210 | 244 |
|
| 245 | + // sync(store, router); |
| 246 | + |
211 | 247 | new Vue({
|
212 | 248 | router,
|
| 249 | + store, |
213 | 250 | el: '#app'
|
214 | 251 | })
|
215 | 252 | </script>
|
|
0 commit comments