forked from AkkomaGang/akkoma-fe
Basic statuses.
This commit is contained in:
parent
f8d6fe41f0
commit
534f2e8195
8 changed files with 92 additions and 6 deletions
11
src/components/friends_timeline/friends_timeline.js
Normal file
11
src/components/friends_timeline/friends_timeline.js
Normal file
|
@ -0,0 +1,11 @@
|
|||
import Timeline from '../timeline/timeline.vue'
|
||||
const FriendsTimeline = {
|
||||
components: {
|
||||
Timeline
|
||||
},
|
||||
computed: {
|
||||
timeline () { return this.$store.state.statuses.timelines.friends }
|
||||
}
|
||||
}
|
||||
|
||||
export default FriendsTimeline
|
10
src/components/friends_timeline/friends_timeline.vue
Normal file
10
src/components/friends_timeline/friends_timeline.vue
Normal file
|
@ -0,0 +1,10 @@
|
|||
<template>
|
||||
<div class="timeline panel panel-default">
|
||||
<div class="panel-heading">Friends Timeline</div>
|
||||
<div class="panel-body">
|
||||
<Timeline v-bind:timeline="timeline" />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script src="./friends_timeline.js"></script>
|
|
@ -1,5 +1,5 @@
|
|||
<template>
|
||||
<div class="panel panel-default">
|
||||
<div class="timeline panel panel-default">
|
||||
<div class="panel-heading">Public Timeline</div>
|
||||
<div class="panel-body">
|
||||
<Timeline v-bind:timeline="timeline" />
|
||||
|
|
6
src/components/status/status.js
Normal file
6
src/components/status/status.js
Normal file
|
@ -0,0 +1,6 @@
|
|||
const Status = {
|
||||
props: [ 'status' ]
|
||||
}
|
||||
|
||||
export default Status
|
||||
|
53
src/components/status/status.vue
Normal file
53
src/components/status/status.vue
Normal file
|
@ -0,0 +1,53 @@
|
|||
<template>
|
||||
<div class="status-el">
|
||||
<div ng-if="retweet" class="media container retweet-info">
|
||||
<div class="media-left">
|
||||
<i class='fa fa-retweet'></i>
|
||||
</div>
|
||||
<div class="media-body">
|
||||
Retweeted by {{status.user.screen_name}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="media status container" ng-class="{compact: compact, notify: notify}">
|
||||
<div class="media-left">
|
||||
<a href="#">
|
||||
<img class='avatar' :src="status.user.profile_image_url_original">
|
||||
</a>
|
||||
</div>
|
||||
<div class="media-body">
|
||||
<h4 ng-if="!compact" class="media-heading">
|
||||
<strong>{{status.user.name}}</strong>
|
||||
<small>{{status.user.screen_name}}</small>
|
||||
<small ng-if="status.in_reply_to_screen_name"> > {{status.in_reply_to_screen_name}}</small>
|
||||
-
|
||||
<small ng-click="goToConversation(status.statusnet_conversation_id)">{{status.created_at_parsed | date:'medium'}}</small>
|
||||
</h4>
|
||||
|
||||
<p>{{status.text}}</p>
|
||||
|
||||
<div ng-if='status.attachments' class='attachments'>
|
||||
<attachment nsfw="nsfw" attachment="attachment" ng-repeat="attachment in status.attachments">
|
||||
</attachment>
|
||||
</div>
|
||||
|
||||
<div ng-if="!compact">
|
||||
<p>
|
||||
</p>
|
||||
<div class='status-actions'>
|
||||
<div ng-click="toggleReplying()">
|
||||
<i class='fa fa-reply'></i>
|
||||
</div>
|
||||
<div>
|
||||
<i class='fa fa-retweet'></i>
|
||||
</div>
|
||||
<favorite-button status=status></favorite-button>
|
||||
</div>
|
||||
|
||||
<!-- <post-status-form ng-if="replying" toggle="toggleReplying" reply-to-status="status" reply-to="{{status.id}}"></post-status-form> -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script src="./status.js" ></script>
|
|
@ -1,7 +1,12 @@
|
|||
import Status from '../status/status.vue'
|
||||
|
||||
const Timeline = {
|
||||
props: [
|
||||
'timeline'
|
||||
]
|
||||
],
|
||||
components: {
|
||||
Status
|
||||
}
|
||||
}
|
||||
|
||||
export default Timeline;
|
||||
export default Timeline
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<template>
|
||||
<div class="timeline">
|
||||
<h1>Timeline goes here</h1>
|
||||
<h2 v-for="status in timeline.visibleStatuses">{{status.text}}</h2>
|
||||
<status v-for="status in timeline.visibleStatuses" v-bind:status="status"></status>
|
||||
</div>
|
||||
</template>
|
||||
<script src="./timeline.js"></script>
|
||||
|
|
|
@ -3,6 +3,7 @@ import VueRouter from 'vue-router'
|
|||
import Vuex from 'vuex'
|
||||
import App from './App.vue'
|
||||
import PublicTimeline from './components/public_timeline/public_timeline.vue'
|
||||
import FriendsTimeline from './components/friends_timeline/friends_timeline.vue'
|
||||
|
||||
import statusesModule from './modules/statuses.js'
|
||||
import usersModule from './modules/users.js'
|
||||
|
@ -19,7 +20,8 @@ const store = new Vuex.Store({
|
|||
|
||||
const routes = [
|
||||
{ path: '/', redirect: '/main/public' },
|
||||
{ path: '/main/public', component: PublicTimeline }
|
||||
{ path: '/main/public', component: PublicTimeline },
|
||||
{ path: '/main/friends', component: FriendsTimeline }
|
||||
]
|
||||
|
||||
const router = new VueRouter({routes})
|
||||
|
|
Loading…
Reference in a new issue