diff options
Diffstat (limited to 'src/components')
| -rw-r--r-- | src/components/favorite_button/favorite_button.js | 2 | ||||
| -rw-r--r-- | src/components/favorite_button/favorite_button.vue | 10 | ||||
| -rw-r--r-- | src/components/post_status_form/post_status_form.js | 9 | ||||
| -rw-r--r-- | src/components/post_status_form/post_status_form.vue | 5 | ||||
| -rw-r--r-- | src/components/retweet_button/retweet_button.js | 2 | ||||
| -rw-r--r-- | src/components/retweet_button/retweet_button.vue | 10 | ||||
| -rw-r--r-- | src/components/status/status.vue | 18 |
7 files changed, 34 insertions, 22 deletions
diff --git a/src/components/favorite_button/favorite_button.js b/src/components/favorite_button/favorite_button.js index 466e9b84..1266be90 100644 --- a/src/components/favorite_button/favorite_button.js +++ b/src/components/favorite_button/favorite_button.js @@ -1,5 +1,5 @@ const FavoriteButton = { - props: ['status'], + props: ['status', 'loggedIn'], data () { return { animated: false diff --git a/src/components/favorite_button/favorite_button.vue b/src/components/favorite_button/favorite_button.vue index dcf28e35..65d368c7 100644 --- a/src/components/favorite_button/favorite_button.vue +++ b/src/components/favorite_button/favorite_button.vue @@ -1,6 +1,10 @@ <template> - <div> - <i :class='classes' class='favorite-button base09' @click.prevent='favorite()'/> + <div v-if="loggedIn"> + <i :class='classes' class='favorite-button fav-active base09' @click.prevent='favorite()'/> + <span v-if='status.fave_num > 0'>{{status.fave_num}}</span> + </div> + <div v-else> + <i :class='classes' class='favorite-button base09'/> <span v-if='status.fave_num > 0'>{{status.fave_num}}</span> </div> </template> @@ -8,7 +12,7 @@ <script src="./favorite_button.js" ></script> <style lang='scss'> - .favorite-button { + .fav-active { cursor: pointer; animation-duration: 0.6s; &:hover { diff --git a/src/components/post_status_form/post_status_form.js b/src/components/post_status_form/post_status_form.js index acc97c86..1f63de25 100644 --- a/src/components/post_status_form/post_status_form.js +++ b/src/components/post_status_form/post_status_form.js @@ -64,14 +64,15 @@ const PostStatusForm = { img: profile_image_url_original })) } else if (firstchar === ':') { - const matchedEmoji = filter(this.emoji, (emoji) => emoji.shortcode.match(this.textAtCaret.slice(1))) + const matchedEmoji = filter(this.emoji.concat(this.customEmoji), (emoji) => emoji.shortcode.match(this.textAtCaret.slice(1))) if (matchedEmoji.length <= 0) { return false } - return map(take(matchedEmoji, 5), ({shortcode, image_url}) => ({ + return map(take(matchedEmoji, 5), ({shortcode, image_url, utf}) => ({ // eslint-disable-next-line camelcase screen_name: `:${shortcode}:`, name: '', + utf: utf || '', img: image_url })) } else { @@ -90,6 +91,9 @@ const PostStatusForm = { }, emoji () { return this.$store.state.config.emoji || [] + }, + customEmoji () { + return this.$store.state.config.customEmoji || [] } }, methods: { @@ -104,6 +108,7 @@ const PostStatusForm = { }, postStatus (newStatus) { if (this.posting) { return } + if (this.submitDisabled) { return } if (this.newStatus.status === '') { if (this.newStatus.files.length > 0) { diff --git a/src/components/post_status_form/post_status_form.vue b/src/components/post_status_form/post_status_form.vue index bb2329f3..8e436428 100644 --- a/src/components/post_status_form/post_status_form.vue +++ b/src/components/post_status_form/post_status_form.vue @@ -6,8 +6,9 @@ </div> <div style="position:relative;" v-if="candidates"> <div class="autocomplete-panel base05-background"> - <div v-for="candidate in candidates" @click="replace(candidate.screen_name + ' ')" class="autocomplete base02"> - <img :src="candidate.img"></img> + <div v-for="candidate in candidates" @click="replace(candidate.utf || (candidate.screen_name + ' '))" class="autocomplete base02"> + <span v-if="candidate.img"><img :src="candidate.img"></img></span> + <span v-else>{{candidate.utf}}</span> <span> {{candidate.screen_name}} <small class="base02">{{candidate.name}}</small> diff --git a/src/components/retweet_button/retweet_button.js b/src/components/retweet_button/retweet_button.js index 2280f315..4a43542d 100644 --- a/src/components/retweet_button/retweet_button.js +++ b/src/components/retweet_button/retweet_button.js @@ -1,5 +1,5 @@ const RetweetButton = { - props: ['status'], + props: ['status', 'loggedIn'], data () { return { animated: false diff --git a/src/components/retweet_button/retweet_button.vue b/src/components/retweet_button/retweet_button.vue index edbfef32..7a7ea763 100644 --- a/src/components/retweet_button/retweet_button.vue +++ b/src/components/retweet_button/retweet_button.vue @@ -1,6 +1,10 @@ <template> - <div> - <i :class='classes' class='icon-retweet base09' v-on:click.prevent='retweet()'></i> + <div v-if="loggedIn"> + <i :class='classes' class='icon-retweet rt-active base09' v-on:click.prevent='retweet()'></i> + <span v-if='status.repeat_num > 0'>{{status.repeat_num}}</span> + </div> + <div v-else> + <i :class='classes' class='icon-retweet base09'></i> <span v-if='status.repeat_num > 0'>{{status.repeat_num}}</span> </div> </template> @@ -9,7 +13,7 @@ <style lang='scss'> @import '../../_variables.scss'; - .icon-retweet { + .rt-active { cursor: pointer; animation-duration: 0.6s; &:hover { diff --git a/src/components/status/status.vue b/src/components/status/status.vue index d5c904a2..3a8d164d 100644 --- a/src/components/status/status.vue +++ b/src/components/status/status.vue @@ -105,17 +105,15 @@ </div> </div> - <div v-if="loggedIn"> - <div class='status-actions'> - <div> - <a href="#" v-on:click.prevent="toggleReplying"> - <i class="base09 icon-reply" :class="{'icon-reply-active': replying}"></i> - </a> - </div> - <retweet-button :status=status></retweet-button> - <favorite-button :status=status></favorite-button> - <delete-button :status=status></delete-button> + <div class='status-actions'> + <div v-if="loggedIn"> + <a href="#" v-on:click.prevent="toggleReplying"> + <i class="base09 icon-reply" :class="{'icon-reply-active': replying}"></i> + </a> </div> + <retweet-button :loggedIn="loggedIn" :status=status></retweet-button> + <favorite-button :loggedIn="loggedIn" :status=status></favorite-button> + <delete-button :status=status></delete-button> </div> </div> </div> |
