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>
|
<template>
|
||||||
<div class="panel panel-default">
|
<div class="timeline panel panel-default">
|
||||||
<div class="panel-heading">Public Timeline</div>
|
<div class="panel-heading">Public Timeline</div>
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
<Timeline v-bind:timeline="timeline" />
|
<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 = {
|
const Timeline = {
|
||||||
props: [
|
props: [
|
||||||
'timeline'
|
'timeline'
|
||||||
]
|
],
|
||||||
|
components: {
|
||||||
|
Status
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export default Timeline;
|
export default Timeline
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="timeline">
|
<div class="timeline">
|
||||||
<h1>Timeline goes here</h1>
|
<status v-for="status in timeline.visibleStatuses" v-bind:status="status"></status>
|
||||||
<h2 v-for="status in timeline.visibleStatuses">{{status.text}}</h2>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script src="./timeline.js"></script>
|
<script src="./timeline.js"></script>
|
||||||
|
|
|
@ -3,6 +3,7 @@ import VueRouter from 'vue-router'
|
||||||
import Vuex from 'vuex'
|
import Vuex from 'vuex'
|
||||||
import App from './App.vue'
|
import App from './App.vue'
|
||||||
import PublicTimeline from './components/public_timeline/public_timeline.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 statusesModule from './modules/statuses.js'
|
||||||
import usersModule from './modules/users.js'
|
import usersModule from './modules/users.js'
|
||||||
|
@ -19,7 +20,8 @@ const store = new Vuex.Store({
|
||||||
|
|
||||||
const routes = [
|
const routes = [
|
||||||
{ path: '/', redirect: '/main/public' },
|
{ path: '/', redirect: '/main/public' },
|
||||||
{ path: '/main/public', component: PublicTimeline }
|
{ path: '/main/public', component: PublicTimeline },
|
||||||
|
{ path: '/main/friends', component: FriendsTimeline }
|
||||||
]
|
]
|
||||||
|
|
||||||
const router = new VueRouter({routes})
|
const router = new VueRouter({routes})
|
||||||
|
|
Loading…
Reference in a new issue