aboutsummaryrefslogtreecommitdiff
path: root/src/components/favorite_button/favorite_button.vue
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/favorite_button/favorite_button.vue')
-rw-r--r--src/components/favorite_button/favorite_button.vue69
1 files changed, 43 insertions, 26 deletions
diff --git a/src/components/favorite_button/favorite_button.vue b/src/components/favorite_button/favorite_button.vue
index dfe12f86..dce25e24 100644
--- a/src/components/favorite_button/favorite_button.vue
+++ b/src/components/favorite_button/favorite_button.vue
@@ -1,23 +1,31 @@
<template>
- <div v-if="loggedIn">
- <FAIcon
- :class="classes"
- class="FavoriteButton fa-scale-110 fa-old-padding -interactive"
+ <div class="FavoriteButton">
+ <button
+ v-if="loggedIn"
+ class="button-unstyled interactive"
+ :class="status.favorited && '-favorited'"
:title="$t('tool_tip.favorite')"
- :icon="[status.favorited ? 'fas' : 'far', 'star']"
- :spin="animated"
@click.prevent="favorite()"
- />
- <span v-if="!mergedConfig.hidePostStats && status.fave_num > 0">{{ status.fave_num }}</span>
- </div>
- <div v-else>
- <FAIcon
- :class="classes"
- class="FavoriteButton fa-scale-110 fa-old-padding"
- :title="$t('tool_tip.favorite')"
- :icon="['far', 'star']"
- />
- <span v-if="!mergedConfig.hidePostStats && status.fave_num > 0">{{ status.fave_num }}</span>
+ >
+ <FAIcon
+ class="fa-scale-110 fa-old-padding"
+ :icon="[status.favorited ? 'fas' : 'far', 'star']"
+ :spin="animated"
+ />
+ </button>
+ <span v-else>
+ <FAIcon
+ class="fa-scale-110 fa-old-padding"
+ :title="$t('tool_tip.favorite')"
+ :icon="['far', 'star']"
+ />
+ </span>
+ <span
+ v-if="!mergedConfig.hidePostStats && status.fave_num > 0"
+ class="action-counter"
+ >
+ {{ status.fave_num }}
+ </span>
</div>
</template>
@@ -27,19 +35,28 @@
@import '../../_variables.scss';
.FavoriteButton {
- &.-interactive {
- cursor: pointer;
- animation-duration: 0.6s;
+ display: flex;
+
+ > :first-child {
+ padding: 10px;
+ margin: -10px -8px -10px -10px;
+ }
+
+ .action-counter {
+ pointer-events: none;
+ user-select: none;
+ }
+
+ .interactive {
+ .svg-inline--fa {
+ animation-duration: 0.6s;
+ }
- &:hover {
+ &:hover .svg-inline--fa,
+ &.-favorited .svg-inline--fa {
color: $fallback--cOrange;
color: var(--cOrange, $fallback--cOrange);
}
}
-
- &.-favorited {
- color: $fallback--cOrange;
- color: var(--cOrange, $fallback--cOrange);
- }
}
</style>