diff options
| -rw-r--r-- | src/components/retweet_button/retweet_button.js | 16 | ||||
| -rw-r--r-- | src/components/retweet_button/retweet_button.vue | 18 | ||||
| -rw-r--r-- | src/components/status/status.js | 2 | ||||
| -rw-r--r-- | src/components/status/status.vue | 4 | ||||
| -rw-r--r-- | src/services/api/api.service.js | 9 |
5 files changed, 46 insertions, 3 deletions
diff --git a/src/components/retweet_button/retweet_button.js b/src/components/retweet_button/retweet_button.js new file mode 100644 index 00000000..42da2531 --- /dev/null +++ b/src/components/retweet_button/retweet_button.js @@ -0,0 +1,16 @@ +const RetweetButton = { + props: [ 'status' ], + methods: { + retweet () { + } + }, + computed: { + classes () { + return { + 'retweeted': this.status.repeated + } + } + } +} + +export default RetweetButton diff --git a/src/components/retweet_button/retweet_button.vue b/src/components/retweet_button/retweet_button.vue new file mode 100644 index 00000000..ed5cb935 --- /dev/null +++ b/src/components/retweet_button/retweet_button.vue @@ -0,0 +1,18 @@ +<template> + <div> + <i :class='classes' class='icon-retweet fa' v-on:click.prevent=''></i> + <span v-if='status.repeat_num > 0'>{{status.repeat_num}}</span> + </div> +</template> + +<script src="./retweet_button.js" ></script> + +<style> + .icon-retweet { + cursor: pointer + } + .retweeted { + cursor: auto; + color: green; + } +</style> diff --git a/src/components/status/status.js b/src/components/status/status.js index 6253d334..0bf2ecde 100644 --- a/src/components/status/status.js +++ b/src/components/status/status.js @@ -1,5 +1,6 @@ import Attachment from '../attachment/attachment.vue' import FavoriteButton from '../favorite_button/favorite_button.vue' +import RetweetButton from '../retweet_button/retweet_button.vue' import PostStatusForm from '../post_status_form/post_status_form.vue' const Status = { @@ -24,6 +25,7 @@ const Status = { components: { Attachment, FavoriteButton, + RetweetButton, PostStatusForm }, methods: { diff --git a/src/components/status/status.vue b/src/components/status/status.vue index 48c910c0..d309c495 100644 --- a/src/components/status/status.vue +++ b/src/components/status/status.vue @@ -37,9 +37,7 @@ <i class='fa icon-reply'></i> </a> </div> - <div> - <i class='fa icon-retweet'></i> - </div> + <retweet-button :status=status></retweet-button> <favorite-button :status=status></favorite-button> </div> diff --git a/src/services/api/api.service.js b/src/services/api/api.service.js index 06585ac7..d00bc0d0 100644 --- a/src/services/api/api.service.js +++ b/src/services/api/api.service.js @@ -5,6 +5,7 @@ const PUBLIC_TIMELINE_URL = '/api/statuses/public_timeline.json' const PUBLIC_AND_EXTERNAL_TIMELINE_URL = '/api/statuses/public_and_external_timeline.json' const FAVORITE_URL = '/api/favorites/create' const UNFAVORITE_URL = '/api/favorites/destroy' +const RETWEET_URL = '/api/statuses/retweet' const STATUS_UPDATE_URL = '/api/statuses/update.json' const MEDIA_UPLOAD_URL = '/api/statusnet/media/upload' // const CONVERSATION_URL = '/api/statusnet/conversation/'; @@ -63,6 +64,13 @@ const unfavorite = ({ id, credentials }) => { }) } +const retweet = ({ id, credentials }) => { + return fetch(`${RETWEET_URL}/${id}.json`, { + headers: authHeaders(credentials), + method: 'POST' + }) +} + const postStatus = ({credentials, status, mediaIds, inReplyToStatusId}) => { const idsText = mediaIds.join(',') const form = new FormData() @@ -96,6 +104,7 @@ const apiService = { fetchTimeline, favorite, unfavorite, + retweet, postStatus, uploadMedia } |
